<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
"); //-->

博客專(zhuān)欄

EEPW首頁(yè) > 博客 > 獨家 | 在Python中使用廣義極端學(xué)生化偏差(GESD)進(jìn)行異常檢測

獨家 | 在Python中使用廣義極端學(xué)生化偏差(GESD)進(jìn)行異常檢測

發(fā)布人:數據派THU 時(shí)間:2021-06-16 來(lái)源:工程師 發(fā)布文章

作者:Shaleen Swarup

翻譯:歐陽(yáng)錦

校對:王可汗

本文從理論和實(shí)踐角度介紹了使用廣義極端學(xué)生化偏差(GESD)進(jìn)行異常檢測的方法,展示了Python代碼示例和相關(guān)源碼。

關(guān)鍵字:Python 異常值檢測 ESD


異常檢測在生活中起著(zhù)非常重要的作用。通常,異常數據可能與某種問(wèn)題或罕見(jiàn)事件有關(guān),例如 ****欺詐、醫療問(wèn)題、結構缺陷、設備故障等。這種聯(lián)系使得能夠挑選出哪些數據點(diǎn)可以被視為異常值是非常有趣的,因為從商業(yè)角度識別這些事件通常是十分有趣的事情。

此外,許多統計方法對異常值的存在很敏感。例如,平均值和標準差的計算可能會(huì )被單個(gè)嚴重不準確的數據點(diǎn)所影響。檢查異常值應該是任何數據分析的常規部分,并且應該檢查潛在的異常值以查看它們是否可能是錯誤的數據。

什么是異常值檢測

任何發(fā)現數據集異常值的過(guò)程都可以被稱(chēng)為異常檢測;也就是檢測那些不合群的事物。這些異??赡苁钱惓5木W(wǎng)絡(luò )流量,fritz上的一個(gè)傳感器,或者只是分析前識別要清理的數據。

清理的數據

https://www.bmc.com/blogs/data-normalization/

基于不同方案或方法的多種技術(shù)可以用來(lái)識別異常。例如,圖形的方法(箱線(xiàn)圖、散點(diǎn)圖);基于距離的方案(最近鄰算法、聚類(lèi)算法);統計方法(GESD、基于四分位數的技術(shù))等等。每種方案都有其優(yōu)缺點(diǎn),其效果都取決于實(shí)際用例。

在本文中,我們將重點(diǎn)關(guān)注GESD(廣義極端學(xué)生化偏差)并在Python中實(shí)現一個(gè)簡(jiǎn)單的示例以更好地了解它的原理。在開(kāi)始之前,我想說(shuō)明,這篇文章深受我的探索性數據分析教授Edward McFowland和Bhavesh Bhatt在YouTube上的機器學(xué)習和統計教程的講座的啟發(fā)。

機器學(xué)習和統計教程

https://www.youtube.com/channel/UC8ofcOdHNINiPrBA9D59Vaw

什么是廣義極端學(xué)生化偏差(Generalized Extreme Studentized Deviate)

GESD是一種簡(jiǎn)單的統計方法,用于檢測遵循近似正態(tài)分布的單變量數據集中的一個(gè)或多個(gè)異常值。統計方法假設常規數據遵循某種統計模型(或分布),而不遵循模型(或分布)的數據則是異常值。

GESD克服了Grubbs檢驗和Tietjen-Moore檢驗的主要限制:即必須明確確定疑似異常值的數量k。如果沒(méi)有正確指定k,則可能會(huì )擾亂這些測試的結論。而GESD測試只要求確定疑似異常值數量的上限。

給定上限r,GESD測試基本上執行r個(gè)單獨的測試:一個(gè)異常值的測試,兩個(gè)異常值的測試,依此類(lèi)推直到r個(gè)異常值。

GESD測試定義在以下假設上:

H0:數據集中沒(méi)有異常值

Ha:數據集中最多有r個(gè)異常值

GESM的檢驗統計量公式如下:

1.png

GESD的檢驗統計量

這里,x_bar和σ分別表示樣本均值和樣本標準差。

在GESD中,我們刪去使得 | xi - x_bar | 最大化的觀(guān)測值。然后,用n-1個(gè)觀(guān)察值重新計算上述統計量。我們重復這個(gè)過(guò)程,直到r個(gè)觀(guān)測值被移除。我們由此得到r統計量R1, R2 ……, Rr。通過(guò)代碼示例,這個(gè)過(guò)程將變得更加清晰。

對應于r檢驗統計量,由以下公式計算r的臨界值:

2.png

臨界值計算

其中 tp, ν 是具有ν自由度的t分布的100p百分點(diǎn),并且

t分布

https://www.itl.nist.gov/div898/handbook/eda/section3/eda3664.htm

3.png

我們的顯著(zhù)性水平將用α表示。

異常值的數量是通過(guò)找到能滿(mǎn)足Ri > λi的最大的i來(lái)確定的。

Rosner的模擬研究表明,該近似臨界值對于樣本數量n ≥ 25非常準確,對于n ≥ 15也相當準確。

請注意,盡管GESD本質(zhì)上是依序使用Grubbs測試而實(shí)現的,但仍有一些重要區別:

Grubbs測試

https://www.itl.nist.gov/div898/handbook/eda/section3/eda35h1.htm

GESD測試會(huì )根據被測試的異常值的數量對臨界值進(jìn)行適當的調整,而依序使用Grubbs測試的則沒(méi)有這樣的調整。

如果遮蔽效應明顯,Grubbs 測試的依次使用可能會(huì )過(guò)早停止。

現在再鞏固一下理論部分,在Python中實(shí)現GESD以了解它的實(shí)際工作原理吧。

首先,模擬我們的數據。這里我們創(chuàng )建了0到1之間的100個(gè)隨機值。數據的散點(diǎn)圖如下所示。

4.png5.png

現在,我們特意在數據中放入一些異常值進(jìn)行識別。

6.png

有異常值的數據

現在我們將創(chuàng )建單獨的函數來(lái)計算檢驗統計量和臨界值。

計算檢驗統計量的函數如下:

7.png

計算臨界值的函數如下:

8.png

下面這個(gè)函數將所有內容匯總在一起并執行r次以識別異常值的數量。對于每次迭代,我們使用上面的函數來(lái)計算使得|xi - x_bar| 最大化的檢驗統計量,并計算其相應的臨界值,然后從我們的數據中刪除這個(gè)觀(guān)測值以進(jìn)行下一次迭代。

9.png

在我們的數據上以5%的顯著(zhù)性水平和具有7個(gè)異常值上限的情況調用這個(gè)函數會(huì )產(chǎn)生以下結果:

10.png

可以看到一共進(jìn)行了7次檢驗。異常值的數量是通過(guò)找到滿(mǎn)足Ri > λi的最大的i來(lái)確定的。對于此示例,檢驗統計量大于臨界值(在顯著(zhù)性水平為5%時(shí))的最大異常值數為3。因此,我們得出結論,該數據集中有3個(gè)異常值。

代碼鏈接:

https://gist.github.com/shaleenswarup/77c711ac5bade7c8735fd309d94348ef#file-gistfile1-py

這就是Python中使用GESD進(jìn)行異常檢測的實(shí)現。希望本文對您實(shí)現這種在數據中查找異常值的簡(jiǎn)單而有效的方法有所幫助。想查看更多項目,請查看作者的 Github 個(gè)人資料。

作者的 Github 個(gè)人資料

https://github.com/shaleenswarup

引用

1. bmc | Anomaly Detection with Machine Learning: An Introduction by Jonathan Johnson

2. Anomaly detection using PCA from datascience904

https://datascience904.wordpress.com/2019/10/14/anomaly-detection-using-pca/

3. Generalized ESD Test for Outliers from Engineering Statistics

https://www.itl.nist.gov/div898/handbook/eda/section3/eda35h3.htm

原文標題:

Anomaly Detection with GESD (Generalized Extreme Studentized Deviate) in Python

原文鏈接:

https://towardsdatascience.com/anomaly-detection-with-generalized-extreme-studentized-deviate-in-python-f350075900e2

*博客內容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀(guān)點(diǎn),如有侵權請聯(lián)系工作人員刪除。

電路相關(guān)文章:電路分析基礎


pic相關(guān)文章:pic是什么




關(guān)鍵詞: Python

相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>