日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python离群点检测例子_异常点/离群点检测算法

發布時間:2025/4/16 python 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python离群点检测例子_异常点/离群点检测算法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

異常點/離群點檢測算法

發布時間:2018-07-24 14:45,

瀏覽次數:456

sklearn中關于異常檢測的方法主要有兩種:

1)、novelty detection:當訓練數據中沒有離群點,我們的目標是用訓練好的模型去檢測另外新發現的樣本;

2)、outlier detection:當訓練數據中包含離群點,模型訓練時要匹配訓練數據的中心樣本,忽視訓練樣本中的其它異常點;

sklearn提供了一些機器學習方法,可用于奇異(Novelty?)點或異常(Outlier)點檢測,包括OneClassSVM、Isolation

Forest、Local Outlier Factor (LOF) 等。其中OneClassSVM可用于Novelty

Detection,而后兩者可用于Outlier Detection。

參考

http://scikit-learn.org/stable/modules/outlier_detection.html#outlier-detection

一、OneClassSVM

http://scikit-learn.org/stable/modules/generated/sklearn.svm.OneClassSVM.html#sklearn.svm.OneClassSVM

1、嚴格地講,OneClassSVM不是一種outlier detection方法,而是一種novelty

detection方法:它的訓練集不應該摻雜異常點,因為模型可能會去匹配這些異常點。

但在數據維度很高,或者對相關數據分布沒有任何假設的情況下,OneClassSVM也可以作為一種很好的outlier detection方法。

2、其實在分類問題中,當兩類樣本及其不平衡時,也可以將個數比例極小的那部分當做異常點來處理,從另外一種角度來完成分類任務

二、IsolationForest

http://scikit-learn.org/stable/modules/generated/sklearn.ensemble.IsolationForest.html#sklearn.ensemble.IsolationForest

孤立森林(Isolation

Forest)是另外一種高效的異常檢測算法,它和隨機森林類似,但每次選擇劃分屬性和劃分點(值)時都是隨機的,而不是根據信息增益或者基尼指數來選擇。在建樹過程中,如果一些樣本很快就到達了葉子節點(即葉子到根的距離d很短),那么就被認為很有可能是異常點。因為那些路徑d比較短的樣本,都是因為距離主要的樣本點分布中心比較遠的。也就是說,可以通過計算樣本在所有樹中的平均路徑長度來尋找異常點。

三、Local Outlier Factor(LOF)

http://scikit-learn.org/stable/modules/generated/sklearn.neighbors.LocalOutlierFactor.html#sklearn.neighbors.LocalOutlierFactor

https://github.com/wangyibo360/pylof

基于密度或距離的方法,適用于二維或高維坐標體系內異常點的判別,例如二維平面坐標或經緯度空間坐標下異常點識別

主要是通過比較每個點p和其鄰域點的密度來判斷該點是否為異常點,如果點p的密度越低,越可能被認定是異常點。至于密度,是通過點之間的距離來計算的,點之間距離越遠,密度越低,距離越近,密度越高。

LOF通過計算一個數值score來反映一個樣本的異常程度。這個數值的大致意思是:一個樣本點周圍的樣本點所處位置的平均密度比上該樣本點所在位置的密度。比值越大于1,則該點所在位置的密度越小于其周圍樣本所在位置的密度,這個點就越有可能是異常點。

四、基于高斯分布的方法

如果一個對象不服從該分布,則認為他是一個異常。有單元高斯分布和多元高斯分布

參考https://blog.csdn.net/u013082989/article/details/53911514

https://blog.csdn.net/u012328159/article/details/51462942

https://github.com/lawlite19/MachineLearning_Python/blob/master/AnomalyDetection/AnomalyDetection.py

在上、下α分位點之外的值認為是異常值,

五、如何設計選擇features

異常檢測算法其實就是對符合高斯分布的數據建模,如果樣本不是很符合高斯分布,算法也可以很好的運行,但是如果把樣本轉換成高斯分布,算法的效果會更好。有時候我們會遇到樣本不符合高斯分布的情況,而且偏的有點遠,因此這時通常來講我們需要對數據進行轉換,讓其符合高斯分布,一般可以通過對數轉(log(x))進行轉換。例如:

有時候我們還需要根據實際應用情況設計新的特征變量來幫助異常檢測算法更好的檢測離群點。

總結

以上是生活随笔為你收集整理的python离群点检测例子_异常点/离群点检测算法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。