2

私は、電子メール、IMなどのさまざまな形式のデータから機械学習アルゴリズムを使用して異常(既知または未知)を検出する任務を負っています。

  1. お気に入りの最も効果的な異常検出アルゴリズムは何ですか?

  2. それらの制限とスイートスポットは何ですか?

  3. これらの制限にどのように対処することをお勧めしますか?

すべての提案は非常に高く評価されています。

4

2 に答える 2

4

ベイジアンフィルターのような統計フィルターや、一部のスパムフィルターで採用されているいくつかの卑劣なバージョンは簡単に実装できます。さらに、それに関するオンラインドキュメントがたくさんあります。

大きな欠点は、未知のものを実際に検出できないことです。既知のデータの大規模なサンプルを使用してトレーニングし、新しい着信データを分類できるようにします。ただし、従来のスパムフィルターを逆さまにすることができます。不正なデータではなく正当なデータを認識するようにトレーニングして、認識されないものが異常になるようにします。

于 2010-12-01T21:50:10.560 に答える
3

データのタイプと解決しようとしている問題に応じて、さまざまなタイプの異常検出アルゴリズムがあります。

  1. 時系列信号の異常:時系列信号は、時間の経過とともに折れ線グラフとして描画できるものです(たとえば、CPU使用率、温度、電子メール数の1分あたりの割合、Webページの訪問者の割合など)。アルゴリズムの例としては、Holt-Winters、ARIMAモデル、マルコフモデルなどがあります。私は数ヶ月前にこのテーマについて話をしました-それはあなたにアルゴリズムとそれらの制限についてのより多くのアイデアを与えるかもしれません。ビデオは次の場所にあります:https ://www.youtube.com/watch?v = SrOM2z6h_RQ

  2. 表形式データの異常:これらは、何かを説明する特徴ベクトルがある場合です(たとえば、電子メールを、それを説明する特徴ベクトルに変換します:受信者の数、単語の数、大文字の単語の数、キーワードの数など)。 ..)。このような特徴ベクトルのセットが大きい場合、残りの部分と比較して異常なものを検出する必要があります(「外れ値検出」と呼ばれることもあります)。これらの場合、ほとんどすべてのクラスタリングアルゴリズムが適していますが、どちらが最適かは、機能のタイプとその動作(実数値の機能、通常、名目、その他)によって異なります。機能のタイプによって、特定の距離関数が適切かどうかが決まり(ほとんどのクラスタリングアルゴリズムの基本要件)、一部のアルゴリズムは、特定のタイプの機能で他のアルゴリズムよりも優れています。試すのが最も簡単なアルゴリズムはk-meansクラスタリングです。この場合、異常サンプルは非常に小さいクラスターか、すべてのクラスター中心から遠く離れたベクトルになります。片側SVMは外れ値も検出でき、さまざまなカーネル(および事実上さまざまな距離関数)を選択できる柔軟性があります。もう1つの人気のあるアルゴはDBSCANです。

  3. 異常がわかっている場合、問題は教師あり学習の問題になるため、分類アルゴリズムを使用して、既知の異常の例でそれらをトレーニングできます。ただし、前述のように、既知の異常のみを検出し、異常のトレーニングサンプルの数が非常に少ない場合、トレーニングされた分類器は正確でない可能性があります。また、異常の数は通常、「異常なし」に比べて非常に少ないため、分類器をトレーニングするときは、異常クラスのオーバーサンプリングを使用してブースティング/バギングなどの手法を使用することをお勧めしますが、非常に小さい場合は最適化します。偽陽性率。文献にはそれを行うためのさまざまな手法があります---私が何度もうまく機能することがわかった1つのアイデアは、Viola-Jonesが顔検出に使用したもの-分類子のカスケードです。見る:http://www.vision.caltech.edu/html-files/EE148-2005-Spring/pprs/viola04ijcv.pdf

(免責事項:私は、時系列データのリアルタイム異常検出を行う商業会社であるAnodotのチーフデータサイエンティストです)。

于 2016-01-08T10:11:46.963 に答える