最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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)

如果上面代碼提示錯誤,需要安裝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)文章

  • Python 爬蟲批量爬取網(wǎng)頁圖片保存到本地的實(shí)現(xiàn)代碼

    Python 爬蟲批量爬取網(wǎng)頁圖片保存到本地的實(shí)現(xiàn)代碼

    這篇文章主要介紹了Python 爬蟲批量爬取網(wǎng)頁圖片保存到本地,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-12-12
  • python模型集成知識點(diǎn)總結(jié)

    python模型集成知識點(diǎn)總結(jié)

    在本篇文章里小編給大家整理了一篇關(guān)于python模型集成知識點(diǎn)總結(jié),有需要的朋友們可以學(xué)習(xí)參考下。
    2021-08-08
  • Python通過跳板機(jī)訪問數(shù)據(jù)庫的方法

    Python通過跳板機(jī)訪問數(shù)據(jù)庫的方法

    跳板機(jī)是一類可作為跳板批量操作的遠(yuǎn)程設(shè)備的網(wǎng)絡(luò)設(shè)備,是系統(tǒng)管理員和運(yùn)維人員常用的操作平臺之一。本文給大家介紹Python通過跳板機(jī)訪問數(shù)據(jù)庫的方法,感興趣的朋友跟隨小編一起看看吧
    2021-10-10
  • Python學(xué)習(xí)筆記之變量、自定義函數(shù)用法示例

    Python學(xué)習(xí)筆記之變量、自定義函數(shù)用法示例

    這篇文章主要介紹了Python學(xué)習(xí)筆記之變量、自定義函數(shù)用法,結(jié)合實(shí)例形式分析了Python變量、自定義函數(shù)的概念、功能、使用方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2019-05-05
  • python raise的基本使用

    python raise的基本使用

    這篇文章主要介紹了python raise的基本使用,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下
    2020-09-09
  • 使用PyInstaller庫把Python程序打包成exe

    使用PyInstaller庫把Python程序打包成exe

    這篇文章介紹了使用PyInstaller庫把Python程序打包成exe的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-05-05
  • Python標(biāo)準(zhǔn)庫pathlib操作目錄和文件

    Python標(biāo)準(zhǔn)庫pathlib操作目錄和文件

    這篇文章主要為大家介紹了Python標(biāo)準(zhǔn)庫pathlib操作目錄和文件的示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2021-11-11
  • 淺談Python中range與Numpy中arange的比較

    淺談Python中range與Numpy中arange的比較

    這篇文章主要介紹了淺談Python中range與Numpy中arange的比較,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • python轉(zhuǎn)換wrf輸出的數(shù)據(jù)為網(wǎng)頁可視化json格式

    python轉(zhuǎn)換wrf輸出的數(shù)據(jù)為網(wǎng)頁可視化json格式

    這篇文章主要介紹了python轉(zhuǎn)換wrf輸出的數(shù)據(jù)為網(wǎng)頁可視化json格式,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-09-09
  • Python練習(xí)之操作SQLite數(shù)據(jù)庫

    Python練習(xí)之操作SQLite數(shù)據(jù)庫

    這篇文章主要介紹了Python練習(xí)之操作SQLite數(shù)據(jù)庫,主要通過三個(gè)問題如何創(chuàng)建SQLite數(shù)據(jù)庫?如何向SQLite表中插入數(shù)據(jù)?如何查詢SQLite表中的數(shù)據(jù)?展開文章主題詳情,需要的朋友可以參考一下
    2022-06-06

最新評論

南平市| 鹰潭市| 商城县| 成安县| 朝阳县| 鹤山市| 卫辉市| 建宁县| 永德县| 蒙自县| 南和县| 射阳县| 许昌市| 厦门市| 临高县| 海淀区| 彝良县| 芒康县| 榆林市| 承德县| 简阳市| 肥城市| 咸丰县| 桐庐县| 桃江县| 蓬安县| 广灵县| 崇州市| 华蓥市| 曲沃县| 布拖县| 义马市| 江口县| 中西区| 木兰县| 金门县| 孟州市| 邵阳市| 温宿县| 曲沃县| 无极县|