2016-05-31_22h07_36

データ解析の手順』 における「2.データを見える化(可視化)する」についてです。なお実行するためのプログラムについてはこちらをご覧ください。

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

GTMのプログラムを簡単に入手できるようになりました!

それぞれのURLからお求めください!

R: https://spike.cc/shop/univprof/products/TPmpQfZh

GTMの4つのパラメータを自動的に最適化するプログラムを公開しています!

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

R: note SPIKE

GTMの教科書はこちら

https://note.mu/univprof/n/n3d2e034a2452

Generative Topographic Mapping (GTM)

Generative Topographic Mapping (GTM) は自己組織化写像 (Self-Organizing Map, SOM) と同じように非線形の可視化手法です。ただGTMは、SOMの問題点を解決する形で開発された方法であり、SOMと比べて優れています。

GTMも基本的には二次元上 (マップ上) にデータセットを見える化・可視化します。PCAやSOMとは異なり、GTMによって得られた二次元マップ上において近いデータは、元のデータ空間においても近いことが保証されているのが特徴です。

GTMのイメージとしては、変形・伸縮が自在な平べったい四角形のラバー状のもの(マップ)を、実際のデータ空間上でそのマップを縮めたり伸ばしたり変形させたりして、なるべくすべてのサンプルがマップ上にのるようにする、ということです。そしてそのマップを再び四角形に戻してあげることで、各サンプルがマップ上に見える化・可視化されることになります。

GTMでは4つもしくは5つのパラメータの値を事前に決めなければなりません。ただ、回帰分析やクラス分類のときのようには、自動的にパラメータの値を自動的に決める方法が確立されていません。そのため、パラメータの値を変えながらある程度の試行錯誤は必要です。

GTMは以下の手順で行います。

  1. マップサイズを決める
    二次元マップを、縦に何列、横に何行のグリッドにするか決めます。たとえば横に10、縦に10です。マップサイズはサンプル数によって変化させます。基本的に、(横の数)×(縦の数)、つまり全グリッドの数、がサンプル数より小さくなるようにします。
  2. 動径基底関数 (Radial Basis Function, RBF) の数を決める
    基本的にガウス関数のRBFを使用します。これも、縦に何列、横に何行 RBFを置くか決めます。たとえば横に3、縦に3です。(横の数)×(縦の数) 個のRBFをマップ上に均等に置きます。RBFの数が多いと、柔軟に見える化・可視化できる (ラバーを好き勝手に伸縮・変形できる) 一方で、結果として複雑なマップになってしまいます。RBFの値は元のデータ分布の特徴によります。
  3. ガウス関数の分散の値を決める
    この値が大きいほど滑らかなマップになります。元のデータがまんべんなく広がっているとこの値が大きい方がよく、局所的にかたまりにわかれているような分布のときは小さいほうが良いです。つまりこの分散の値も元のデータ分布の特徴によります。たとえば分散の値を1とします。
  4. EMアルゴリズムにおけるパラメータλの値を決める
    重みWの大きさに関係するパラメータです。基本的にλ=0でOKです。他のパラメータを調整しても望ましいマップが得られないときに0.001や0.0001など小さい値から変更してみましょう。
  5. データ空間における分散の逆数βの初期値を決める
    βは任意の値、たとえば0.01のように決めてもよいです。ただ、まずは推奨されている、主成分分析 (PCA) 後の第三主成分の固有値の逆数の値としましょう。これで結果に問題があれば手動で変えてみましょう。
  6. 重みWの初期値を決める
    主成分分析の第二主成分までの結果にもとづいて設定します。
  7. 学習回数を決める
    大きめに設定しておきましょう。たとえば100です。
  8. 必要に応じてオートスケーリングを行う
    オートスケーリングとは各変数から平均値を引いて平均を0にし、各変数を標準偏差で割って標準偏差を1にする操作です。
  9. GTMマップを作成する
  10. 二次元のマップ上でサンプルの位置関係を確認する
    GTMでは各サンプルが、二次元マップ上で確率分布で表されます。一つのサンプルについて、二次元マップ上の各グリッドに存在する確率が求められるということです (もちろんそれらをすべて足すと1になります)。というわけで、二次元マップ上でサンプルを表現するのに工夫が必要です。代表的な方法が2つあります。
    一つは、確率の一番高いグリッドをそのサンプルの二次元マップ上の代表的な点とする方法です。
    もう一つは、各グリッドの確率を重みとした重み付き平均でそのサンプルの二次元マップ上の代表的な点を計算する方法です。
    両方のプロットを確認します。

この流れでGTMによる見える化・可視化は達成されます。サンプルが一部に固まってしまって二次元マップ上にばらついていなかったり、実際は似ていないと考えられるサンプルの組が二次元マップ上では近くになっていたりしたときは、1. 2. 3. 4. のパラメータの値を変えて再度計算してください。妥当な二次元マップが得られるまで頑張りましょう。

データ解析の質問 募集中!

こちらへお願いします!

ご案内。

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

twitterでも発信中。

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


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

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