スモールデータ解析と機械学習

スモールデータ解析と機械学習

著者:藤原 幸一

スモールなデータの解析手法・ノウハウが身につく!

《内容紹介》
Webデータや画像データに代表されるようなビッグデータが注目される一方で、機械の故障データのように発生自体がまれであったり、患者さんの検査データのように倫理的な問題からデータを集めることに制約があったり、あるいはデータの判読が専門家以外では困難で機械学習に利用しにくいデータは、どうしても忘れられがちです。ビッグデータの時代において、収集が難しいために私たちが忘れかけているデータのことをスモールデータとよびます。

スモールデータでは、測定されている変数の数に比べて学習に必要なサンプルが不足していたり、それぞれのクラスのサンプル数が極端に偏っていたりするため、深層学習のようなビッグデータの方法をそのまま適用するのは適当ではなく、異なるアプローチが必要になります。

本書は、スモールデータとはどのようなデータであるのかを具体的に紹介して、スモールデータ解析の基本となる次元削減と回帰分析を説明します。特に部分的最小二乗法(PLS)はスモールデータ解析の大きな武器となるでしょう。そして、機械学習においてモデルの性能向上のために必要な変数(特徴)選択を紹介し、特にクラスタリングに基づいた新しい変数選択手法を説明します。つづいて、不均衡なデータの解析手法と異常検知を紹介して、最後にスモールデータ解析についての筆者の経験に基づいたポイント・考え方を述べました。本書ではPythonプログラムとスモールデータ解析の例題を通じて、読者がスモールデータを有効に解析できるようになるよう工夫しています。

ビッグデータの世界は、もはやデータ量と資本力が支配するレッドオーシャンとなっています。しかし、スモールデータの世界は、まだまだ現場の創意工夫次第でデータから新たな価値を引き出すことのできるブルーオーシャンなのです。みなさんも、この未知の世界に飛び込んでみませんか?

スモールデータの解析において何より重要なのは、解析対象についての先験的な知識です。対象についての物理化学的、または生理医学的、あるいは経済学的なメカニズムを熟知して、それらの知識を可能な限り学習に反映させることが、学習させたモデルの性能に影響を与えます。つまりスモールデータ解析においては、データが常に不足しがちであるため、あらかじめ妥当な仮説を立て、仮説に基づいてデータを収集し、整理して解析しなければなりません。(p.6)

二つの事象に因果関係がないのに、隠れた要因によって因果関係があるかのように見える現象を交絡と呼び、交絡を発生する隠れた要因を交絡因子といいます。また、交絡によって発生したときの相関関係は、擬似相関と呼ばれます。(p.20)

データだけでは、真に因果関係があるのか交絡しているのかを判断するのは困難で、ある程度、物理化学的、生理学的、または経済学的なメカニズムに基づく考察が必要です。少なくとも、次の3つの条件が成立しないと、イベントXがイベントYの原因であるとは言えません。
●XはYに先行して発生しなければならない。
●YはXが発生していないときは、発生してはならない。
●YはXが発生したら、必ず発生しなければならない。
これら3条件の1つでも成り立っていない場合は、擬似相関であることが多いです。(p.21)

多重共線性の問題への対策
・主成分回帰(PCR:Principal Component Regression)
・リッジ回帰(正則化)

リッジ回帰はパラメータμをどのように決めるのかという問題はありますが、多重共線性の問題を回避できて直感的でわかりやすい方法です。しかし、データに含まれるサンプル数ですが、入力変数の数より少ないというスモールデータにありがちな状況となると、回帰係数の計算そのものができなくなってしまうという最小二乗法の問題は解決できていません。(p.80)

そこで線形回帰モデルの学習アルゴリズムとしておすすめしたいのが、部分的最小二乗法(Partial Linest Squares; PLS)です。PLSでは、入力変数と出力変数を直接モデル化せず、入力変数の線形結合で潜在変数を導出し、その潜在変数の線形結合で出力変数を表現します。ここで潜在変数とは、その値が直接観測されることはありませんが、モデルの中に存在する変数のことで、サンプル生成の背後にある状態などを表現するのに用いられるものです。潜在変数という概念はPLSに特有のものではなく機械学習では一般的なもので、たとえば混合ガウス分布や隠れマルコフモデルなどに登場します。(pp.80-81)

クロスバリデーションにて潜在変数の数を決定する場合に適した性能の評価方法としては、PRESS(Prediction Residual Sum of Squares)と呼ばれる方法を用いるのが一般的です。(p.100)

回帰モデルの性能は、RMSEと相関係数rをか同時に評価すべきであることがわかります。何よりRMSEやrの数字だけを見るのではなく、必ず真値と予測値をプロットしてみて、視覚的に性能を確認するのが重要です。(p.104)

単純なモデルではデータを十分に表現できないことがありますが、複雑すぎるのも問題です。シンプルなモデルでデーターが表現できるのが、その方が望ましいです。つまり、測定されている変数を何でもかんでも入力変数としたり、まして測定されている変数に何らかの変換を加えて変数の種類を増やしてモデルを学習させるのは、良い方策ではないことがわかります。(p.116)

リッジ回帰は、最小二乗法における多重共線性の問題を回避するのが目的でした。一方で、Lasso回帰では、特定の回帰係数が強制的に0に設定されるため、入力変数の選択につながります。(p.122)

PLS 向けの変数洗濯手法として、よく知られている方法にVIP法(Variable Importance for Projection)法があります。VIP法では、それぞれの入力変数が潜在変数を通じて出力の推定にどの程度寄与しているのかを”変数重要度”として定量化して、その変数重要度を用いて採用する変数を決定します。(p.132)

NCスペクトラルクラスタリング(NCSC)は変数間の相関関係を指標とした類似データ抽出手法である相関識別法(Nearest Correation Method; NC法)と、重み付きグラフの分割法であるスペクトラルクラスタリング(SC)を組み合わせた手法で、変数間の相関関係に基づいてサンプルをクラスタリングできます。(pp138-139)

入力変数の選択には答えはありません。学習したモデルの性能を評価をするのは当然ですが、選択された変数が解析対象についてのドメイン知識と明確に反していないかなどの吟味が求められます。数学的な手法にだけ頼ることなく解析対象についての理解を深めることが、解析の成否を決めるでしょう。(p.156)

カットオフ(p.173)
・0 – 1 距離基準:左上隅との距離が最小
・ユーデン指標:対角線からの最も離れた距離

データの不均衡度(pp174-175)
r = (少数クラスのサンプル数)÷(多数クラスのサンプル数+少数クラスのサンプル数)

筆者の経験では r=0.2 程度まで低下すると通常の方法では学習は困難となり、r<0.1 となると十分に不均衡なデータといえます。そこで必要となるのが、不均衡データ解析に用いられる工夫の数々です。(p.175)

アンダーサンプリングとは、多数クラスのサンプルを間引く方法で、どのように間引くかによって、サンプル選択型アンダーサンプリングとサンプル生成型アンダーサンプリングの2つのアプローチがあります。前者は間引くサンプルを既存サンプルから選択するのに対して、後者では多数クラスのサンプルを用いて複数の新たなサンプルを生成し、生成したサンプルのみを多数クラスの学習データとして用います。(p.176)

サンプル選択型アンダーサンプリング
・ランダムアンダーサンプリング
・クラスタ基準アンダーサンプリング
・トメクリンク

クラスタ基準アンダーサンプリング
k-平均法などを用いて多数クラスのサンプルをクラスタリングして、クラスタごとにサンプルを間引くことで、全体から均等にサンプルを間引くことができます。(p.177)
トメクリンク
トメクリンクとは、距離の近い2食らうsのサンプルのペアのことで、それぞれのトメクリンクにおける多数クラス側のサンプルを間引くことで、2つのクラス間の境界が明確になり、分類が容易になります。(p.177)

サンプル生成型アンダーサンプリング
・サンプル選択型アンダーサンプリングで用いたk-平均法でk個のクラスタに分割し、クラスタ平均をそれぞれのクラスタの代表する新たなサンプルとする。(p.178)

オーバーサンプリング
オーバーサンプリングは、多数クラスのサンプルを水増しすることで、不均衡度rを改善させる方法です。水増しさせる方法にいくつかありますが、ここではよく用いられるAynthetic Minority Oversampling Technique; SMOTE)と、SMOTEから派生した方法を紹介しましょう。(p.178)

SMOTEはサンプル間の内挿に新たなサンプルを生成して、サンプルを水増しする方法です。(p.179)

Adaptive Synthetic(ADASYN)は、SMOTEから派生した方法で、新たなサンプルはSMOTE同様に少数クラスのサンプル間の内挿として生成します。SMOTEでは多数クラス側の情報を用いることはなく、一律にサンプルを水増ししていました。一方、ADASYNでは、着目する付近にどの程度多数クラスのサンプルがあるかという情報に基づいて、適用的(Adaptive)に新たに生成するサンプルの個数を変化させます。つまり、着目する周囲に多数クラスのサンプルが多ければ、それに応じて水増しするサンプルの数を増やします。(pp.179-180)

ボーダーラインSMOTEは、ADASYN同様に少数クラスのサンプル付近に、どの程度多数クラスのサンプルがどれくらい存在するかによって、水増しするサンプルの数を調整する方法です。(pp.180-181)

当然のことながら、アンダーサンプリングとオーバーサンプリングは組み合わせて利用することもできます。つまり、多数クラスのサンプルは間引き、同時に少数クラスのサンプルを水増しします。さまざまな組み合わせのバリエーションが考えられますが、オーバーサンプリングにはSMOTEを使うことが多いようです。これは、SMOTEはサンプルの水増しに多数クラスの情報を使うことがなく、アンダーサンプリングとオーバーサンプリングを独立して実施できるためであると考えられます。(p.181)

不均衡データの解析では、感度と特異度の幾何平均を用いて分類モデルの性能を評価することがあります。
G-Mean=SQRT(感度×特異度)
感度と特異度のどちらかのみが高くとも、他方が低いと全体としてG-meanは低くなります。G-meanを高くするには、感度と特異度の双方が高い値でないとならないため、不均衡データにおいてもバランスの取れた評価をすることができます。(p.195)

正確度 accuracy
(TP+TN)/全体の数

感度、再現率 recall
TP/(TP+FN)

適合度、精度 precision
TP/(TP+FN)

特異度 specificity
TN/(FP+TN)

異常検知では、正常時のデータだけから正常データと異常データを識別することになります。つまり、正常データの特徴を学習させ、明らかに正常データとは異なる特徴のデータが観測されたときに異常であると判定します。(p.205)

局所外れ値因子法(Local Outlier Factor; LOF)は、サンプル分析の密度に着目することによって、異常サンプルを検知する方法です。通常、観測したサンプルの分布はムラがあり、一様に分布していません。そこでLOFはサンプル分布のムラを考慮するために、局所密度という考え方を導入します。(p.205)

PCAを用いることで、データの変数間の相関関係を主成分という形で抽出することができます。そこでMSPCでは、まず、正常データを収集して、PCAによって正常データの主成分を抽出します。この主成分が、正常データのあるべき相関関係のモデルです。そして、MSPCでは楕円形の正常範囲ではなく、定量的な以上度を表す指標であるT2統計量およびQ統計量を用いて異常を抽出します。(p.214)

異常検知アルゴリズムで異常を検知した場合は、本当に異常が発生しているのか、その原因はなんであるのかを特定特定しなければ、異常への対処ができません。異常原因の特定には、監視対象に関する物理的な知識と洞察が不可欠で、データだけで原因を調べるのは容易ではありません。しかし、異常原因の特定に役立つ情報をデータから抽出することはできます。つまり、データから異常に関わる変数の候補を挙げることはできます。このようなタスクを異常診断といいます。(p.220)

三現主義(p.258)
・現場に足を運び、現場の状況を把握する
・現物を触れて、モノの状態を確認する
・現実をこの目で見て、事実を知る
(※現地・現物・現人と書いているのもありますね)

一度、開始してしまったデータ収集はやり直しができません。つまり、データを収集するための計画立案と準備、そして、データ集とデータセットの構築こそがスモールデータ解析の成否を決めるといっても過言ではありません。データ解析プロジェクトを成功に導けるデータ収集計画を立案するには、問題の適切な定義と、データの背後の文脈把握、そして現場とのコミュニケーションが求められますが、これこそ機械にはできない、人間にしかできないタスクです。(p.263)

【アルゴリズム各種】
部分的最小二乗法(Partial Least Squares; PLS)
最小角回帰(Least Angle Regressions; LARS)
線形判別分析(LDA)
多変量統計的プロセス管理(Multivariable Statistical Process Control; MSPC)
単変量統計的プロセス管理(Univariable Statistical Process Control; USPC)

 

非常に良い内容でした。ただ、タイトルがよくないかもしれませんね。「スモールデータ解析」というよりは「ビジネス現場でのデータ解析」とかのほうがより興味を惹いたかもしれません。私も最初、この本スルーしてたんですが、不均衡データも扱っているということで改めて購入して読みました。

実際に、ビジネス現場では機械学習したいのですができないデータや、1回目の機械学習で得られた結果をもとに2回目の施策では効果があるところのみで効果の出ないところが捨てられていってサンプルがどんどん歪んでいきます。そのあたりも私の研究対象なのですが、それに近いところの不均衡データのあたりは非常に参考になりました。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください