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


Python sklearn BaggingClassifier用法及代碼示例


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

用法:

class sklearn.ensemble.BaggingClassifier(base_estimator=None, n_estimators=10, *, max_samples=1.0, max_features=1.0, bootstrap=True, bootstrap_features=False, oob_score=False, warm_start=False, n_jobs=None, random_state=None, verbose=0)

Bagging 分類器。

Bagging 分類器是一個集合meta-estimator,它將每個基分類器擬合到原始數據集的隨機子集上,然後聚合它們各自的預測(通過投票或通過平均)以形成最終預測。這樣的meta-estimator 通常可以用作減少black-box 估計器(例如決策樹)方差的方法,方法是在其構造過程中引入隨機化,然後對其進行集成。

該算法包含文獻中的幾部作品。當數據集的隨機子集被抽取為樣本的隨機子集時,該算法稱為粘貼[1]。如果通過放回抽取樣本,則該方法稱為 Bagging [2]。當數據集的隨機子集被繪製為特征的隨機子集時,該方法稱為隨機子空間[3]。最後,當基礎估計量建立在樣本和特征的子集上時,該方法稱為隨機補丁 [4]。

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

參數

base_estimator對象,默認=無

適合數據集隨機子集的基本估計器。如果無,則基本估計量是 DecisionTreeClassifier

n_estimators整數,默認=10

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

max_samplesint 或浮點數,默認=1.0

從 X 中抽取以訓練每個基本估計器的樣本數(默認情況下有替換,有關更多詳細信息,請參閱bootstrap)。

  • 如果是 int,則繪製 max_samples 樣本。
  • 如果浮點數,則繪製 max_samples * X.shape[0] 樣本。
max_featuresint 或浮點數,默認=1.0

從 X 中提取以訓練每個基本估計器的特征數量(默認情況下不替換,有關更多詳細信息,請參閱bootstrap_features)。

  • 如果是 int,則繪製 max_features 特征。
  • 如果浮點數,則繪製max_features * X.shape[1] 特征。
bootstrap布爾,默認=真

是否有放回抽取樣本。如果為 False,則執行無放回抽樣。

bootstrap_features布爾,默認=假

是否使用替換繪製特征。

oob_score布爾,默認=假

是否使用out-of-bag 個樣本來估計泛化誤差。僅當 bootstrap=True 時可用。

warm_start布爾,默認=假

當設置為 True 時,重用上一次調用的解決方案來擬合並將更多的估計器添加到集成中,否則,隻需擬合一個全新的集成。請參閱詞匯表。

n_jobs整數,默認=無

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

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

控製原始數據集的隨機重采樣(樣本和特征)。如果基本估計器接受random_state 屬性,則會為集成中的每個實例生成不同的種子。傳遞 int 以獲得跨多個函數調用的可重現輸出。請參閱詞匯表。

verbose整數,默認=0

控製擬合和預測時的詳細程度。

屬性

base_estimator_估計器

生成集成的基本估計量。

n_features_int

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

n_features_in_int

擬合期間看到的特征數。

feature_names_in_ndarray 形狀(n_features_in_,)

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

estimators_估算器列表

擬合基礎估計器的集合。

estimators_samples_數組列表

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

estimators_features_數組列表

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

classes_ndarray 形狀 (n_classes,)

類標簽。

n_classes_int 或列表

類的數量。

oob_score_浮點數

使用out-of-bag 估計獲得的訓練數據集的分數。此屬性僅在oob_score 為 True 時存在。

oob_decision_function_ndarray 形狀(n_samples,n_classes)

使用 out-of-bag 估計訓練集計算的決策函數。如果 n_estimators 很小,則可能在引導期間從未遺漏數據點。在這種情況下,oob_decision_function_ 可能包含 NaN。此屬性僅在oob_score 為 True 時存在。

參考

1

L. Breiman,“在大型數據庫和on-line 中為分類粘貼小票”,機器學習,36(1), 85-103, 1999。

2

L. Breiman,“Bagging predictors”,機器學習,24(2), 123-140, 1996。

3

T. Ho,“構建決策森林的隨機子空間方法”,模式分析和機器智能,20(8),832-844,1998。

4

G. Louppe 和 P. Geurts,“隨機補丁上的集合”,數據庫中的機器學習和知識發現,346-361,2012。

例子

>>> from sklearn.svm import SVC
>>> from sklearn.ensemble import BaggingClassifier
>>> from sklearn.datasets import make_classification
>>> X, y = make_classification(n_samples=100, n_features=4,
...                            n_informative=2, n_redundant=0,
...                            random_state=0, shuffle=False)
>>> clf = BaggingClassifier(base_estimator=SVC(),
...                         n_estimators=10, random_state=0).fit(X, y)
>>> clf.predict([[0, 0, 0, 0]])
array([1])

相關用法


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