• Skip to main content
  • Skip to primary sidebar

学習記録

異常度と閾値

2017年12月21日 by 河副 太智 Leave a Comment

値の異常さを定量的に扱、異常値を算出する
閾値を設定して、ここから大幅にずれるものを異常とあつかう

閾値が7で11となったら異常
閾値が7で5となったら正常と扱う

閾値は数値ではなく割合で算出

正しいものを以上だと判断する事を誤報率と呼ぶ

 

 

誤報率は以下の手法で計算する

閾値thに対して異常度xが X > th  の時に異常と判断する

1
2
3
4
5
6
7
8
9
import numpy as np
# 異常度X、ラベルy、閾値threshold
X = np.array([17,  2, 19,  7, 6, 19,  4, 8,  2,  1])
y = np.array([ 1,  0,  1,  1,  0,  1,  0,  0,  0,  0])
threshold = 2
 
# 誤報率の計算
err_rate = X[(X > threshold) & (y == 0)].size / X[X > threshold].size
print(err_rate)

>0.42857142857142855

まずXの配列の中から2を超えるものが以上なので9個中8個が該当
その8個の内Yのラベル(1が異常と判断され0が正常と判断された)が0であるものは
正常であると判断したにも拘わらず異常だったという事になる
この数は上記では5個になる

err_rateはXの配列の中から閾値である2を超えるものかつYが0であるものの個数を出し
それをXの配列の中から閾値である2を超えるもので割るという計算で
誤報率を計算する

 

 

 

このエントリーをはてなブックマークに追加

Tweet
[`yahoo` not found]
このエントリーを Google ブックマーク に追加
LinkedIn にシェア
LINEで送る


Filed Under: 異常値検知

Reader Interactions

コメントを残す コメントをキャンセル

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です

Primary Sidebar

カテゴリー

  • AWS
  • Bootstrap
  • Dash
  • Django
  • flask
  • GIT(sourcetree)
  • Plotly/Dash
  • VPS
  • その他tool
  • ブログ
  • プログラミング
    • Bokeh
    • css
    • HoloViews
    • Jupyter
    • Numpy
    • Pandas
    • PosgreSQL
    • Python 基本
    • python3
      • webアプリ
    • python3解説
    • scikit-learn
    • scipy
    • vps
    • Wordpress
    • グラフ
    • コマンド
    • スクレイピング
    • チートシート
    • データクレンジング
    • ブロックチェーン
    • 作成実績
    • 時系列分析
    • 機械学習
      • 分析手法
      • 教師有り
    • 異常値検知
    • 自然言語処理
  • 一太郎
  • 数学
    • sympy
      • 対数関数(log)
      • 累乗根(n乗根)
    • 暗号学

Copyright © 2025 · Genesis Sample on Genesis Framework · WordPress · Log in