科学の箱

科学・IT・登山の話題

機械学習

Pythonではじめる機械学習 – 多様体学習

投稿日:

多様体学習

次元削減に利用できる手法として主成分分析がある。これは柔軟であり、すぐに実装可能な次元削減アルゴリズムの一つである。しかし一つだけ問題がある。それは主成分分析に適用できるデータは線形のみであり、非線形のデータには利用できない。非線形データの次元削減に利用できるのが多様体学習(Manifold Learning)である。主成分分析と多様体学習の関係はいうなれば線形回帰と非線形回帰の関係である。

ではこの次元圧縮はどのようなイメージになるのだろうか。主成分分析で3次元データを2次元データに圧縮することを考える。この場合3次元空間に平らな紙を一枚置いてすべてのデータをこの平らな紙に移したと考えることができる。紙は平らなだから2次元である。これにより3次元データは2次元に圧縮された。多様体学習もイメージは似ている。しかし多様体学習ではこの紙は丸まったり曲がったりしてより柔軟(非線形)にデータを移すことができる。これが主成分分析と多様体学習の違いである。

主成分分析では軸を回転させることで最も分散が大きい成分を見つけることができた。これはデータが線形であったから可能である。しかしデータが非線形であれば事情は異なる。データを回転させる、引き伸ばす、方向を変えるといった操作では、3次元におけるデータの位置関係は変わらない。これは線形な操作であり、非線形データにとって最も大きな分散となる軸を探すことができない。多様体学習では折り曲げ、ロール、崩すなどといった操作により最も大きな分散となる軸を探すことになる。

距離行列

距離行列とはある要素のベクトルと他の要素のベクトルの距離(あるいは類似度)を行列であらわしたものである。

生成したHello画像同士について距離行列を見てみると以下のようになる。これは同じ画像であるから対角線の軸は当然0(距離が0あるいは完全一致)となる。

次に回転させたHello画像との距離行列をみてみる。全く変わらないことから回転では類似度に変化はない。

MDSによる距離行列からのデータ復元

MDS(Multi Dimensional Scaling)により距離行列からデータを復元する。さてこのデータは生成したデータと同じになるのだろうか。

from sklearn.manifold import MDS
model = MDS(n_components=2, dissimilarity='precomputed', random_state=1)
out = model.fit_transform(D)
plt.scatter(out[:, 0], out[:, 1], **colorize)
plt.axis('equal');

 

復元されたデータは距離行列から取得できる一つの例である。Lが両方とも逆になっているのがわかる。また回転もしている。

多様体学習としてのMDS

MDSは多様体学習のアルゴリズムとして非線形データについて次元削減ができる。これは以下のような手順による

多次元データ→距離行列の作成→距離行列にあった2次元平面の生成

非線形平面への投影にはMDSを用いることはできない。その場合にはLLE(Locally Linear Embedding)を利用する。難しくて理解できないのこちらはパス。

メタ情報

inarticle



メタ情報

inarticle



-機械学習

執筆者:


comment

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

関連記事

no image

データ分析について評価する

デザイン コントロールグループはあるか モデル 検定の前提は満たしているか(正規分布) 従属変数の尺度は適切か(名義、順序、間隔、比率) 独立変数の数は適切か モデルについて説明できるか(独立変数の数 …

no image

UCI datasets

データ分析の勉強をするときに便利なUCI datasets https://archive.ics.uci.edu/ml/datasets.html Related posts:conjoint分析の …

no image

線形回帰とリッジ回帰とラッソ回帰の違い

用語 線形回帰 データから平均二乗誤差を最低にするパラメータΘを求めて、直線で回帰すること $$ y = Θ_0 + Θ_1 \times x $$ コスト関数 損失関数とも呼ばれる。実際のデータと予 …

no image

回帰と分類の違い

回帰と分類は両方とも”予測”問題である。予測とは従属変数から目的変数を明らかにする。この目的変数の種類により回帰と分類に分けられる。 回帰では連続した数値を予測する。例えば株価 …

no image

データ取り込み後に確認すること

# tidyデータの原則 # 1カラム = 1変数 # 1行 = 1観察 # 1テーブル = 1 unique key # foreign key to link # テーブル全体で見ること # カラ …

2019年11月
« 10月   12月 »
 123
45678910
11121314151617
18192021222324
252627282930  

side bar top



アーカイブ

カテゴリー