4

50000 X 370 次元のデータを使用して二項分類問題でロジスティック回帰を実行しました。約 90% の精度が得られました。しかし、データに対して PCA + ロジスティックを実行すると、精度が 10% に低下しました。この結果を見て非常にショックを受けました。 . 誰が何が間違っていたのか説明できますか?

4

2 に答える 2

10

PCA が学習プロセスに役立つ、または害を及ぼさないという保証はありません。特に、PCA を使用して次元の量を削減する場合、データから情報を削除するため、すべてが発生する可能性があります。削除されたデータが冗長である場合、それが問題の重要な部分である場合は、おそらくより良いスコアが得られます。あなたは悪化します。次元を落とさなくても、PCA を介して入力空間を「回転」させるだけで、プロセスに利益と害の両方が生じる可能性があります。教師あり学習に関しては、PCA は単なるヒューリスティックであることを覚えておく必要があります. PCA の唯一の保証は、連続する各次元が説明する分散がますます少なくなること、および最初の K 次元の分散を説明するという点で最良のアフィン変換であることです。それで全部です。PCA はラベルをまったく考慮しないため、これは実際の問題とはまったく関係がない可能性があります。データセット PCA がポイントの位置のみに依存する方法でデータセットを変換すると、(データの一般的な形状と一致する) 一部のラベル付けでは役立つかもしれませんが、他の多くの場合 (ラベルのより複雑なパターン) では、それが役立ちます。以前に検出可能な関係を破壊します。さらに、PCA は一部のスケーリングの変更につながるため、LR の正則化強度など、分類子のさまざまなハイパーパラメーターが必要になる場合があります。

あなたの問題に戻りましょう - あなたの場合、問題は... あなたのコードのバグだと思います。精度が 50% を大幅に下回ることはありません。10% の精度は、分類子の反対を使用すると90% になることを意味します (「true」と表示されている場合に「false」と答え、その逆)。したがって、PCAは役に立たないかもしれませんが(または、説明したように害を及ぼす可能性さえあります)、あなたの場合、それは確かにコードのエラーです。

于 2016-04-16T22:20:56.490 に答える