pythonノートブックを使ってirisデータセットの主成分分析を行ってみました。
まずはライブラリを用意します。
from sklearn.datasets import load_iris
from sklearn.decomposition import PCA
import pandas as pd
import matplotlib.pyplot as plt
irisデータセットを読み込み、データフレームに整えます。
iris = load_iris()
df = pd.DataFrame(data = iris.data, columns=iris.feature_names)
df['label'] = iris.target
df.head()
ここまででデータの準備が整いましたので、主成分分析に取り掛かっていきます。
pca = PCA(n_components=2)
x = df.iloc[:, 0:4]
pca.fit(x)
pca.components_.T
array([[ 0.36138659, 0.65658877],
[-0.08452251, 0.73016143],
[ 0.85667061, -0.17337266],
[ 0.3582892 , -0.07548102]])
scikit-learnを使えば計算自体はすごく簡単でPCAクラスをインスタンス化してfitメソッドを呼び出すだけです。
変換後の結果はcomponents_フィールドにアクセスすれば確認することができます。
うまく変換できているか2次元空間にプロットして確認してみます。
変換もtransformメソッドを呼び出すことで簡単に変換することができます。
X = pca.transform(x)
plt.scatter(x=X[:, 0], y=X[:, 1], c=iris.target)