欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python中尋找數(shù)據(jù)異常值的3種方法

 更新時(shí)間:2022年08月22日 11:34:14   作者:sgzqc???????  
這篇文章主要介紹了Python中尋找數(shù)據(jù)異常值的3種方法,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下

1. 引言

在數(shù)據(jù)處理、機(jī)器學(xué)習(xí)等領(lǐng)域,我們經(jīng)常需要對(duì)各式各樣的數(shù)據(jù)進(jìn)行處理,本文重點(diǎn)介紹三種非常簡單的方法來檢測數(shù)據(jù)集中的異常值。 

2. 舉個(gè)栗子

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

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"])

圖示如下:

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

3. 孤立森林

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

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

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

4. 橢圓模型擬合

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

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

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

5. 局部異常因子算法

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

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上可用的另一種異常檢測算法,我們可以簡單地在這里隨插隨用。同樣地,這里該算法僅將最后第二個(gè)數(shù)據(jù)行預(yù)測為異常值。

6. 挑選異常值檢測方法

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

7. 異常值消除

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

代碼如下:

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

結(jié)果如下:

8. 總結(jié)

本文重點(diǎn)介紹了在Python中使用sklearn機(jī)器學(xué)習(xí)庫來進(jìn)行異常值檢測的三種方法,并給出了相應(yīng)的代碼示例。

到此這篇關(guān)于Python中尋找數(shù)據(jù)異常值的3種方法的文章就介紹到這了,更多相關(guān)Python尋找數(shù)據(jù)異常值內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 淺談Python使用pickle模塊序列化數(shù)據(jù)優(yōu)化代碼的方法

    淺談Python使用pickle模塊序列化數(shù)據(jù)優(yōu)化代碼的方法

    這篇文章主要介紹了淺談Python使用pickle模塊序列化數(shù)據(jù)優(yōu)化代碼的方法,pickle模塊可以對(duì)多種Python對(duì)象進(jìn)行序列化和反序列化,序列化稱為pickling,反序列化稱為unpickling,需要的朋友可以參考下
    2023-07-07
  • python向已存在的excel中新增表,不覆蓋原數(shù)據(jù)的實(shí)例

    python向已存在的excel中新增表,不覆蓋原數(shù)據(jù)的實(shí)例

    下面小編就為大家分享一篇python向已存在的excel中新增表,不覆蓋原數(shù)據(jù)的實(shí)例,具有很好超參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • Python?Textual文本用戶界面庫使用原理探索

    Python?Textual文本用戶界面庫使用原理探索

    這篇文章主要為大家介紹了Python?Textual文本用戶界面框架使用原理探索,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-02-02
  • python函數(shù)裝飾器構(gòu)造和參數(shù)傳遞

    python函數(shù)裝飾器構(gòu)造和參數(shù)傳遞

    這篇文章主要介紹了python函數(shù)裝飾器構(gòu)造和參數(shù)傳遞,下面通過一個(gè)小案例來簡單的理解什么是裝飾器,需要的小伙伴可以參考一下
    2022-03-03
  • python爬蟲如何解決圖片驗(yàn)證碼

    python爬蟲如何解決圖片驗(yàn)證碼

    這篇文章主要介紹了python爬蟲如何解決圖片驗(yàn)證碼,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2021-02-02
  • python 通過麥克風(fēng)錄音 生成wav文件的方法

    python 通過麥克風(fēng)錄音 生成wav文件的方法

    今天小編就為大家分享一篇python 通過麥克風(fēng)錄音 生成wav文件的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • python里反向傳播算法詳解

    python里反向傳播算法詳解

    在本篇文章了小編給大家整理的是一篇關(guān)于python里反向傳播算法詳解內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。
    2020-11-11
  • Python安裝Flask環(huán)境及簡單應(yīng)用示例

    Python安裝Flask環(huán)境及簡單應(yīng)用示例

    這篇文章主要介紹了Python安裝Flask環(huán)境及簡單應(yīng)用,結(jié)合實(shí)例形式分析了Flask框架的安裝、以及路由、重定向、cookie等相關(guān)操作實(shí)現(xiàn)方法,需要的朋友可以參考下
    2019-05-05
  • Python棧類實(shí)例分析

    Python棧類實(shí)例分析

    這篇文章主要介紹了Python棧類,實(shí)例分析了Python實(shí)現(xiàn)棧的入棧、出棧、移除、判定為空的相關(guān)技巧,需要的朋友可以參考下
    2015-06-06
  • 為什么稱python為膠水語言

    為什么稱python為膠水語言

    在本篇文章里小編給大家分享的是關(guān)于python為何稱為膠水語言的相關(guān)知識(shí)點(diǎn),需要的朋友們可以學(xué)習(xí)參考下。
    2020-06-06

最新評(píng)論