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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

机器学习之异常点检测

發布時間:2024/9/5 编程问答 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 机器学习之异常点检测 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.iForest(獨立森林)算法

樣本數據過大時推薦采用這種異常值檢測方法

原理分析:iForest森林也由大量的樹組成。iForest中的樹叫isolation tree,簡稱iTree。iTree樹和決策樹不太一樣,其構建過程也比決策樹簡單,因為其中就是一個完全隨機的過程。具體實施過程如下:第一、假設共有N條數據,構建一顆iTree時,從N條數據中均勻抽樣(一般是無放回抽樣)出ψ個樣本出來,作為這顆樹的訓練樣本。在樣本中,隨機選一個特征,并在這個特征的所有值范圍內(最小值與最大值之間)隨機選一個值,對樣本進行二叉劃分,將樣本中小于該值的劃分到節點的左邊,大于等于該值的劃分到節點的右邊。這樣得到了一個分裂條件和左、右兩邊的數據集,然后分別在左右兩邊的數據集上重復上面的過程,直接達到終止條件。終止條件有兩個,一個是數據本身不可再分(只包括一個樣本,或者全部樣本相同),另外一個是樹的高度達到log2(ψ)。不同于決策樹,iTree在算法里面已經限制了樹的高度。當然不限制也可以,只是算法為了效率考慮,只需要達到log2(ψ)深度即可。

第二、把所有的iTree樹構建好了,就可以對測試數據進行預測了。預測的過程就是把測試數據在iTree樹上沿對應的條件分支往下走,直到達到葉子節點,并記錄這過程中經過的路徑長度h(x),即從根節點,穿過中間的節點,最后到達葉子節點,所走過的邊的數量(path length)。最后,將h(x)帶入(具體公式參考https://www.cnblogs.com/pinard/p/9314198.html),計算每條待測數據的異常分數(Anomaly Score)如果分數越接近1,其是異常點的可能性越高;如果分數都比0.5要小,那么基本可以確定為正常數據;如果所有分數都在0.5附近,那么數據不包含明顯的異常樣本。

sklearn中的使用:

算法基本上不需要配置參數就可以直接使用,通常就以下幾個(參數明顯比隨機森林簡單):
n_estimators: 默認為100,配置iTree樹的多少

max_samples: 默認為265,配置采樣大小

max_features: 默認為全部特征,對高維數據,可以只選取部分特征

from sklearn.ensemble import IsolationForest

ilf=IsolationForest()
ilf.fit(X)
s=ilf.predict(X)

返回的是只包含-1和1元素的數組,-1代表可能為異常值的點

2.異常點檢測常用算法OneClassSVM

在樣本數據較少時建議采用這種異常值檢測方法

它是無監督學習的方法,這里只講解一種特別的思路SVDD, 對于SVDD來說,我們期望所有不是異常的樣本都是正類別,同時它采用一個超球體而不是一個超平面來做劃分,該算法在特征空間中獲得數據周圍的球形邊界,期望最小化這個超球體的體積,從而最小化異常點數據的影響。可以判斷新的數據點z是否在類內,如果z到中心的距離小于或者等于半徑r,則不是異常點,如果在超球體以外,則是異常點。sklearn中的用法

from sklearn.svm import OneClassSVM

classer=OneClassSVM()
classer.fit(X)
yHat=classer.predict(X)
print(yHat)

注意:由于其是非監督學習方法,所以不用傳入類別列表。返回數據和iForest一樣是只包含1,-1的列表,-1代表可能是異常點,X是訓練樣本。檢測完后的數據篩選

?

轉載于:https://www.cnblogs.com/dyl222/p/11122226.html

總結

以上是生活随笔為你收集整理的机器学习之异常点检测的全部內容,希望文章能夠幫你解決所遇到的問題。

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