質問

私は詐欺検出システムに取り組んでいます。この分野では、新しい詐欺が定期的に登場するため、新しい機能を継続的にモデルに追加する必要があります。

(開発プロセスの観点から)それを処理するための最良の方法は何だろうか?機能ベクトルに新しい機能を追加して分類器を再トレーニングするだけで、古い機能の再学習に時間がかかりすぎるため、素朴なアプローチのようです。

各機能(またはいくつかの関連する機能)の分類器をトレーニングする方法に沿って、それらの分類子の結果を全体的な分類器と組み合わせる方法を考えています。このアプローチの欠点はありますか?分類器全体のアルゴリズムを選択するにはどうすればよいですか?

役に立ちましたか?

解決

理想的な世界では、すべての履歴データを保持し、実際に履歴データから遡及的に抽出された新しい機能を使用して新しいモデルを実行します。これに費やしたコンピューティングリソースは、実際には非常に有用であると主張します。それは本当に問題ですか?

はい、それは分類器のアンサンブルを構築し、その結果を組み合わせるための広く受け入れられている手法です。新しい機能とその予測において平均して、新しいモデルを並行して構築できます。これは値を付加するはずですが、分類子に一緒に表示されることはないため、新しい機能と古い機能の間の相互作用をキャプチャすることはありません。

他のヒント

これが青から飛び出しただけです - あなたが使用したらどうでしょう ランダムサブスペースサンプリング (実際には、Sean Owenがすでに提案しているように)新しい機能が表示されるたびに、新しい分類子を訓練するために(新しい機能セットを含むランダムな機能サブセットを使用)。トレーニング時間を節約するために、サンプルのサブセットでもこれらのモデルをトレーニングできます。

このようにして、新しい分類子を新しい機能と古い機能の両方を引き受ける可能性があり、同時に古い分類子を維持することができます。おそらく、各分類子のパフォーマンスを測定するためにクロス検証手法を使用して、しばらくして最悪のパフォーマンスを殺すことができ、肥大化したモデルを避けることができます。

あなたが説明するものは、のカテゴリーにあります コンセプトドリフト 機械学習で。これで興味深い実用的なアイデアを見つけるかもしれません 要約論文 そして、あなたは可能なアプローチの分類を見つけるでしょう これらのスライド.

ライセンス: CC-BY-SA帰属
所属していません datascience.stackexchange
scroll top