稀な出来事を予測する私は Pro トライアルで顧客と連携しています。彼らは約 300 万行のデータセットから、0.1% の割合で発生する障害 (バイナリ応答、連続係数) を予測する予測モデルを構築しようとしています。障害は致命的なものであり、パスを失うことを犠牲にしても、その障害を捕捉できるモデルを喜んで受け入れます。
私は、自分ができることをほぼすべて試しました。実行時間を短縮するために、元のファイルを元のデータの 1 ~ 10% にサブセット化し、さまざまな重み付け手法、Torch、XG Boost、モデル スクリーニングを試しました。Boosted Tree は最大の成功を収めましたが、いずれの場合も、サブセットで開発されたモデルは過剰適合しすぎて、サイズは似ているものの一意に異なるデータ セットや、より大きなデータ セットでは役に立ちません。
もっと重み付けして (現在、合格/不合格の重み付けは 1/100)、不合格が過剰に表されるデータのサブセットを作成する必要がありますか? このような非常に不均衡なモデルに最適に設定できるハイパーパラメータはありますか? この人に対して試すべきことについてアドバイスやガイダンスを求めています。 ありがとうございます。
Re: まれな出来事を予測するImbalanced Classification Add-In を試してみましたか? しばらく前に試してみたところ、サンプル データ セットの 1 つ (どれだったかは思い出せません) でパフォーマンスが向上することがわかりました。私は SMOTE や Tomek Links の専門家ではありませんが、 この Kaggle の投稿の紹介が基本を理解するのに役立ちました。
まだ試していない場合は、次のステップとして最適です。
Re: まれな出来事を予測するこれらのまれなイベントを見ると、信頼性について考えますが、それが正しい方法かどうかはわかりません。つまり、時間の経過とともに入力要因が連続的に変化し、ときどき障害が発生します。管理図ツール、特に多変量管理図はどうでしょうか。いくつかの要因の組み合わせが障害といつ発生するかを相関させてみます。
Re: まれな出来事を予測するモデル スクリーニングの決定しきい値を確認しましたか? これはバイナリ分類で使用されます。異なるしきい値 (.1 と .5) がモデルにどのような影響を与えるかを確認できます。
Re: まれな出来事を予測するGenReg プラットフォームで Zero Inflated Binomial の使用を検討しましたか? また、Type I/False Positive が高くなる決定しきい値を検討しましたか?
Re: まれな出来事を予測するまた、まだ視聴していませんが、私の推測が正しければ、 ジェイソン・ウィギンズの最近の欠陥カウントモデルに関するマスタリングウェビナーが役立つかもしれません: 欠陥カウントモデルの最適な選択
Re: まれな出来事を予測するジェネレーション レジスターでゼロを膨らませるのは良いアプローチのように思えますが、実行時間についてはよくわかりません。どのモデルを使用するにしても、必ず決定しきい値を使用して適切なカットオフを決定してください (そうでない場合、予測式はどちらのイベントも 50:50 と想定します)。決定しきい値レポートに基づいてカットオフを決定するのに役立つようにまとめたスライド デッキをお送りします。Re: まれな出来事を予測するだから... 3M の記録は、プロ仕様のモデルをまともなマシンで実行している (そして要素の数を狂わせていない) のであれば、それほど悪くないのではないかと思います。ここで考慮すべき問題がいくつかあると思います。
まず、因子スクリーニングは行われましたか? ブーストツリーまたはランダムフォレストでは、重要でない因子があるかどうかがわかります。それらの因子を減らすと、適合時間が短縮されます。
2 番目 (または 1 番目と同率かも - よくわかりませんが) は、層別クロス検証を行っていますか? 検証列設定ツールを使用して、層別フィールドの応答で TVT クロス検証を作成させます。これにより、モデルが正確になります。トレーニング グループに大量のデータを入れ、最後の 2 つのグループでは量を減少させるのが私の好みです。
提案されたモデルの種類と分布はすべて良いアイデアです。このようなものに対する私の偏見は、再現性のためにランダム シードを使用したツリーベースの方法 (ランダム フォレスト、ブースト ツリー、または XGBoost) です。これらは、このような大規模なデータ セット用に設計されています。ジェリーは、まれなイベントの信頼性という観点から興味深いアイデアを持っていると思います。また、こちらも検討してください: https://youtu.be/Ac6E7da9igU
重み付けについて - あまりに不十分だと思います。あなたの不合格率 0.01% を使用すると、合格データに 0.0001 の重みを付け、不合格データに 0.9999 の重みを付けます。しばらく前にこの問題が浮上した時期がありましたが、(部族的な - 認めます) ガイダンスは、応答列を分布に入れて比率を逆にすることでした (2 番目の文で説明している内容)。これはかなりうまくいったようです。
最後に、状況を言い換えると、評価は、顧客が問題の解決策にたどり着くことができるという自信をつけることが目的のほうがスムーズです。顧客が実際に問題を解決できるようにすることが目的ではありません。このようなことは顧客側で学習サイクルを何度か繰り返す必要があり、評価の残り時間を大幅に超える可能性が高いことは、私たちもわかっていると思います。Pro で解決策にたどり着くことができるという自信をつけることに重点を置けば、たとえ顧客の問題の「モデル」がなくても、顧客は購入します。
Re: まれな出来事を予測する皆さん、これまでのご意見に感謝します。この問題に対して、以下に挙げたアイデアをいくつか試してみましたが、すべてではありませんし、推奨されている方法も試していません。皆さんのアドバイスに感謝します。