2016-8-4_18-56-40_No-00

データ解析の手順』 における「5.回帰モデルもしくはクラス分類モデルを作る」についてです。なお実行するためのプログラムについてはこちらをご覧ください。

公開中のプログラム・コード一覧(実用的かつ実践的なデータ解析・機械学習・データマイニング) : 大学教授のブログ

ICAとNBを組み合わせた半教師あり学習(一番下に実行用プログラムあり)

単純ベイズ (Naïve Bayes, NB) 分類器によりクラス分類モデルを構築できます。しかも推定値の信頼性も考慮できます。しかし、NBには説明変数間は独立しているという仮定があります。実際には、説明変数間には相関関係があり、その仮定を満たさないことが多いです。

そこで、前処理として独立成分分析 (Independent Component Analysis, ICA) を行います。ICAによって計算された独立成分と目的変数との間でNBを行うわけです。独立成分は、その名の通り、成分間は互いに独立しているため、NBの仮定を満たします。

さらに、ICAは教師なし学習であることに着目します。ICAは目的変数の値のあるデータセットだけでなく、目的変数の値のないデータセットも使うわけです。これによりICAを行うときのサンプル数が多くなり、より適切に独立成分を計算できるようになります。

こちらも合わせてご覧ください。

PCAとPLSとを組み合わせた半教師あり学習(半教師付き学習)による回帰分析の実用的かつ実践的な方法 : 大学教授のブログ

ICAとNBとを組み合わせた半教師あり学習によるクラス分類は以下の手順で行われます。

  1. 目的変数の値のあるデータセットと目的変数の値のないデータセットとを結合する (縦のサンプル方向につなげる)
  2. 結合したデータの説明変数のオートスケーリングをする
    オートスケーリングとは各変数から平均値を引いて平均を0にするセンタリングと、各変数を標準偏差で割って標準偏差を1にするスケーリングを両方行うことです。スケーリングは任意ですが、センタリングは必ず行いましょう。
  3. 計算する成分数を決める
    単純なのは、与えられたデータセットの行列の階数 (ランク) とする方法です。もしくは、PCAを実行して累積寄与率がいくつまでの成分数、という決め方もあります。もちろん手動で設定してもOKです。
  4. ICAを実行して独立成分と分解行列を計算する
  5. 目的変数の値のあるサンプルのみ、独立成分の値を取り出す
  6. NB分類器を構築する
    P(x|y)の確率分布として、基本的には正規分布を仮定します。説明変数の値が0か1の二値のみであればベルヌーイ分布がよいです。
  7. 目的変数の計算値と実測値との間で混同行列を計算する
    必要に応じて混同行列から正解率・検出率・精度などを計算します。
  8. [新しいデータの予測をするとき] 説明変数の新しいデータから2.でオートスケーリングしたときの説明変数の平均値を引き、標準偏差で割る
  9. [新しいデータの予測をするとき] 上の 4.で得られた分解行列を用いて独立成分の値を計算する
  10. [新しいサンプルの推定をするとき] 上の 6.で得られたNB分類器により目的変数の推定値を計算する
    新しいサンプルをNB分類器に入力すると、各クラスである確率を出力します。もっとも確率の高いクラスを目的変数の推定値とします。

ICAとNBを組み合わせた半教師あり学習のプログラムを簡単に入手できるようになりました!

それぞれのURLからお求めください!noteでもSPIKEでも言語が同じであれば同じものです。

R: note SPIKE

Python: note SPIKE

    ご案内。

    オススメ記事セレクション。

    twitterでも発信中。

    この記事に興味を持っていただけましたら、ぜひフォローをお願いします!


    無料メルマガでブログにない情報を配信中。

    データ解析・分析に興味がありましたらぜひ登録をお願いします!
    無料メルマガの登録はこちら