dak ブログ

python、rubyなどのプログラミング、MySQL、サーバーの設定などの備忘録。レゴの写真も。

python で主成分分析

2020-06-28 19:47:28 | python
python で主成分分析を行う方法のメモ

以下でランダムに生成した10次元のベクトルを2次元に変換します。
import random
import numpy as np
from sklearn.preprocessing import StandardScaler
from sklearn.decomposition import PCA

# 乱数で 10 次元ベクトル x 1000個を生成
xs = []
for i in range(1000):
    x = [random.uniform(0, 1) for j in range(10)]
    xs.append(x)

# numpy に変換
xs_ns = np.array(xs)
print('元データ(10次元)')
print(xs_ns)

# 標準化
sc = StandardScaler()
xs_std = sc.fit_transform(xs_ns)

# PCA で 2次元に縮退
pca = PCA(n_components=2)
xs_pca = pca.fit_transform(xs_std)

# 2次元ベクトル x 1000個
print('2次元に変換')
print(xs_pca)