CMU趙越:異常檢測的算法、應(yīng)用和實踐


作者信息
B站視頻講解:https://www.bilibili.com/video/BV1tV411b7Ck

內(nèi)容概括
1.什么是異常檢測?
2.異常檢測有什么具體應(yīng)用?
3.異常檢測的工具概覽?如何用10行Python代碼進行異常檢測?
4.異常檢測算法概覽與主流模型介紹
5.面對各種各樣的模型,如何選擇和調(diào)參?
6.未來的異常檢測研究方向
7.異常檢測相關(guān)的資源匯總(書籍、講座、代碼、數(shù)據(jù)等)
異常檢測
什么是異常值、離群點(anomaly)?
異常一般指的是與標準值(或期待值)有偏離的樣本,也就是說跟絕大部分數(shù)據(jù)“長的不一樣”。

異常檢測的一些特點:
1.異常不一定代表是“壞”的事情,但往往是“有價值”的事情,我們對異常的成因感興趣
2.異常檢測往往是在無監(jiān)督的模式下完成的—歷史數(shù)據(jù)中沒有標簽,我們不知道哪些數(shù)據(jù)是異常。因此無法用監(jiān)督學(xué)習去檢測。
異常檢測的應(yīng)用:
1.金融行業(yè)的反欺詐、信用卡詐騙檢測:把欺詐或者金融風險當做異常
2.罕見病檢測:把罕見病當做異常,比如檢測早發(fā)的阿茲海默癥
3.入侵檢測:把網(wǎng)絡(luò)流量中的入侵當做異常
4.機器故障檢測:實時監(jiān)測發(fā)現(xiàn)或預(yù)測機械故障
5.圖結(jié)構(gòu)、群體檢測:比如檢測疫情的爆發(fā)點等
異常檢測的應(yīng)用
IntelControlFlag:
“基于10億條包含各種錯誤的未標記生產(chǎn)質(zhì)量代碼的機器學(xué)習培訓(xùn),ControlFlag得以通過“異常檢測”技術(shù),對傳統(tǒng)編程模式展開篩查。無論使用的是哪種編程語言,它都能夠有效地識別代碼中可能導(dǎo)致任何錯誤的潛在異常。”
AmazonAWSCloudWatch:
“今天,我們將通過一項新功能增強CloudWatch,它將幫助您更有效地使用CloudWatch警報。…我們的用戶可以構(gòu)建自定義的控制面板,設(shè)置警報并依靠CloudWatch來提醒自己影響其應(yīng)用程序性能或可靠性的問題。”
Google:
“GoogleAnalytics(分析)會選擇一段時期的歷史數(shù)據(jù)來訓(xùn)練其預(yù)測模型。要檢測每天的異常情況,訓(xùn)練期為90天。要檢測每周的異常情況,訓(xùn)練期為32周。”
異常檢測的挑戰(zhàn)
1.大部分情況下是無監(jiān)督學(xué)習,沒有標簽信息可以使用
2.數(shù)據(jù)是極端不平衡的(異常點僅占總體數(shù)據(jù)的一小部分),建模難度大
3.檢測方法往往涉及到密度估計,需要進行大量的距離/相似度計算,運算開銷大
4.在實際場景中往往需要實時檢測,這比離線檢測的技術(shù)難度更高
5.在實際場景中,我們常常需要同時處理很多案例,運算開銷大
6.解釋性比較差,我們很難給出異常檢測的原因,尤其是在高維數(shù)據(jù)上。但業(yè)務(wù)方需要了解異常成因
7.在實際場景中,我們往往有一些檢測的歷史規(guī)則,如何與學(xué)習模型進行整合
異常檢測工具
Python:
1.PyOD:超過30種算法,從經(jīng)典模型到深度學(xué)習模型一應(yīng)俱全,和sklearn的用法一致?
2.Scikit-Learn:包含了4種常見的算法,簡單易用
3.TODS:與PyOD類似,包含多種時間序列上的異常檢測算法
Java:
1.ELKI:EnvironmentforDevelopingKDD-ApplicationsSupportedbyIndex-Structures?
2.RapidMiner異常檢測擴展
R:
1.outlierspackage
2.AnomalyDetection
用10行Python代實行異常檢測:

詳細介紹:https://zhuanlan.zhihu.com/p/58313521
異常檢測算法
異常檢測算法可以大致被分為:
1.線性模型(LinearModel):PCA
2.基于相似度的度量的算法(Proximity-basedModel):kNN,LOF,HBOS
3.基于概率的算法(ProbabilisticModel):COPOD
4.集成檢測算法(EnsembleModel):孤立森林(IsolationForest),XGBOD
5.神經(jīng)網(wǎng)絡(luò)算法(NeuralNetworks):自編碼器(AutoEncoder)
評估方法也不能簡單用準確度(accuracy),因為數(shù)據(jù)的極端不平衡
1.ROC-AUC曲線
2.Precision@Rankk:topk的精準
3.AveragePrecision:平均精準度
主流模型介紹:











如何選擇和合并模型





異常檢測實踐中的技巧

異常檢測落地中的考量
1.不要嘗試一步到位用機器學(xué)習模型來代替?zhèn)鹘y(tǒng)模型
2.在理想情況下,應(yīng)該嘗試合并機器學(xué)習模型和基于規(guī)則的模型
3.可以嘗試用已有的規(guī)則模型去解釋異常檢測模型
異常檢測研究方向


