数百万行、数千列のデータセットがあり、タスクはバイナリ分類であるとします。ロジスティック回帰モデルを実行すると、パフォーマンスは予想よりもはるかに優れています(たとえば、ほぼ完全な分類)。
データに不正な変数があると思われますが、どうすればすばやく検出できますか?
ここで不正な変数とは、応答を非常に示す変数であり、使用すべきではありません。たとえば、ユーザーがカスタマーサービスに電話をかけた場合に使用して、その人が製品を購入したかどうかを予測します。
数百万行、数千列のデータセットがあり、タスクはバイナリ分類であるとします。ロジスティック回帰モデルを実行すると、パフォーマンスは予想よりもはるかに優れています(たとえば、ほぼ完全な分類)。
データに不正な変数があると思われますが、どうすればすばやく検出できますか?
ここで不正な変数とは、応答を非常に示す変数であり、使用すべきではありません。たとえば、ユーザーがカスタマーサービスに電話をかけた場合に使用して、その人が製品を購入したかどうかを予測します。
回答:
これは、「データ漏洩」と呼ばれることもあります。これに関する素晴らしい論文がここにあります:
上記の論文には、データ漏えいの面白い(そして恐ろしい)例がたくさんあります。たとえば、研究全体でグループがどのように形成されたかに起因して、患者ID番号が将来の癌をほぼ完全に予測していることが判明した癌予測競争などです。 。
データ漏洩を特定する明確な方法はないと思います。上記の論文にはいくつかの提案がありますが、一般的にそれは非常に特定の問題です。例として、機能とターゲット間の相関関係だけを確認することができます。ただし、場合によっては見落とすことがあります。たとえば、stackexchangeのようなWebサイト用のスパムボット検出器を作成しているとします。メッセージの長さ、コンテンツなどの収集機能に加えて、メッセージが別のユーザーによってフラグが付けられたかどうかに関する情報を収集できる可能性があります。ただし、ボット検出器をできるだけ高速にしたい場合は、ユーザーが生成したメッセージフラグに依存する必要はありません。当然、スパムボットは大量のユーザー生成メッセージフラグを蓄積するため、分類器はこれらのフラグに依存し始める可能性があります。メッセージの内容はそれほどではありません。このようにして、フラグを機能として削除することを検討する必要があります。これにより、クラウドソースのユーザーの努力よりも速く、つまり、幅広い聴衆がメッセージにさらされる前に、ボットにタグを付けることができます。
他の場合には、あなたの検出を引き起こしている非常に愚かな機能があります。軍隊がタンク探知器を作成しようとした方法に関するストーリーについての素晴らしい逸話があります。これはほぼ完全な精度でしたが、代わりに曇りの日を検出することになりました。タンクなしで晴れた日に撮影されました。これに関する非常に関連性の高い論文は、「なぜ私はあなたを信頼しなければならないのですか?」:分類子の予測を説明する -リベイロ、他 al。