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

PyOD進(jìn)行異常值檢測使用實(shí)例

 更新時(shí)間:2024年02月16日 12:30:24   作者:Deephub  
異常值檢測各個(gè)領(lǐng)域的關(guān)鍵任務(wù)之一,PyOD是Python Outlier Detection的縮寫,可以簡化多變量數(shù)據(jù)集中識別異常值的過程,在本文中,我們將介紹PyOD包,并通過實(shí)際給出詳細(xì)的代碼示例

PyOD簡介

PyOD為異常值檢測提供了廣泛的算法集合,適用于有監(jiān)督和無監(jiān)督的場景。無論處理的是帶標(biāo)簽的數(shù)據(jù)還是未帶標(biāo)簽的數(shù)據(jù),PyOD都提供了一系列技術(shù)來滿足特定需求。PyOD的突出特性之一是其用戶友好的API,使新手和有經(jīng)驗(yàn)的從業(yè)者都可以輕松的訪問它。

示例1:kNN

我們從一個(gè)簡單的例子開始,利用k近鄰(kNN)算法進(jìn)行離群值檢測。

首先從PyOD導(dǎo)入必要的模塊

 from pyod.models.knn import KNN 
 from pyod.utils.data import generate_data
 from pyod.utils.data import evaluate_print

我們生成具有預(yù)定義離群率的合成數(shù)據(jù)來模擬異常值。

contamination = 0.1  # percentage of outliers
 n_train = 200  # number of training points
 n_test = 100  # number of testing points
 X_train, X_test, y_train, y_test = generate_data(
     n_train=n_train, n_test=n_test, contamination=contamination)

初始化kNN檢測器,將其與訓(xùn)練數(shù)據(jù)擬合,并獲得離群值預(yù)測。

clf_name = 'KNN'
 clf = KNN()
 clf.fit(X_train)

使用ROC和Precision @ Rank n指標(biāo)評估訓(xùn)練模型在訓(xùn)練和測試數(shù)據(jù)集上的性能。

print("\nOn Training Data:")
 evaluate_print(clf_name, y_train, clf.decision_scores_)
 print("\nOn Test Data:")
 evaluate_print(clf_name, y_test, clf.decision_function(X_test))

最后可以使用內(nèi)置的可視化功能可視化離群檢測結(jié)果。

from pyod.utils.data import visualize
 
 visualize(clf_name, X_train, y_train, X_test, y_test, clf.labels_,
           clf.predict(X_test), show_figure=True, save_figure=False)

這是一個(gè)簡單的用法示例

示例2 模型集成

異常值檢測有時(shí)會受到模型不穩(wěn)定性的影響,特別是在無監(jiān)督的情況下。所以PyOD提供了模型組合技術(shù)來提高魯棒性。

import numpy as np
 from sklearn.model_selection import train_test_split
 from scipy.io import loadmat
 
 from pyod.models.knn import KNN
 from pyod.models.combination import aom, moa, average, maximization, median
 from pyod.utils.utility import standardizer
 from pyod.utils.data import generate_data
 from pyod.utils.data import evaluate_print
 
 X, y = generate_data(train_only=True)  # load data
 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.4)
 
 # standardizing data for processing
 X_train_norm, X_test_norm = standardizer(X_train, X_test)
 
 n_clf = 20  # number of base detectors
 
 # Initialize 20 base detectors for combination
 k_list = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120, 130, 140,
             150, 160, 170, 180, 190, 200]
 
 train_scores = np.zeros([X_train.shape[0], n_clf])
 test_scores = np.zeros([X_test.shape[0], n_clf])
 
 print('Combining {n_clf} kNN detectors'.format(n_clf=n_clf))
 
 for i in range(n_clf):
     k = k_list[i]
 
     clf = KNN(n_neighbors=k, method='largest')
     clf.fit(X_train_norm)
 
     train_scores[:, i] = clf.decision_scores_
     test_scores[:, i] = clf.decision_function(X_test_norm)
 
 # Decision scores have to be normalized before combination
 train_scores_norm, test_scores_norm = standardizer(train_scores,
                                                     test_scores)
 # Combination by average
 y_by_average = average(test_scores_norm)
 evaluate_print('Combination by Average', y_test, y_by_average)
 
 # Combination by max
 y_by_maximization = maximization(test_scores_norm)
 evaluate_print('Combination by Maximization', y_test, y_by_maximization)
 
 # Combination by median
 y_by_median = median(test_scores_norm)
 evaluate_print('Combination by Median', y_test, y_by_median)
 
 # Combination by aom
 y_by_aom = aom(test_scores_norm, n_buckets=5)
 evaluate_print('Combination by AOM', y_test, y_by_aom)
 
 # Combination by moa
 y_by_moa = moa(test_scores_norm, n_buckets=5)
 evaluate_print('Combination by MOA', y_test, y_by_moa)

如果上面代碼提示錯(cuò)誤,需要安裝combo包

pip install combo

總結(jié)

可以看到,PyOD進(jìn)行離群值檢測是非常方便的,從基本的kNN離群值檢測到模型組合,PyOD都提供了一個(gè)全面的整合,這使得我們可以輕松高效地處理異常值檢測任務(wù)。

最后pyod的文檔和官網(wǎng)

https://avoid.overfit.cn/post/9df020be7be84d759aeef2dfa8e4d8cd

以上就是PyOD進(jìn)行異常值檢測使用實(shí)例的詳細(xì)內(nèi)容,更多關(guān)于PyOD異常值檢測的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Flask解決跨域的問題示例代碼

    Flask解決跨域的問題示例代碼

    這篇文章主要介紹了Flask解決跨域的問題示例代碼,分享了相關(guān)代碼示例,小編覺得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-02-02
  • Python復(fù)制Excel表格中指定數(shù)據(jù)若干次的方法

    Python復(fù)制Excel表格中指定數(shù)據(jù)若干次的方法

    本文介紹基于Python語言,讀取Excel表格文件數(shù)據(jù),并基于其中某一列數(shù)據(jù)的值,將這一數(shù)據(jù)處于指定范圍的那一行加以復(fù)制,并將所得結(jié)果保存為新的Excel表格文件的方法,需要的朋友可以參考下
    2024-02-02
  • python 下劃線的多種應(yīng)用場景總結(jié)

    python 下劃線的多種應(yīng)用場景總結(jié)

    Python有很多地方使用下劃線,在不同場合下,有不同含義。本文總結(jié)Python語言編程中常用下劃線的地方,力圖一次搞懂下劃線的常見用法,感興趣的朋友快來一起看看吧
    2021-05-05
  • Python識別設(shè)備和操作系統(tǒng)神器device_detector使用探究

    Python識別設(shè)備和操作系統(tǒng)神器device_detector使用探究

    這篇文章主要介紹了Python識別設(shè)備和操作系統(tǒng)神器device_detector庫使用探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • Python任務(wù)調(diào)度利器之APScheduler詳解

    Python任務(wù)調(diào)度利器之APScheduler詳解

    所謂的任務(wù)調(diào)度是指安排任務(wù)的執(zhí)行計(jì)劃,即何時(shí)執(zhí)行,怎么執(zhí)行等。這篇文章主要介紹了Python任務(wù)調(diào)度利器之APScheduler詳解,需要的朋友可以參考下
    2020-04-04
  • Pygame游戲開發(fā)實(shí)例講解之圖形繪制與鍵鼠事件

    Pygame游戲開發(fā)實(shí)例講解之圖形繪制與鍵鼠事件

    這篇文章主要介紹了Pygame游戲開發(fā)中常用的圖形繪制與鍵鼠事件實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2022-11-11
  • Python分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)示例代碼

    Python分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)示例代碼

    在Python中,分支結(jié)構(gòu)通過if、elif和else關(guān)鍵字來實(shí)現(xiàn)條件判斷,在使用if語句時(shí),程序會根據(jù)條件表達(dá)式的真假執(zhí)行相應(yīng)的代碼塊,這篇文章主要介紹了Python分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu),需要的朋友可以參考下
    2024-03-03
  • 一篇文章帶你搞懂Python類的相關(guān)知識

    一篇文章帶你搞懂Python類的相關(guān)知識

    今天我們要說的是面向?qū)ο蟮暮诵?----類,類能幫我們把復(fù)雜的事情變得有條理,有順序,希望大家通過學(xué)習(xí)類能改善自己的編碼風(fēng)格,使代碼變得更為好看,更加通俗易懂,需要的朋友可以參考下
    2021-05-05
  • python通用數(shù)據(jù)庫操作工具 pydbclib的使用簡介

    python通用數(shù)據(jù)庫操作工具 pydbclib的使用簡介

    這篇文章主要介紹了python通用數(shù)據(jù)庫操作工具 pydbclib的使用簡介,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2020-12-12
  • python如何讓類支持比較運(yùn)算

    python如何讓類支持比較運(yùn)算

    這篇文章主要為大家詳細(xì)介紹了python如何讓類支持比較運(yùn)算,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-03-03

最新評論