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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

异常检测-孤立森林(IsolationForest)

發布時間:2025/4/5 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 异常检测-孤立森林(IsolationForest) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、原理

? ? ? ?孤立森林是以遞歸方式劃分數據集的各個樹結構的集合。對于該過程的每一次迭代,都會選擇一個隨機特征,然后根據在所選特征的最小值和最大值之間隨機選擇一個值對數據劃分。重復此過程,直到對整個數據集進行劃分,在森林重形成一個單獨的樹。一般情況下,異常與根位置之間的路徑比正常數據點短的多,因為他們更容易被隔離。

注:可以使用一個涉及平均路徑長度的數據點函數來找出異常分數

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

? ? ? 換句話說,目的就是不斷切割子空間,最終每個子空間只有一個數據點為止,密度比較大的簇需要多次切分才能切分剩余一個數據點,而密度很低的簇很快會被切分為一個數據點,如上圖所示:黑色的點為異常點,白色的點為正常點。舉個例子如下所示, d最先被分割出來,說明d最有可能異常:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

? ? ?模型訓練階段如同上述描述的那樣,模型測試階段每一個測試樣本的異常分數有平均路徑長度得到,平均路徑長度是通過孤立森林每一顆樹得到

?

二、實現

from sklearn.ensemble import IsolationForestisolation_forest = IsolationForest(n_estimators=100, # 使用樹的數量max_samples=256, # 應該構建樹的最大數據點數contamination=0.1, # 被認為是異常/離群值的估計百分比random_state=42) # 隨機數生成器isolation_forest.fit(data)anomaly_scores = isolation_forest.decision_function(data)

?

參考鏈接:

1、https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.IsolationForest.html

2、python深度學習異常檢測

3、阿里技術-異常檢測的N種方法

總結

以上是生活随笔為你收集整理的异常检测-孤立森林(IsolationForest)的全部內容,希望文章能夠幫你解決所遇到的問題。

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