確率を用いた異常検出アルゴリズム 異常検出は、外れ値分析の統計タスクとして扱うことができます。 しかし、機械学習モデルを開発すれば、自動化が可能になり、通常通り多くの時間を節約できます。 異常検出には多くのユースケースがあります。 クレジットカード詐欺の検出、異常な機能に基づく故障した機械やハードウェア システムの検出、医療記録に基づく病気の検出などがその良い例です。 他にも多くのユースケースがあります。 そして、異常検出の使用は増加するばかりです。 この記事では、Python で異常検出アルゴリズムをゼロから開発するプロセスを説明します。
公式と手順 これは、前に説明した他の機械学習アルゴリズムに比べてはるかに簡単です。 アルゴリズムは平均と分散を使用して各トレーニング データの確率を計算します。 トレーニング例の確率が高い場合、それは正常です。 トレーニング例の確率が低い場合、それは異常です。 トレーニング セットが異なれば、高確率と低確率の定義も異なります。 これをどのように決定するかについては後で説明します。 異常検出の仕組みを説明すると、非常に簡単です。 (1)次の式を用いて平均値を計算する。 ここで、m はデータセットの長さまたはトレーニング データの数であり、xi はトレーニング例です。 複数のトレーニング機能がある場合、ほとんどの場合、各機能の平均を計算する必要があります。 (2)次の式を用いて分散を計算する。 ここで、mu は前のステップから計算された平均値です。 (3)次に、この確率式を使用して各トレーニング例の確率を計算します。 この式のプラス記号に惑わされないでください。これは実際には対角線の形状の変化です。 後でアルゴリズムを実装すると、これがどのように見えるかがわかります。 (4)次に確率の閾値を見つける必要がある。 前に述べたように、トレーニング例の確率が低い場合、それは異常な例です。 低確率とはどの程度の確率でしょうか? 一般的な制限はありません。 トレーニング データセットの答えを見つける必要があります。 ステップ3で得られた出力から一連の確率値を取得します。それぞれの確率について、データが異常か正常かを示すラベルを見つけます。 次に、さまざまな確率の精度、再現率、および f1 スコアを計算します。 精度は次の式で計算できます。 リコール率は次の式で計算できます。 ここで、「真陽性」とは、アルゴリズムが例を異常として検出し、実際に異常であったケースの数を指します。 アルゴリズムが例を異常として検出したが、実際には異常ではない場合に、誤検知が発生します。 False Negative は、アルゴリズムによって検出された例が異常な例ではないが、実際には異常な例であることを意味します。 上記の式から、精度と再現率が高いほど、より多くの肯定的なエッジがあることを意味するため、常に良いことがわかります。 しかし同時に、式からわかるように、偽陽性と偽陰性も重要な役割を果たします。 そこにはバランスが必要です。 あなたが属する業界に応じて、どれを許容できるかを決める必要があります。 良いアプローチは平均を取ることです。 平均を求めるための独自の公式があります。 これはF1スコアです。 F1 スコアの計算式は次のとおりです。 ここで、P と R はそれぞれ精度と再現率です。 この式がなぜそれほどユニークなのかについては詳しく説明しません。 この記事は異常検出に関するものです。 精度、再現率、F1 スコアについて詳しく知りたい場合は、このトピックに関する詳細な記事をこちらでご覧ください。 精度、再現率、Fスコアの概念を完全に理解する 機械学習における偏ったデータセットの扱い方 f1 スコアに基づいて、しきい値確率を選択する必要があります。 1 は完全な f スコアであり、0 は最悪の確率スコアです。 異常検出アルゴリズム 2 つのトレーニング機能を備えた Andrew Ng の機械学習コースのデータセットを使用します。 このデータセットは学習に最適であるため、この記事の実際のデータセットは使用しませんでした。 機能は2つだけです。 現実世界のデータセットでは、特徴が 2 つだけである可能性は低いです。 ミッションを始めましょう! まず、必要なパッケージをインポートします
データセットをインポートします。 これは Excel データセットです。 ここでは、トレーニング データとクロス検証データは別々のテーブルに保存されます。 それでは、トレーニング データを導入しましょう。
列 0 と列 1 をプロットしてみましょう。
このグラフを見ると、どのデータが異常であるかがわかるかもしれません。 このデータセットにトレーニング例がいくつあるか確認します。
各特徴の平均を計算します。 ここでは、0 と 1 の 2 つの特徴のみがあります。
出力:
分散は、上記の「式と手順」セクションで説明した式を使用して計算されます。
出力:
今度は斜めの形にします。 確率の公式に続く「公式と手順」のセクションで説明するように、合計の符号は実際には分散の対角線です。
出力:
確率を計算します。
トレーニング部分は完了です。 次のステップは閾値確率を見つけることです。 確率が閾値確率より低い場合、サンプルデータは異常です。 しかし、私たちの特殊なケースではその閾値を見つける必要があります。 このステップでは、ラベルとともにクロス検証データを使用します。 このデータセットでは、クロス検証データとラベルが別のワークシートに含まれています。 あなたの場合、相互検証のために元のデータの一部のみを保持する必要があります。 次に、クロス検証データとラベルをインポートします。
タグは次のとおりです:
私は配列を扱うのが好きなので、「cvy」を NumPy 配列に変換しました。 DataFramesでも大丈夫です。
出力:
ここで、y 値が 0 の場合はこれが正常な例であることを示し、y 値が 1 の場合はこれが異常な例であることを示します。 さて、しきい値をどのように選択するのでしょうか? 確率のリストからすべての確率を単にチェックしたいわけではありません。 それはおそらく不必要です。 もう一度オッズを確認してみましょう。
出力:
画像からわかるように、外れ値のデータはあまりありません。 したがって、75% の値から始めれば、問題なく進むはずです。 しかし、念のため、平均値から始めます。 したがって、平均値から下限値までの確率の範囲をとります。 この範囲内の各確率の f1 スコアを確認します。 まず、真陽性、偽陽性、偽陰性を計算する関数を定義します。
平均確率以下の確率をリストします。
リストの長さを確認してください。
出力:
先ほど説明した式に従って、f1 スコアを計算する関数を定義します。
すべての機能が準備完了です! ここで、すべての ε または先ほど選択した確率値の範囲の f1 スコアを計算します。
出力:
これは f スコア リストの一部です。 長さは133になります。 f スコアは通常 0 から 1 の間であり、1 が完全な f スコアです。 F1スコアが高いほど良いです。 したがって、計算した「f」スコアのリストから最高の f スコアを取得する必要があります。 ここで、「argmax」関数を使用して最大 f スコア値のインデックスを決定します。
出力:
このインデックスを使用して、しきい値確率を取得します。
出力:
珍しい例を見つける 閾値確率があります。 そこからトレーニングデータのラベルを見つけることができます。 確率値が閾値以下の場合、データは異常であり、それ以外の場合は正常です。 正常データと異常データはそれぞれ 0 と 1 で表します。
出力:
これはタグ リストの一部です。 この計算されたラベルを上記のトレーニング データセットに追加します。
赤いラベルを 1、黒いラベルを 0 としてデータをプロットしました。 これがあらすじです。 それは意味がありますか? 本当ですか?赤字のデータは明らかに異常です。 結論は 異常検出アルゴリズムの開発プロセスを段階的に説明してみました。 ここでは手順を隠していません。 これが理解できることを願います。 読んだだけでは理解しにくい場合は、各コードをノートブックで自分で実行することをお勧めします。 こうすると非常に明確になります。 |
>>: 人工知能、自動化、新興技術のトレンドが4.6兆ドルの通貨市場に混乱をもたらしている
01 車載レーザーレーダーのレーザー点群ポイントクラウド技術により、LIDAR イメージングは...
データ構造とアルゴリズムを学習していたとき、ソートアルゴリズムをアニメーションで表現して、理解しやす...
慢性閉塞性肺疾患を患っている女性は長い間病気で寝たきりの状態です。しかし、彼女の最後の願いは、アメリ...
2021年3月に入り、ドローン業界では新製品の登場、用途の深化、大きな出来事の連続など、発展は活気に...
近年、大規模言語モデル (LLM) とその基盤となるトランスフォーマー アーキテクチャは会話型 AI...
昨日、ソラがまた新たな「傑作」をリリースしました! 『SORA』の著者2人、ビル・ピーブルズとティム...
記者がインタビューした専門家によると、人工知能などの知能化技術の応用が加速するにつれ、雇用への構造的...
「自己回帰型 LLM が人間レベルの AI に近い、あるいは人間レベルのパフォーマンスに達するにはス...
[[251811]]画像ソース @Visual China人工知能の概念は、提唱されてから60年以...
生成 AI の爆発的な増加により、無限の可能性がもたらされました。最近、国内ではミャオヤカメラがイン...
海外メディアTechCrunchによると、7月26日、米上院司法委員会は昨日、人工知能に関する公聴会...
アルゴリズムはプログラムの核であり、アルゴリズムの品質がプログラムの品質を決定すると多くの人が言いま...
1. 問題と原因の分析インダストリアル インターネットは、新世代の情報通信技術と高度な製造技術の深い...