本文簡要介紹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)
。
- 如果是 int,則繪製
如果max_samples 大於提供的樣本數,則所有樣本將用於所有樹(不采樣)。
- contamination:‘auto’ 或浮點數,默認='auto'
數據集的汙染量,即數據集中異常值的比例。在擬合時用於定義樣本分數的閾值。
如果‘auto’,閾值的確定與原論文相同。
如果浮點數,則汙染應在 (0, 0.5] 範圍內。
- max_features:int 或浮點數,默認=1.0
從 X 中提取以訓練每個基本估計器的特征數。
如果是 int,則繪製
max_features
特征。如果浮點數,則繪製
max_features * X.shape[1]
特征。
- bootstrap:布爾,默認=假
如果為 True,則單個樹適合替換采樣的訓練數據的隨機子集。如果為 False,則執行無放回抽樣。
- n_jobs:整數,默認=無
fit
和predict
並行運行的作業數。None
表示 1,除非在joblib.parallel_backend
上下文中。-1
表示使用所有處理器。有關更多詳細信息,請參閱術語表。- random_state:int、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])
相關用法
- Python sklearn IsotonicRegression用法及代碼示例
- Python sklearn Isomap用法及代碼示例
- Python sklearn IncrementalPCA用法及代碼示例
- Python sklearn IncrementalPCA.transform用法及代碼示例
- Python sklearn IterativeImputer用法及代碼示例
- Python sklearn jaccard_score用法及代碼示例
- Python sklearn WhiteKernel用法及代碼示例
- Python sklearn CalibrationDisplay.from_predictions用法及代碼示例
- Python sklearn VotingRegressor用法及代碼示例
- Python sklearn gen_batches用法及代碼示例
- Python sklearn ExpSineSquared用法及代碼示例
- Python sklearn MDS用法及代碼示例
- Python sklearn adjusted_rand_score用法及代碼示例
- Python sklearn MLPClassifier用法及代碼示例
- Python sklearn train_test_split用法及代碼示例
- Python sklearn RandomTreesEmbedding用法及代碼示例
- Python sklearn GradientBoostingRegressor用法及代碼示例
- Python sklearn GridSearchCV用法及代碼示例
- Python sklearn log_loss用法及代碼示例
- Python sklearn r2_score用法及代碼示例
- Python sklearn ndcg_score用法及代碼示例
- Python sklearn ShrunkCovariance用法及代碼示例
- Python sklearn SelfTrainingClassifier用法及代碼示例
- Python sklearn load_svmlight_file用法及代碼示例
- Python sklearn make_pipeline用法及代碼示例
注:本文由純淨天空篩選整理自scikit-learn.org大神的英文原創作品 sklearn.ensemble.IsolationForest。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。