PCA特徴量の分散
この魚のデータセットは6次元です。では、その本質的(intrinsic)な次元はいくつでしょうか? PCAの特徴量の分散をプロットして確かめましょう。これまでと同様に、samples は各行が1匹の魚を表す2次元配列です。まず特徴量を標準化する必要があります。
この演習はコースの一部です
Pythonで学ぶ教師なし学習
演習の手順
StandardScalerのインスタンスを作成し、scalerという名前を付けます。PCAのインスタンスを作成し、pcaという名前を付けます。make_pipeline()関数を使って、scalerとpcaを連結したパイプラインを作成します。pipelineの.fit()メソッドで、魚のサンプルsamplesに適合させます。pcaの.n_components_属性を使って使用された成分数を取り出し、これをrange()に渡してfeaturesとして保存します。plt.bar()を使って説明分散をプロットします。x軸にfeatures、y軸にpca.explained_variance_を指定します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Perform the necessary imports
from sklearn.decomposition import PCA
from sklearn.preprocessing import StandardScaler
from sklearn.pipeline import make_pipeline
import matplotlib.pyplot as plt
# Create scaler: scaler
scaler = ____
# Create a PCA instance: pca
pca = ____
# Create pipeline: pipeline
pipeline = ____
# Fit the pipeline to 'samples'
____
# Plot the explained variances
features = ____
plt.bar(____, ____)
plt.xlabel('PCA feature')
plt.ylabel('variance')
plt.xticks(features)
plt.show()