ジャーナル論文が受け入れられるかどうかなど、バイナリ変数の結果を予測するためにロジスティック回帰を行っています。従属変数または予測子は、これらの論文で使用されているすべてのフレーズ (ユニグラム、バイグラム、トライグラム) です。これらのフレーズの 1 つは、「承認済み」クラスで偏った存在感を示しています。このフレーズを含めると、非常に高い精度 (90% 以上) の分類子が得られますが、このフレーズを削除すると、精度が約 70% に低下します。私のより一般的な(素朴な)機械学習の質問は、分類を行うときにそのような歪んだ機能を削除することをお勧めしますか? すべての機能の歪んだ存在をチェックし、それをモデルに保持するかどうかを決定する方法はありますか?
2 に答える
あなたのコメントに基づいて、クラスを高度に予測するドキュメントの特徴はほぼトートロジーであるように思えます: データベース内の論文の少なくともいくつかはすでに受理されたものから削り取られたため、「受理された論文」は受理された論文と相関します。論文であり、著者によってそのように注釈が付けられています。
私には、論文が受理されるかどうかを予測しようとするのに、これは役に立たない機能のように思えます。実際の受理が発行される前に論文の受理を予測しようとしているからです。このような場合、アルゴリズムをテストしたい論文には、「論文が受理されました」という注釈が付けられません。だから、私はそれを削除します。
また、特徴が 1 つのクラスと強く相関しているかどうかを判断する方法についても尋ねました。この問題で思いつくことが 3 つあります。
まず、データセット内の各フィーチャの基本頻度カウントを計算し、それらの値をクラス間で比較できます。これはおそらく非常に有益ではありませんが、簡単です。
次に、対数線形モデルを使用しているため、トレーニング データセットでモデルをトレーニングし、ロジスティック回帰パラメーター ベクトルの重みでモデル内の各特徴をランク付けできます。正の重みが大きいフィーチャは一方のクラスを示し、負の重みが大きいフィーチャは他方のクラスを強く示します。
最後に、完全を期すために、機能の選択についても検討することをお勧めします。機械学習アルゴリズムに関連する機能を選択する方法はたくさんありますが、あなたの観点から最も直感的な方法の 1 つは、貪欲な機能の削除かもしれません。. このようなアプローチでは、モデル内の N 個の特徴すべてを使用して分類器をトレーニングし、ホールドアウトされた検証セットの精度を測定します。次に、各モデルが N 個の特徴のうちの 1 つを排除するように、それぞれ N-1 個の特徴を持つ N 個の新しいモデルをトレーニングし、結果として生じる精度の低下を測定します。最大の低下を伴う機能は、おそらくクラスを強く予測していましたが、測定可能な差がない機能は、おそらく最終モデルから除外できます。以下のコメントで larsmans が正しく指摘しているように、これはまったくうまくスケーリングしませんが、場合によっては便利な方法になる可能性があります。
私が正しく理解している場合は、良い予測子であるため、いくつかの機能を削除する必要があるかどうかを尋ねます (分類器の動作が改善されます)。したがって、答えは短くて簡単です。実際には削除しないでください。全体のコンセプトは、まさにそのような機能を見つけることです。
このような機能を削除する唯一の理由は、この現象がトレーニング セットでのみ発生し、実際のデータでは発生しないためです。しかし、そのような場合、間違ったデータがあります。これは、基礎となるデータ密度を表していないため、より良いデータを収集するか、現在のデータを「クリーン」にして、「実際のデータ」と同様の特性を持つようにする必要があります。