




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
數(shù)據(jù)分析一一異常數(shù)據(jù)識別/>
異常數(shù)據(jù)識別在數(shù)據(jù)分析和數(shù)據(jù)挖掘中,是經(jīng)常會遇到的問題;本文會介紹不
同場景下,異常數(shù)據(jù)識別的方法有哪些,以及他們之間的區(qū)別。
一、使用場景
當(dāng)前異常數(shù)據(jù)識別的使用場景主要有以下2方面:
?數(shù)據(jù)分析和數(shù)據(jù)挖掘在正式分析前的數(shù)據(jù)處理,識別異常數(shù)據(jù)后,刪除
或者修正異常數(shù)據(jù),避免異常數(shù)據(jù)影響分析結(jié)論;
?風(fēng)控業(yè)務(wù),通過數(shù)據(jù)識別異常用戶、異常訪問、異常訂單、異常支付
等,避免黑產(chǎn)團隊入侵。
二、單變量數(shù)據(jù)異常識別
1.簡單統(tǒng)計量分析
對變量做描述性統(tǒng)計,然后再基于業(yè)務(wù)考慮哪些數(shù)據(jù)是不合理的。
常用的統(tǒng)計量是最大值和最小值,判斷這個變量是否超過合理的范圍;例如:
用戶的年齡為150歲,這就是異常的。
2.三倍標(biāo)準差
定義:如果單變量數(shù)據(jù)服從正態(tài)分布,異常值被定義為與平均值偏差超過3倍
標(biāo)準差的值。
原因:是因為在正態(tài)分布的假設(shè)下,偏離均值3倍標(biāo)準差出現(xiàn)的概率小于
0.003,是一個小概率事件。
在實際分析中,我們也不一定要拘泥于3倍標(biāo)準差,可以根據(jù)實際嚴格程度定
義,如偏離均值的4倍標(biāo)準差。
3.BOX-COX轉(zhuǎn)化+3倍標(biāo)準差
如果原始數(shù)據(jù)的分布是有偏的,不滿足正態(tài)分布時,可通過B0X-C0X轉(zhuǎn)化,在
一定程度上修正分布的偏態(tài);轉(zhuǎn)換無需先驗信息,但需要搜尋最優(yōu)的參數(shù)人。
Box-Cox變換的一般形式為:
y(入)=<
、bay,六一當(dāng)晚部水魚
?式中y(lambda)為經(jīng)Box-Cox變換后得到的新變量,y為原始連續(xù)因變
量,lambda為變換參數(shù)。
?以上變換要求原始變量y取值為正,若取值為負時,可先對所有原始數(shù)
據(jù)同加一個常數(shù)a,使其(y+a)為正值,然后再進行以上的變換。
?常見的lambda取值為0,0.5,-1;在lambda=0時該變換為對數(shù)變
換,T時為倒數(shù)變換,而0.5時為平方根變換。
Box-Cox的python實現(xiàn)如下,可直接通過函數(shù)boxcox找到最優(yōu)的lambda和轉(zhuǎn)
化后的值:
box?cox轉(zhuǎn)換例子
In(21):x=np.random?chisquare(2,10000)
y_box,lambda-=boxcox(x?0.0000001)
In(28]:pit?figure(figsizea(8,5),dpi-80)
pit?subplot(1,2,1)
sns.distplot(x,bins=20)
pit.title("before",fontsize■18)
pit.subplot(1r2,2)
sns.distplot(y_box.bins=20)
MH
pit.title(aftertfontsize■18)
plt.show()
beforeafter
4.箱線圖
箱形圖(Boxplot),又稱為盒須圖、盒式圖、盒狀圖或箱線圖,是一種用作
顯示一組數(shù)據(jù)分散情況的統(tǒng)計圖。
它能顯示出一組數(shù)據(jù)的最大值、最小值、中位數(shù)及上下四分位數(shù);
箱線圖提供了一種數(shù)據(jù)識別的標(biāo)準:異常值通常被定義為小于下邊緣或者大于
上邊緣的數(shù)據(jù)為異常值。
如下圖所示:
?上四分位數(shù):1/4的樣本值取值比他大
?下四分位數(shù):1/4的樣本值取值比他小
?上邊緣=上四分位數(shù)+1.5*(上四分位數(shù)一下四分位數(shù))
?下邊緣=下四分位數(shù)T.5*(上四分位數(shù)-下四分位數(shù))
箱線圖識別異常數(shù)據(jù)的優(yōu)勢:
?箱線圖根據(jù)數(shù)據(jù)的真實分布繪制,他對數(shù)據(jù)不做任何限制性的要求,比
如要服從正態(tài)分布等;
?箱線圖異常數(shù)據(jù)識別依賴于上四分數(shù)和下四分位數(shù),因此異常值極其偏
差不會影響異常值識別的上下邊緣,這一點是優(yōu)于3倍標(biāo)準差方法的。
三、時間序列數(shù)據(jù)異常識別
日常工作中還有一種場景,是需要對時間序列數(shù)據(jù)進行監(jiān)控,如:訂單量、廣
告訪問量、廣告點擊量;我們需要從時間維度識別出是否異常刷單、刷廣告點
擊的問題;像廣告投放場景下,如果發(fā)現(xiàn)渠道刷量,會及時停止廣告投放,減
少損失。
對于時間序列數(shù)據(jù)異常識別,根據(jù)數(shù)據(jù)不同的特點,識別方法不同。
1.設(shè)置恒定閾值
如果時間序列呈現(xiàn)平穩(wěn)分布狀態(tài),即時間序列數(shù)據(jù)圍繞中心值小范圍內(nèi)波動;
我們可以定義上下界的恒定閾值,如果超過上下閾值則定義為異常。
2.設(shè)定動態(tài)閾值-移動平均法
所謂動態(tài)閾值是指,當(dāng)前時間的異常閾值是由過去n段時間的時序數(shù)據(jù)計算決
定的;通常對于無周期,比較平穩(wěn)的時間序列,設(shè)定動態(tài)閾值的方法是移動平
均法。
所謂移動平均法:就是用過去n個時間點的時序數(shù)據(jù)的平均值作為下一個時間
點的時序數(shù)據(jù)的預(yù)測。
Ft=(4-i+At2+4.3+…+4
式中,見-對下一期的預(yù)測值;
n--移動平均的時期個數(shù);
4?_i-前期實際值;
、石須9
At2,幺.3和分別表示前兩期、前三期直至前n期的實際值。
異常數(shù)據(jù)識別即是:確定固定移動窗口n,以過去n個窗口的指標(biāo)平均值作為
下一個窗口的預(yù)測值;以過去n個窗口的指標(biāo)的平均值加減3倍方差作為監(jiān)控
的上下界。
使用范圍:數(shù)據(jù)無周期性,數(shù)據(jù)比較平穩(wěn)。
3.STL數(shù)據(jù)拆解法
如果時間序列數(shù)據(jù)是周期性數(shù)據(jù),可使用STL算法將時序數(shù)據(jù)拆解成趨勢項、
周期項和余項,即每個時刻的時序數(shù)據(jù)等于當(dāng)前時序趨勢項、周期項和余項的
和(或者乘)。
Yv=Tv+Sv+Rvv=
?趨勢項(T_v):涵蓋了這個時序數(shù)據(jù)的趨勢變化;
?周期項(S_v):涵蓋了時序數(shù)據(jù)的周期變化;
?余項(R_J:表示時序數(shù)據(jù)除去趨勢項和周期項后的日常波動變化。
一般使用STL需要確定2個點:
?確定數(shù)據(jù)周期,外賣業(yè)務(wù)的一個常規(guī)周期為7天,在周一至周五又可以
將數(shù)據(jù)周期縮短為1天。
?拆分規(guī)則,是選擇加法方式還是乘法方式。
加法方式:原始數(shù)據(jù)=平均季節(jié)數(shù)據(jù)+趨勢數(shù)據(jù)+余項這種方式,隨著時間
的推移季節(jié)數(shù)據(jù)不會有太大的變化,在以七天為一大周期的業(yè)務(wù)數(shù)據(jù)更適合這
樣的拆分方式。
乘法方式:原始數(shù)據(jù)=平均季節(jié)數(shù)據(jù)*趨勢數(shù)據(jù)*余項。
這種方式,直觀感受是隨著時間的推移季節(jié)數(shù)據(jù)波動會非常明顯。
至于如何要判斷某事的時序數(shù)據(jù)是否異常,是根據(jù)STL分解后的余項來判斷;
一般情況下,余項部分的時序數(shù)據(jù)是平穩(wěn)分布狀態(tài),我們可對余項設(shè)置恒定閾
值或者動態(tài)閾值,如果某個時間節(jié)點的分解余項超過設(shè)定閾值,則是異常數(shù)
據(jù)。
python可以用seasonal_decompose可以將時間序列數(shù)據(jù)拆解成三部分,具體
函數(shù)代碼如下:
importstatsmodels.apiassm
fromstatsmodels.tsa.seasonalimportseasonal_decompose
#MultiplicativeDecomposition
result_mul=seasonal_decompose(datal,model='
multiplicative,,extrapolate_trend=,freq,)
Actual_Values=result_mul.seasonal*result_mul.trend*
result_mul.resid
#AdditiveDecomposition
result_add=seasonal_decompose(datal,model='additive’,
extrapolate_trend=Jfreq,)
Actual_Values=result_mul.seasonal+result_mul.trend+
result_mul.resid
四、多變量數(shù)據(jù)異常識別
所謂多變量數(shù)據(jù)異常識別是指:不只從一個特征去判讀數(shù)據(jù)異常,而是在多個
特征下來判斷其是否異常。多變量異常數(shù)據(jù)識別的方法很多,比如聚類模型、
孤立森林模型、one-classsvm模型等。下面主要介紹簡單高效,更容易使用
的孤立森林模型。
1.孤立森林
孤立森林iForest(IsolationForest)是一個可擴散到多變
量的快速異常檢測方法;iForest適用于連續(xù)數(shù)據(jù)的異常檢測,
將異常定義為“容易被孤立的離群點一一可以理解為分布稀疏且
離密度高的群體較遠的點;用統(tǒng)計學(xué)來解釋,在數(shù)據(jù)空間里面,
分布稀疏的區(qū)域表示數(shù)據(jù)發(fā)生在此區(qū)域的概率很低,因而可以認
為落在這些區(qū)域里的數(shù)據(jù)是異常的。
iForest屬于Non-parametric和unsupervised的方法,即不用
定義數(shù)學(xué)模型也不需要有標(biāo)記的訓(xùn)練。
算法邏輯介紹:
假設(shè)現(xiàn)在有一組一維數(shù)據(jù)(如下圖所示),我們要對這組數(shù)據(jù)進行隨機切分,
希望可以把點A和點B單獨切分出來。
具體的,我們先在最大值和最小值之間隨機選擇一個值X,然后按照<x
和>=x可以把數(shù)據(jù)分成左右兩組;然后,在這兩組數(shù)據(jù)中分別重復(fù)這個步驟,
直到數(shù)據(jù)不可再分。
顯然,點B跟其他數(shù)據(jù)比較疏離,可能用很少的次數(shù)就可以把它切分出來;點
A跟其他數(shù)據(jù)點聚在一起,可能需要更多的次數(shù)才能把它切分出來。
須先即永恒
我們把數(shù)據(jù)從一維擴展到兩維,同樣的,我們沿著兩個坐標(biāo)軸進行隨機切分,
嘗試把下圖中的點A,和點B'分別切分出來;我們先隨機選擇一個特征維度,
在這個特征的最大值和最小值之間隨機選擇一個值,按照跟特征值的大小關(guān)系
將數(shù)據(jù)進行左右切分。
然后,在左右兩組數(shù)據(jù)中,我們重復(fù)上述步驟,再隨機的按某個特征維度的取
值把數(shù)據(jù)進行細分,直到無法細分,即:只剩下一個數(shù)據(jù)點,或者剩下的數(shù)據(jù)
全部相同。
跟先前的例子類似,直觀上,點B'跟其他數(shù)據(jù)點比較疏離,可能只需要很少
的幾次操作就可以將它細分出來;點A'需要的切分次數(shù)可能會更多一些。
上面其實就是IsolationForest(IF)的核心概念。而具體的IF采用二叉樹
去對數(shù)據(jù)進行切分,數(shù)據(jù)點在二叉樹中所處的深度反應(yīng)了該條數(shù)據(jù)的“疏離”
程度。
整個算法大致可以分為兩步:
?訓(xùn)練:抽取多個樣本,構(gòu)建多棵二叉樹(IsolationTree,即
iTree);
?預(yù)測:綜合多棵二叉樹的結(jié)果,計算每個數(shù)據(jù)點的異常分值。
訓(xùn)練:構(gòu)建一棵iTree時,先從全量數(shù)據(jù)中抽取一批樣本,然后隨機選擇一個
特征作為起始節(jié)點,并在該特征的最大值和最小值之間隨機選擇一個值;將樣
本中小于該取值的數(shù)據(jù)劃到左分支,大于等于該取值的劃到右分支。
然后,在左右兩個分支數(shù)據(jù)中,重復(fù)上述步驟,直到滿足如下條件:
?數(shù)據(jù)不可再分,即:只包含一條數(shù)據(jù),或者全部數(shù)據(jù)相同。
?二叉樹達到限定的最大深度。
預(yù)測:根據(jù)估算它在每棵iTree中的路徑長度(也可以叫深度),計算數(shù)據(jù)x
的異常分值,通常這個異常分值越小越異常。
IsolationForest算法主要有兩個參數(shù):一個是二叉樹的個數(shù);另一個是訓(xùn)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 新目標(biāo)引領(lǐng)新未來
- 《測控一體化閘門安裝及驗收規(guī)程》(征求意見稿)編制說明
- 2025年教育培訓(xùn)行業(yè)品牌塑造與市場推廣策略研究報告:品牌區(qū)塊鏈營銷策略
- 2025年運動醫(yī)學(xué)醫(yī)療市場增長動力報告:技術(shù)創(chuàng)新趨勢下的市場前景
- 醫(yī)藥流通行業(yè)供應(yīng)鏈優(yōu)化與成本控制2025年競爭格局分析報告
- 元宇宙社交平臺用戶行為洞察報告:2025年用戶體驗優(yōu)化與瓶頸解析
- 探索廢棄礦井資源再利用與綠色發(fā)展協(xié)同推進模式
- 2025年綠色金融發(fā)展趨勢與投資策略研究報告
- 2025年互聯(lián)網(wǎng)醫(yī)療平臺在線問診醫(yī)療服務(wù)質(zhì)量監(jiān)控報告
- 2025年潮流玩具市場分析報告:收藏價值與文化傳承深度挖掘
- 幼兒園安全教育《防溺水》課件
- 《走進民間音樂》資料
- 螺桿冷水機組使用說明書
- 2021年北京首通智城科技創(chuàng)新有限責(zé)任公司招聘筆試試題及答案解析
- 實習(xí)證明模板10篇
- 國開期末考試《建筑制圖基礎(chǔ)》機考試題及答案(第A-1套)
- 越南語基礎(chǔ)實踐教程1第二版完整版ppt全套教學(xué)教程最全電子課件整本書ppt
- 酒店治安保衛(wèi)管理制度
- GB∕T 18885-2020 生態(tài)紡織品技術(shù)要求
- Q∕SY 06521-2016 煉油化工建設(shè)項目EPC總承包管理規(guī)范
- 課件心肺復(fù)蘇(CPR)
評論
0/150
提交評論