當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python sklearn IsolationForest用法及代碼示例


本文簡要介紹python語言中 sklearn.ensemble.IsolationForest 的用法。

用法:

class sklearn.ensemble.IsolationForest(*, n_estimators=100, max_samples='auto', contamination='auto', max_features=1.0, bootstrap=False, n_jobs=None, random_state=None, verbose=0, warm_start=False)

隔離森林算法。

使用IsolationForest算法返回每個樣本的異常分數

IsolationForest ‘isolates’ 觀察是通過隨機選擇一個特征,然後在所選特征的最大值和最小值之間隨機選擇一個分割值。

由於遞歸劃分可以用樹結構表示,因此隔離樣本所需的分裂次數等於從根節點到終止節點的路徑長度。

這個路徑長度,在這些隨機樹的森林上平均,是衡量正常性和我們的決策函數的指標。

隨機分區為異常產生明顯更短的路徑。因此,當隨機樹的森林共同為特定樣本產生較短的路徑長度時,它們很可能是異常的。

在用戶指南中閱讀更多信息。

參數

n_estimators整數,默認=100

集成中基本估計器的數量。

max_samples“auto”, int 或浮點數,默認=”auto”
從 X 中抽取以訓練每個基本估計器的樣本數。
  • 如果是 int,則繪製 max_samples 樣本。
  • 如果浮點數,則繪製 max_samples * X.shape[0] 樣本。
  • 如果 “auto”,那麽 max_samples=min(256, n_samples)

如果max_samples 大於提供的樣本數,則所有樣本將用於所有樹(不采樣)。

contamination‘auto’ 或浮點數,默認='auto'

數據集的汙染量,即數據集中異常值的比例。在擬合時用於定義樣本分數的閾值。

  • 如果‘auto’,閾值的確定與原論文相同。

  • 如果浮點數,則汙染應在 (0, 0.5] 範圍內。

max_featuresint 或浮點數,默認=1.0

從 X 中提取以訓練每個基本估計器的特征數。

  • 如果是 int,則繪製 max_features 特征。

  • 如果浮點數,則繪製max_features * X.shape[1] 特征。

bootstrap布爾,默認=假

如果為 True,則單個樹適合替換采樣的訓練數據的隨機子集。如果為 False,則執行無放回抽樣。

n_jobs整數,默認=無

fitpredict 並行運行的作業數。 None 表示 1,除非在 joblib.parallel_backend 上下文中。 -1 表示使用所有處理器。有關更多詳細信息,請參閱術語表。

random_stateint、RandomState 實例或無,默認=無

控製森林中每個分支步驟和每棵樹的特征選擇和拆分值的pseudo-randomness。

傳遞 int 以獲得跨多個函數調用的可重現結果。請參閱詞匯表。

verbose整數,默認=0

控製樹構建過程的詳細程度。

warm_start布爾,默認=假

當設置為 True 時,重用上一次調用的解決方案以適應並向集成添加更多估計器,否則,隻需適應一個全新的森林。請參閱詞匯表。

屬性

base_estimator_ExtraTreeRegressor 實例

用於創建擬合sub-estimators 集合的子估計器模板。

estimators_ExtraTreeRegressor 實例列表

擬合sub-estimators 的集合。

estimators_features_ndarray 列表

每個基本估計器的繪製特征的子集。

estimators_samples_ndarray 列表

每個基本估計器的抽取樣本的子集。

max_samples_int

實際樣本數。

offset_浮點數

用於從原始分數定義決策函數的偏移量。我們有關係:decision_function = score_samples - offset_offset_ 定義如下。當汙染參數設置為“auto” 時,偏移量等於-0.5,因為內點的得分接近 0,而異常點的得分接近 -1。當提供不同於“auto”的汙染參數時,偏移量的定義方式是我們在訓練中獲得預期的異常值(決策函數<0的樣本)數量。

n_features_int

已棄用:屬性 n_features_ 在版本 1.0 中已棄用,並將在 1.2 中刪除。

n_features_in_int

擬合期間看到的特征數。

feature_names_in_ndarray 形狀(n_features_in_,)

擬合期間看到的特征名稱。僅當 X 具有全為字符串的函數名稱時才定義。

注意

該實現基於 ExtraTreeRegressor 的集合。每棵樹的最大深度設置為 ceil(log_2(n)),其中 是用於構建樹的樣本數量(更多詳細信息請參閱 (Liu et al., 2008))。

參考

1

Liu、Fei Tony、Ting、Kai Ming 和 Zhou,Zhi-Hua。 “隔離林。”數據挖掘,2008。ICDM'08。第八屆 IEEE 國際會議。

2

Liu、Fei Tony、Ting、Kai Ming 和 Zhou,Zhi-Hua。 “基於隔離的異常檢測。” ACM 從數據中發現知識的交易 (TKDD) 6.1 (2012):3。

例子

>>> from sklearn.ensemble import IsolationForest
>>> X = [[-1.1], [0.3], [0.5], [100]]
>>> clf = IsolationForest(random_state=0).fit(X)
>>> clf.predict([[0.1], [0], [90]])
array([ 1,  1, -1])

相關用法


注:本文由純淨天空篩選整理自scikit-learn.org大神的英文原創作品 sklearn.ensemble.IsolationForest。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。