異常檢測(cè)算法應(yīng)用與實(shí)踐_CMU趙越

作者信息
知乎微調(diào):https://www.zhihu.com/people/breaknever

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

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

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











如何選擇和合并模型





異常檢測(cè)實(shí)踐中的技巧

異常檢測(cè)落地中的考量
1.不要嘗試一步到位用機(jī)器學(xué)習(xí)模型來代替?zhèn)鹘y(tǒng)模型
2.在理想情況下,應(yīng)該嘗試合并機(jī)器學(xué)習(xí)模型和基于規(guī)則的模型
3.可以嘗試用已有的規(guī)則模型去解釋異常檢測(cè)模型
異常檢測(cè)研究方向
- 推薦閱讀-
深度學(xué)習(xí)系列
1、一文概覽神經(jīng)網(wǎng)絡(luò)模型 2、一文搞定深度學(xué)習(xí)建模預(yù)測(cè)全流程(Python) 3、一文淺談深度學(xué)習(xí)泛化能力 4、一文弄懂CNN及圖像識(shí)別(Python)
1、一文全覽機(jī)器學(xué)習(xí)建模流程(Python代碼) 2、一文解決樣本不均衡(全) 3、一文速覽機(jī)器學(xué)習(xí)的類別(Python代碼) 4、Python特征選擇(全)
后臺(tái)回復(fù)【課程】,即可免費(fèi)領(lǐng)取Python|機(jī)器學(xué)習(xí)|AI 精品課程大全
機(jī)??器學(xué)習(xí)算法交流群,邀您加入?。?!入群可以:提問求助、認(rèn)識(shí)行業(yè)內(nèi)同學(xué)、交流進(jìn)步、共享資源...
掃描??下方二維碼,備注“加群”

