scikit-learnを使ってPCAによる次元削減を7行で書いてみた

高次元のデータを解析する場合、データの分布などが見てもわからないので、PCAを使って次元削減をしてから可視化する場合があります。
PCAについてはこれまでにこのブログでも何度も触れているのでそちらを参照してください。
今回はフランスのINRIAがFundingしているscikit-learnというライブラリを使って7行で(空行含まず)書いてみました。言語はPythonです。

import numpy
import sklearn.decomposition
dim=2
data=numpy.loadtxt("data.csv", delimiter=",")
pca=sklearn.decomposition.PCA(dim)
result=pca.fit_transform(data);
numpy.savetxt("result.csv", result, delimiter=",")

たったこれだけで、data.csvというファイル(行ごとに多次元データがカンマ区切りで入っている)を読み込み、PCAで次元削減(2次元へ圧縮)したあとresult.csvというファイルに書き出しています。
白色化する場合は pca.whiten=True という行を、fit_transform の前に入れればOKだと思います。
PCAというより、numpy.loadtxt / numpy.savetxt 素晴らしい!という内容になりました。

コメントする