fc2ブログ
主成分分析(PCA)の結果をプロット
データの次元を縮約する方法の1つに、主成分分析(Principle Component Analysis)がありますが、その結果をプロットするコードをメモ。

from mpl_toolkits.mplot3d import Axes3D
import pylab
from sklearn.decomposition import PCA
def draw_3d_pca(_values):
pylab.clf()
_rep = PCA(n_components=3).fit_transform(_values)
fig = pylab.plt.figure()
ax = fig.gca(projection='3d')
for d in _rep:
ax.scatter(d[0],d[1],d[2],c='r',marker='o')
pylab.show()

引数は行が変数、列がサンプルの行列です。事前にサンプルの属性がわかっている場合は、プロットするとき色を変えると分かり易いかも知れません。

IPythonを使っている場合、%matplotlib inlineとすると、結果がブラウザの中に表示されますが、3次元の場合、マウスで角度を変えられません。まあ、inlineにせず、別Windowで表示すれば、通常のmatplotlibの機能として、3Dプロットの角度を変えられますが、ブラウザの中で出来たらカッコいいと思い探してみると、mpld3を発見。
おおカッコいいと思って使ってみるも、3Dには対応していないことが判明。残念。でも、2Dのプロットなら、拡大とか出来て便利です。PCAの話題というより、mpld3が3次元プロットには対応していないというのが結論です。お気をつけください。
スポンサーサイト



【2015/08/04 17:30】 | Python | トラックバック(0) | コメント(0) | page top↑
<<theano豆知識 | ホーム | matplotlibでウィンドウを表示させずにグラフを描画する>>
コメント
コメントの投稿














管理者にだけ表示を許可する

トラックバック
トラックバックURL
→http://tanopy.blog79.fc2.com/tb.php/130-546263f3
この記事にトラックバックする(FC2ブログユーザー)
| ホーム |