异常检测-箱线图
箱線圖表示一組數據分散情況的統計表示圖,如下圖所示:
通常步驟:1. 計算上四分位數-Q3, 中位數,下四分位數-Q1 2. 計算上四分位數和下四分位數之間的差值,即四分位數差值-IQR(Q3-Q1) 3. 大于上四分位數1.5倍四分位數差的值,或者小于下四分位數1.5倍四分位數差的值,即為溫和異常值 4. 大于上四分位數3倍四分位數差的值,或者小于下四分位數3倍四分位數差的值,即為極端異常值example:import mathdef anomaly_value(data_list):def get_antile(data_list, number):pp = (len(data_list) + 1) * numberpp_integer = int(math.modf(pp)[1])pp_decimal = pp - pp_integerQ = data_list[pp_integer - 1] + (data_list[pp_integer] - data_list[pp_integer - 1]) * pp_decimalreturn Qdata_list = sorted(data_list)Q1 = get_antile(data_list,0.25)Q3 = get_antile(data_list,0.75)IQR = Q3 - Q1return Q3 + 3*IQR, Q1 - 3*IQRdd_list = [1,2,3,4,5,6,3,4,2,3,4,2,2,3,44,10000,5000000]anomaly_value(dd_list)(16.0, -8.5)說明大于16的值為異常值,在list里面有44,10000,5000000等幾個數?
總結
- 上一篇: Leetcode 39 组合总和 (每日
- 下一篇: Leetcode 剑指 Offer 05