機能の数を減らすことができるのに、なぜPCAを使用して学習アルゴリズムを高速化するのですか?


12

機械学習コースで、PCA(主成分分析)の一般的な使用法の1つが他の機械学習アルゴリズムの高速化であることを学びました。たとえば、ロジスティック回帰モデルをトレーニングしているとします。1からnまでのiのトレーニングセットがあり、ベクトルxの次元が非常に大きい場合(次元としましょう)、 PCAを使用して、より小さな次元(たとえばk次元)の特徴ベクトルzを取得できます。次に、iの1からnまでのトレーニングセットでロジスティック回帰モデルをトレーニングできます。特徴ベクトルの次元が少ないため、このモデルのトレーニングは高速になります。(x(i),y(i))(z(i),y(i))

ただし、ランダムにk個のフィーチャを選択し、残りを削除するだけでは、フィーチャベクトルの次元をk次元に減らすことができない理由はわかりません。

zベクトルは、特徴ベクトルの線形結合です。zベクトルはk次元の表面に限定されているため、k個の消去された特徴値を残りのk個の特徴値の線形関数として記述できます。したがって、すべてのzはk個の特徴の線形結合によって形成できます。そのため、フィーチャが削除されたトレーニングセットでトレーニングされたモデルは、PCAによって次元が削減されたトレーニングセットでトレーニングされたモデルと同じパワーを持つべきではありませんか?モデルの種類と、ある種の線形結合に依存しているかどうかだけに依存していますか?


1
ドロップ列は、PCAを使用した場合と比較して、より多くの情報を失うことになります
Haitao Du

2
ポリメラーゼ連鎖反応とは何ですか?:-) ---すべての深刻さにおいて、略語を使用する前に常に用語を綴るべきです。
カールウィットソフト

PCAによって取得された固有ベクトルを新しい機能として表示できるため、PCAは機能の削減を可能にします。
mathreadler

回答:


26

最初に特徴がありますが、これが多すぎるため、実際にモデルをd < p個の特徴に適合させたいとしましょう。d個の機能を選択し、残りを削除できます。場合Xは私達の特徴マトリックスである、使用してこの対応するX D D { 0 1 } 、P × Dはの正確列うちピックXを我々に含めること。しかし、これは他の列内のすべての情報を無視し、なぜ、より一般的な次元削減を検討していないX V V Rをpd<pdXXDD{0,1}p×dXXV?これは、PCAはまったく同じものです:私たちは行列見つけVをするように、XVは、内の情報の多くとして含まれているXできるだけ。すべての線形結合が等しく作成されるわけではありません。私達のない限りXの行列がのランダムセットほど低いランクであるD列は(高い確率で)すべての列空間またがることができるp個の列を、私たちは確かにすべてと同じようにだけでなく、操作を行うことができなくなりますp個の機能を備えています。一部の情報は失われますので、できるだけ少ない情報を失わなければなりません。PCAでは、損失を回避しようとしている「情報」はデータのばらつきです。VRp×dVXVXXdpp

予測変数の線形変換に限定する理由については、このユースケースの全体のポイントは計算時間です。派手な非線形次元削減を行うことができれば、おそらくすべてのXにもモデルを適合させることができます。したがって、PCAは、高速計算と効果の交差点に完全に対応します。XX


2
+1。それでも、Xの変動(PCAが保持しようとする)がYの予測に関連する理由を尋ねるのは理にかなっています...これは関連するスレッドです:stats.stackexchange.com/questions/141864
アメーバは、モニカを復活させる

4

PCAは、元のデータの分散/情報を保持しながら機能を削減します。これは、データの現実の類似性を失わずに、計算を可能にするのに役立ちます。


2

PCAソリューション

まず、この目的でPCAを使用する場合は注意してください。関連する質問答えて書いたように、 PCAは必ずしもあなたがしようとしている回帰に有益な機能の選択につながるわけではありません(Jolliffe 1982も参照)。

OP提案のソリューション

次に、提案された代替メカニズムを検討reduce the dimension of your feature vector to k dimensions by just choosing k of your features at random and eliminating the rest.しますdimension of your vector x is very large。問題ステートメントで、を仮定するように求められました。この次元をと呼びましょうp

pCkkpp=1000k=58.25×1012k=5k=6p

推奨される解決策

p

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.