まずスケーリングしてからPCAを適用する
ここで標準化が重要な理由
「まずスケーリングしてからPCAを適用する」はCoddyKit上の無料Data Science Academyレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはData Science Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Data Science Academyコースには全4レッスンが含まれています。
PCAはスケールを重視する
PCAは最大の分散を追いますが、分散は単位によって変わります。値の大きい特徴量は、単にscaleが大きいというだけで支配的になることがあります。
単位による落とし穴
給与をドル、年齢を年で並べる場合を考えてみましょう。給与は数千単位で変動するため、PCAは不公平にも給与をはるかに重要だと判断します。
最初に標準化する
解決策はstandardizationです。すべての特徴量を平均0、分散1になるよう再スケーリングし、同じ条件から始められるようにします。
StandardScalerを使う
scikit-learnのStandardScalerは、PCAに渡す前に列を中心化してスケーリングします。
from sklearn.preprocessing import StandardScaler
Xs = StandardScaler().fit_transform(X)その後でPCAをfitする
PCAは生のデータではなく、スケーリング済みのデータに適用します。これで各成分は偏ったunitsではなく、実際の構造を反映します。
from sklearn.decomposition import PCA
scores = PCA(n_components=2).fit_transform(Xs)中心化も重要
PCAは、データが0を中心としていることを前提にします。標準化では各列の平均を引くため、軸がデータの中心を通るようになります。
パイプラインにつなぐ
scalerとPCAをPipelineにまとめ、常にスケーリングが先に行われるようにします。これにより、データ分割間のリークも防げます。
from sklearn.pipeline import make_pipeline
pipe = make_pipeline(StandardScaler(), PCA(2))学習データだけでfitする
scalerは学習データでfitし、その後テストデータで再利用します。すべてのデータでfitすると情報が漏れ、スコアが不当に高くなります。
省略してもよい場合
すべての特徴量が同じ単位と範囲を持つ場合、スケーリングの重要性は低くなります。迷ったときは、念のためstandardizeしてください。悪影響はほとんどありません。
違いを確認する
単位が混在するデータに対して、スケーリングありとなしの両方でPCAを実行します。説明されたvarianceと上位成分は、はっきり異なる結果になります。
頑健な選択肢もある
外れ値が強い場合はRobustScalerを検討しましょう。中央値と四分位数を使うため、極端な点がPCAに与える影響を抑えられます。
from sklearn.preprocessing import RobustScalerクイックチェック
PCAの直前には、ほぼ必ず行うステップが1つあります。
まとめ
PCAはスケールの影響を受けるため、最初にstandardizeし、学習データだけでfitします。パイプラインを使えば順序も安全に保てます。🎯
AI チューターと学ぶ Python — 無料
ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。
- コース
- 30
- レッスン
- 120
よくある質問
「まずスケーリングしてからPCAを適用する」レッスンは無料ですか?
はい。「まずスケーリングしてからPCAを適用する」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Data Science Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Data Science Academyコースには全4レッスンが含まれています。
「まずスケーリングしてからPCAを適用する」で何を学びますか?
ここで標準化が重要な理由 ブラウザで直接実行するハンズオンコードでData Science Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Data Science Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのData Science Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。
「まずスケーリングしてからPCAを適用する」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このData Science Academyレッスンでコードを書いて実行できますか?
はい。すべてのData Science Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- 特徴量が多すぎる問題
- PCAが成分を見つける仕組み
- まずスケーリングしてからPCAを適用する
- スクリープロットで成分を選ぶ