第1主成分
データの第1主成分は、データの分散が最大となる方向を表します。この演習では、PCA を使って穀粒サンプルの長さと幅の測定値から第1主成分を求め、散布図上に矢印として表現します。
配列 grains には穀粒サンプルの長さと幅が入っています。PyPlot(plt)と PCA はすでにインポート済みです。
この演習はコースの一部です
Pythonで学ぶ教師なし学習
演習の手順
- 穀粒の測定値の散布図を作成します。これはすでに用意されています。
modelという名前のPCAインスタンスを作成します。grainsデータにモデルを適合させます。modelの.mean_属性を使って、データの平均の座標を取り出します。.components_[0,:]属性を使って、modelの第1主成分を取得します。plt.arrow()関数を使って、散布図上に第1主成分を矢印として描画します。最初の2つの引数としてmean[0]とmean[1]を指定してください。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Make a scatter plot of the untransformed points
plt.scatter(grains[:,0], grains[:,1])
# Create a PCA instance: model
model = ____
# Fit model to points
____
# Get the mean of the grain samples: mean
mean = ____
# Get the first principal component: first_pc
first_pc = ____
# Plot first_pc as an arrow, starting at mean
plt.arrow(____, ____, first_pc[0], first_pc[1], color='red', width=0.01)
# Keep axes on same scale
plt.axis('equal')
plt.show()