SnapCrab_2017-3-2_9-12-16_No-00

こんにちは!大学教員ブロガーのねこしです。

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

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

Isomapを実行できるプログラムを簡単に入手できます!

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

R: note SPIKE

Python: note SPIKE

Isometric Mapping (Isomap)

Isometric Mapping(Isomap)は多次元尺度構成法 (Multi Dimensional Scaling, MDS)ととてもよく似ています。MDSの狙いは、距離の近いサンプルは近く、距離の遠いサンプルは遠くするように次元を減らそう、というものです。2次元まで減らすことでデータを見える化・可視化できるわけです。Isomapでは、距離の近いサンプルは近くする、までは同じですが、距離の遠いサンプルについてはあまり考慮されていません。距離の遠いサンプルが2次元平面上で多少近くにきてもいいから、その分距離の近いサンプルを2次元平面上でも近くしよう、というわけです。

というわけで、Isomapでもすべてのサンプル間の距離を計算しますが、ちゃんと考えるのはサンプルごとに最も近いN個のサンプル間の距離だけです。サンプル間の距離関係が維持できるように、二次元にサンプルを写像します。Nは5とか10などのように事前に決める必要があります。可視化した結果が良くない場合は、このNを変えて試行錯誤するとよいです。

距離として最も一般的なのはユークリッド距離です。もちろんユークリッド距離ではなく、マハラノビス距離・マンハッタン距離などにすることもできます。データセットの特徴に合わせて可視化できるわけです。さらに、距離を非類似度ととらえることもできます。距離がお大きいということは、非類似度(どれだけ似ていないか)が大きい、ということですからね。なのでガウシアンカーネルを使うこともできます。また例えば、1-(相関係数の絶対値) を使うことで、サンプル間の相関関係を考慮に入れた可視化をすることもできます。

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

  1. Nの値を決める
    最初は5とか10とかがよいです。
  2. 必要に応じてオートスケーリングを行う
    オートスケーリングとは各変数から平均値を引いて平均を0にし、各変数を標準偏差で割って標準偏差を1にする操作です。特別な理由がない限りは行うようにしましょう。
  3. すべてのサンプル間の距離を計算する
    上で述べたように、ユークリッド距離やマハラノビス距離です。もちろん非類似度の指標でもかまいません。
  4. MDSを実行する
  5. 二次元のマップ上でサンプルの位置関係を確認する
    思うように見える化・可視化されなかったら、1.のNや2.の距離・非類似度を変えるとよいです。

ここまでお読みいただきありがとうございます。ぜひ上のIsomapのプログラムもご活用ください。プログラムは上の順序で実行するようになっていますので、1.のNや3.の部分を変更することで、色々なNや距離・類似度でIsomapが可能になります。

これを書いた人

ブログ:http://univprof.com/

note : https://note.mu/univprof

コード・プログラムのショップ : https://spike.cc/shop/univprof

twitter:https://twitter.com/univprofblog1

ぜひフォローをお願い致します。

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

こちらへお願いします!

ご案内。

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

twitterでも発信中。

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