始める無料で始める

PCA特徴量の分散

この魚のデータセットは6次元です。では、その本質的(intrinsic)な次元はいくつでしょうか? PCAの特徴量の分散をプロットして確かめましょう。これまでと同様に、samples は各行が1匹の魚を表す2次元配列です。まず特徴量を標準化する必要があります。

この演習はコースの一部です

Pythonで学ぶ教師なし学習

コースを見る

演習の手順

  • StandardScaler のインスタンスを作成し、scaler という名前を付けます。
  • PCA のインスタンスを作成し、pca という名前を付けます。
  • make_pipeline() 関数を使って、scalerpca を連結したパイプラインを作成します。
  • 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()
コードを編集して実行