異常検出は最初にpyodTask2に遭遇しました

タスク2:統計ベースの方法

最新改訂日:2021.1.15 15:35

要約:ノートのマインドマップを作成し、正規分布と多変量ガウス分布を研究しました。
HBOSは、APIによって生成されたデータと乳がんデータセットでテストされ、良好に機能しました。

1.注意事項

1.1概要

ここに画像の説明を挿入

1.直交座標と極座標の相互化にdxdy =rdrdθがあるのはなぜですか?-一人の答えへ-知る
2.標準正規分布の積分
3.多変量ガウス分布に関する知識、よく書かれた答え
3シグマルールアイコン

1.1ボックス図の概要

箱ひげ図は、5桁の要約(「最小」、第1四分位(Q1)、中央値、第3四分位(Q3)、および「最大」)に基づいてデータ分布を表示するための標準化された方法です。

  • 中央値(Q2 / 50パーセンタイル):データセットの中央値。
  • 最初の四分位数(Q1 / 25パーセンタイル):最小数(「最小」ではない)とデータセットの中央値の中間の数。
  • 3番目の四分位数(Q3 / 75パーセンタイル):データセットの中央値と最大値の間の中央値(「最大値」ではありません)。
  • 四分位範囲(IQR):25パーセンタイルから75パーセンタイルまでの距離。
  • ひげ(青で表示)
  • 外れ値(緑色の円で表示)
  • 「最大」:Q3 + 1.5 * IQR
  • 「最小」:Q1 -1.5 * IQR

  • 箱ひげ図と3σ\ sigmaσルールは厳密には対応していませんが、3σ\ sigmaσルール大まかに見る
  • 箱ひげ図(boxplot)を深く理解する方法-jinzhaoの記事-知公園

2.HBOS

2.1離散

度数分布のヒストグラムですか

2.2数値

2.2.1静的分布ヒストグラム

各次元について、2次元のキャンバスを想像してください。
x固定距離分割、ヒストグラムの高さは、固定間隔に入る値の数です

2.2.2動的分布ヒストグラム

  1. 値を小さいものから大きいものへと最初に並べ替えます
  2. 等分NK \ FRAC {N} {K }KN共有し、連続する値をボックスに分割します
    1. NN Nは値の総数、kkkはボックスの数です
    2. 除算は等しいので、次の3つを推測できることに注意してください。
      1. 値がまばらである場合、間隔のスパンは比較的大きく、値が密である場合、間隔のスパンは比較的小さくなります。
      2. ヒストグラムの面積は、ヒストグラム内のポイントの数を表します。ポイントの数が等しいため、各ヒストグラムの面積は等しくなります。
      3. 各ヒストグラムの面積は等しく、間隔スパンは大きく、高さは低く、間隔スパンは小さく、高さは高くなっています。
  3. 特別な状況:kk以上kの数は同じ値であり、ボックス内のポイントの数はNK \ frac {N} {K}を超える可能性がありますKNこの仮説を証明する必要がありますが状況理解するために、つまり、同じ値を持つ数値の数がしきい値を超えた後、追加の平均数値が特定のボックスに割り当てられます
  4. 注意:
    1. ダイナミックの使用をお勧めします
    2. kk kの値は、通常、k = N k = \ sqrt {N}です。k=N
    3. ボックスの高さは密度の推定値を表し、ボックスの最大高さは1です。
    4. HBOS HBOS H B O S値の計算
      HBOS(p)= ∑ i = 1 d1log⁡(P i(p))HBOS(p)= \ sum_ {i = 1} ^ {d} \ frac {1} {\ log(P_i(p))}H B O S p =i = 1Dlo gPp 1
    5. それらがすべて非常に密度が高い場合Pi(p)P_i(p)Pp はすべて1で、分母は比較的大きく、HBOS(p)HBOS(p)H B O S p の値は比較的小さく、それほど異常ではありません。0.3、0.8、0.24、0.8 0.8、0.64などの大きいまたは小さい場合、分母が大きいほど、値は小さくなります。分母が大きいほど、ボックスが高くなるほど、データの密度が高くなり、異常で論理的なデータが少なくなります。
    6. HBOS HBOS H B O Sの結果は数値であり、ヒストグラムの表示ではありません。

3.練習

Evaluation_printの評価指標は、異常スコアによって決定されたラベルに基づいており、精度が計算されます。つまり、精度@ランクnです。precision_scoreの評価指標は、モデルによって導入された標準、つまり精度に基づいています。 。

3.1データ1

  • Data1は、generate_dataAPIによって生成されたデータを使用します
  • このプロセスは前の記事のLOFプロセスと同じです。最終結果は、ROCの値が非常に高いことを示していますが、precisio @ nの効果はあまり良くなく、グローバルな例外のスコアは優れていることを示していますが、ローカル例外にはあまり適していません(すべての次元は異常を検出するのは簡単ですが、特定の次元の異常を検出するのは簡単ではありません)

精度@ランクn

# evaluate and print the results
print("\nOn Training Data:")
evaluate_print(clf_name, y_train1, y_train_scores1)
print("\nOn Test Data:")
evaluate_print(clf_name, y_test1, y_test_scores1)

トレーニングデータについて:
HBOS ROC:0.9947、精度@ランクn:0.8

テストデータ:
HBOS ROC:0.9744、精度@ランクn:0.6

精度

print("\nOn Training Data:")
print(precision_score(y_train1,y_train_pred1))
print("\nOn Test Data:")
print(precision_score(y_test1,y_test_pred1))

トレーニングデータについて:
0.8

テストデータ:
0.5625

3.2データ2

Data2は乳がんデータを使用します。data2の使用は次の3つの段階を経ています。

  1. 最初の段階:元のデータが入力されるか、正規化が正規化され(これは間違っている、必要ありません)、結果は非常に低く、精度は約0.2であり、テストセットの精度はトレーニングセットよりも高くなります
  2. 第2段:
    1. HBOSのパラメータが検出され、調整されます。汚染は異常な割合であり、n_binsはN \ sqrt {N}に準拠していますN 選択の原則、アルファは過剰適合を防ぐことであり、トールは外れ値を処理する柔軟性です。
    2. 陽性症例の比率は0.63であり、最大汚染の限界である0.5を超えていることがわかったので、ラベル0とラベル1を逆にしました。新しいラベルがリストに保存され、ROCは0.89、精度0.75に達しました。そしてテストセットはより低かった。基本的な合理的な範囲に達した
    sum(data.target)/len(data.target)
    

ここに画像の説明を挿入
ここに画像の説明を挿入

  1. 第3段階:紙のROC値が非常に高いことがわかり、紙は最初の10個の外れ値を保持し、残りの外れ値は削除されていることがわかります。検査で1が異常であると判断されたため、breast_cancer 1は通常と見なされるため、逆にする必要もあります。結果:
    1. ROC値は非常に高いが、精度@nは非常に低い
    2. アルファが小さいほど、ROC値は高くなります
    3. 現在、テストセットのROC値はトレーニングセットのROC値よりも高く、過剰適合を感じますが、pyodの過剰適合を抑制する方法はあまり効果的ではありません。後で、sklearnの相互検証を調べて、それが機能するかどうかを確認できます。
    4. 汚染= 0.1の場合、ROCの値は調査対象の汚染= 0.027(実際のデータ)よりも大きくなります。
      ここに画像の説明を挿入

情報とリンク

HBOSメソッドの紙の
jupyterドキュメント

おすすめ

転載: blog.csdn.net/qq_35147871/article/details/112559793