t-SNEとは?

データの可視化のため、低次元空間へ埋め込みに適切な非線形次元削減手法の1つ。

 - 教師なし学習の1つ
 - SNEという次元削減アルゴリズムを改良した手法


〇t=SNEの使い方

 <手順①>ライブラリのインポート
   from sklearn.manifold import TSNE

 <手順②>インスタンス作成
   tsne = TSNE( )

 <手順③>次元削減
   tsne.fit_transform(X)


〇t-SNEの使用方法

sklearn.manifoldの中からTSNEというモジュールをインポートします。

【TSNE()の引数】
・引数n_components:削減次元数(デフォルトは2)
・引数perplexity:最近傍の数(デフォルトは30)
・引数early_exaggeration:密集度合の設定(デフォルトは12.0)
・引数learning_rate:t-SNEの学習率(デフォルトは200.0)
・引数n_iter:最適化の最大反復回数(デフォルトは1000)
・引数random_state: 乱数
・引数n_jobs: 並列処理する場合の多重度(デフォルトは1)
【クラスのメソッド】
・fit(X):計算の実行
・fit_transform(X): 変換された出力を表示する
・gets_params: パラメータの取得
・set_params: パラメータの設定

t-SNEだけでは花の分類を行うことはできませんが、k-means法などのクラスタリング手法を使うことでデータの分類を行うことが可能となります。


〇t-SNEを使った次元圧縮

# ライブラリのインポート
from sklearn.datasets import load_iris
from sklearn.manifold import TSNE

iris = load_iris()
X = iris.data
y = iris.target

また次元削減前の説明変数の大きさも確認しておきましょう。

In [1]: X.shape

Out[1]: (150, 4)

現状は4次元のデータとなっているので、t-SNEを行い2次元に次元削減を行なってみましょう。
t-SNEの場合、作成したインスタンスに対して、fit_transformを使ってデータの次元削減を行います。

# インスタンス作成
tsne = TSNE(n_components=2,random_state=0)

次元削減の変数の大きさも確認してみましょう。次元が指定の2次元となっていることが確認できます。

In [2]: print(tsne.fit_transform(X).shape)

Out[2]: (150, 2)














いいなと思ったら応援しよう!