異常檢測 - 方法匯總 與 grubbs test


本篇博客的目的:記錄 grubbs test 的用法;

其實 用法 沒啥難度,只是這個 模塊安裝的 模塊名 有些特殊,做個記錄;

 

import numpy as np
from OUTLIERS import smirnov_grubbs as grubbs


################################### grubbs test ###################################
#添加包 pip install outlier_utils

##### 缺點
# 1、只能檢測單維度數據
# 2、無法精確的輸出正常區間
# 3、它的判斷機制是“逐一剔除”,所以每個異常值都要單獨計算整個步驟,數據量大吃不消。
# 4、需假定數據服從正態分布或近正態分布


################# 均勻分布 #################
data = np.random.uniform(1, 100, 100)
data = np.concatenate((data, [5000]), 0)
print(data.shape)       # (101,)
out = grubbs.test(data, 0.05)
print(out)              ### 輸出正常數據

def func_error(value):
    error = set(value) - set(list(grubbs.test(value,alpha=0.05)))
    return error
print(func_error(data))     # {5000.0}


################# 正態分布 #################
data_norm = np.random.normal(0, 1, 100)
data_norm = np.concatenate((data_norm, [50]), 0)
print(data_norm.shape)              # (101,)
print(func_error(data_norm))        # {50.0}

至於 grubbs test 的原理,請參考下面的鏈接;

 

下面的鏈接 總結了 一些 異常檢測的 方法,有原理,有代碼,有空看看

 

 

參考資料: 

https://www.zhihu.com/question/280696035    知乎還是最好的資源,理論不錯

https://zhuanlan.zhihu.com/p/76281678    知乎還是最好的資源,理論 加 代碼

 

http://www.manongjc.com/article/59928.html  代碼 + 理論

https://www.cnblogs.com/Bang-cansee/p/4954129.html  純理論,板書很差

https://blog.csdn.net/weixin_33906657/article/details/86130660  時間序列異常檢測算法S-H-ESD


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM