中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python中尋找數據異常值的方法有哪些

發布時間:2022-08-23 17:30:21 來源:億速云 閱讀:181 作者:iii 欄目:開發技術

本篇內容介紹了“Python中尋找數據異常值的方法有哪些”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

1. 引言

在數據處理、機器學習等領域,我們經常需要對各式各樣的數據進行處理,本文重點介紹三種非常簡單的方法來檢測數據集中的異常值。 

2. 舉個栗子

為了方便介紹,這里給出我們的測試數據集,如下:

data = pd.DataFrame([
[87, 82, 85],
[81, 89, 75],
[86, 87, 69],
[91, 79, 86],
[88, 89, 82],
[0, 0, 0], # this guy missed the exam
[100, 100, 100],
], columns=["math", "science", "english"])

圖示如下:

Python中尋找數據異常值的方法有哪些

假設這里我們有一堆學生的三門科目的考試成績——英語、數學和科學。這些學生通常表現很好,但其中一人錯過了所有考試,三門科目都得了0分。在我們的分析中包括這個家伙可能會把事情搞砸,所以我們需要將他視為異常。

3. 孤立森林

使用孤立森林算法來求解上述異常值分析非常簡單,代碼如下:

from sklearn.ensemble import IsolationForest
predictions = IsolationForest().fit(data).predict(data)
# predictions = array([ 1, 1, 1, 1, 1, -1, -1])

這里預測值針對每一行進行預測,預測結果為1或者-1;其中1表示該行不是異常值,而-1表示該行是異常值。在上述例子中,我們的孤立森林算法將數據中的最后2行都預測為異常值。

4. 橢圓模型擬合

使用孤橢圓模型擬合算法來求解上述異常值同樣非常方便,代碼如下:

from sklearn.covariance import EllipticEnvelope
predictions = EllipticEnvelope().fit(data).predict(data)
# predictions = array([ 1, 1, 1, 1, 1, -1, 1])

在上述代碼中,我們使用了另外一種異常值檢測算法來代替孤立森林算法,但是代碼保持不變。相似地,在預測值中,1表示非異常值,-1表示異常值。在上述情況下,我們的橢圓模型擬合算法只將倒數第二個學生作為異常值,即所有成績都為零的考生。

5. 局部異常因子算法

類似地,我們可以非常方便地使用局部異常因子算法來對上述數據進行分析,樣例代碼如下:

from sklearn.neighbors import LocalOutlierFactor
predictions = LocalOutlierFactor(n_neighbors=5, novelty=True).fit(data).predict(data)
# array([ 1, 1, 1, 1, 1, -1, 1])

局部異常因子算法是sklearn上可用的另一種異常檢測算法,我們可以簡單地在這里隨插隨用。同樣地,這里該算法僅將最后第二個數據行預測為異常值。

6. 挑選異常值檢測方法

那么,我們如何決定哪種異常檢測算法更好呢? 簡而言之,沒有“最佳”的異常值檢測算法——我們可以將它們視為做相同事情的不同方式(并獲得略有不同的結果)

7. 異常值消除

在我們從上述三種異常檢測算法中的任何一種獲得異常預測后,我們現在可以執行異常值的刪除。 這里我們只需保留異常預測為1的所有數據行,

代碼如下:

# predictions = array([ 1, 1, 1, 1, 1, -1, 1])
data2 = data[predictions==1]

結果如下:

Python中尋找數據異常值的方法有哪些

“Python中尋找數據異常值的方法有哪些”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

长治市| 玛多县| 思茅市| 镇平县| 洛川县| 介休市| 鸡东县| 霍林郭勒市| 土默特右旗| 萝北县| 银川市| 芦山县| 大名县| 建阳市| 蓝田县| 鹿泉市| 乌拉特中旗| 阳江市| 安塞县| 贵定县| 宜良县| 雷山县| 德保县| 修文县| 东兰县| 亳州市| 芮城县| 辽宁省| 黄龙县| 安阳县| 长宁区| 千阳县| 宜阳县| 朔州市| 上思县| 桦川县| 通海县| 手游| 贵溪市| 大连市| 色达县|