PCAを前処理ステップとして使用するのが適切なのはいつですか?


8

PCAは、データセットを2Dまたは3Dでプロットできるように次元削減に使用されることを理解しています。しかし、PCAを分類シナリオの前処理ステップとして適用して特徴の数を減らし、新しい特徴としていくつかの主成分(共分散行列の固有ベクトル)を使用する人を見たこともあります。

私の質問:

  • 分類のパフォーマンスにどのような影響がありますか?

  • そのような前処理ステップをいつ適用するのですか?

  • 実数として10個の特徴とカテゴリカル特徴を表す600個のバイナリ特徴を含むデータセットがあり、それらを表すために1対多のエンコーディングを使用しています。ここでPCAを適用すると意味があり、より良い結果が得られますか?

質問が広すぎる場合は、そのようにPCAを使用する方法の詳細をより詳しく説明するペーパーまたはチュートリアルを提供していただければありがたいです。

少し読んだ後、カテゴリ属性のバイナリ機能の数を減らすには、潜在セマンティック分析を使用する方が良いことがわかりましたか?したがって、私は実数値の特徴には触れず、バイナリ特徴を前処理して、実数値の特徴を新しい特徴と組み合わせ、分類器をトレーニングするだけです。どう思いますか?

回答:


5

機能選択にPCAを使用する(非予測機能を削除する)ことは、非常にコストのかかる方法です。PCAアルゴはしばしばO(n ^ 3)です。むしろ、はるかに優れた、より効率的なアプローチは、機能とクラス間の相互依存性の測定を使用することです-この相互情報は非常にうまく機能する傾向があるため、さらに、a)完全に一般化され、b)依存性の唯一の測定です実際には、カルバック・ライブラー分岐に基づく優れた哲学的基盤があります。

たとえば、次を計算します(ある程度の平滑化を使用した近似最尤確率を使用)

MI-above-expected = MI(F、C)-E_ {X、N} [MI(X、C)]

ここで、2番目の用語は、「N個の例で予想される相互情報量」です。次に、MIを上回って期待どおりに並べ替えた後、上位M個の機能を使用します。

PCAを使用する理由は、多くの機能が実際に依存していると予想される場合です。これは、独立性が想定されるナイーブベイズにとって特に便利です。現在、私が使用したデータセットは常にPCAを使用するには大きすぎるため、PCAを使用せず、より高度な方法を使用する必要があります。しかし、データセットが小さく、より洗練された方法を調査する時間がない場合は、必ず先に進み、すぐに使えるPCAを適用してください。

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