始める無料で始める

実践上の問題:スケーリング

動画で見たように、PCA を実行する前にデータをスケーリングすると、PCA モデリングの結果が変化します。ここでは、スケーリングを行った場合と行わなかった場合でそれぞれ PCA を実行し、その結果をバイプロットで可視化して比較します。

変数間の分散が大きく異なる場合は、スケーリングが適切であることがあります。これは、変数の単位が異なる場合によく見られます。例えば、華氏(温度)とマイル(距離)のような場合です。スケーリングを使用するかどうかの判断は、主成分分析を行う上で重要なステップです。

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

R による教師なし学習

コースを見る

演習の手順

同じ Pokemon データセットがワークスペースに pokemon として用意されていますが、新しい変数 Total が1つ追加されています。

  • エディタの上部に、モデル内の各変数の平均と標準偏差を計算するコードがあります。このコードを実行して、元のデータにおける変数のスケールの違いを確認しましょう。
  • スケーリングを行った上で pokemon の PCA モデルを作成し、結果を pr.with.scaling に割り当てます。
  • スケーリングを行わずに pokemon の PCA モデルを作成し、結果を pr.without.scaling に割り当てます。
  • biplot() を使って両方のモデルを(1つずつ)プロットし、出力を比較しましょう。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Mean of each variable
colMeans(pokemon)

# Standard deviation of each variable
apply(pokemon, 2, sd)

# PCA model with scaling: pr.with.scaling


# PCA model without scaling: pr.without.scaling


# Create biplots of both for comparison

コードを編集して実行