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


Python sklearn AdaBoostClassifier用法及代碼示例


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

用法:

class sklearn.ensemble.AdaBoostClassifier(base_estimator=None, *, n_estimators=50, learning_rate=1.0, algorithm='SAMME.R', random_state=None)

AdaBoost 分類器。

AdaBoost [1] 分類器是一個 meta-estimator,它首先在原始數據集上擬合分類器,然後在同一數據集上擬合分類器的其他副本,但調整錯誤分類實例的權重,以便後續分類器關注更多關於疑難案件。

此類實現稱為AdaBoost-SAMME [2] 的算法。

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

參數

base_estimator對象,默認=無

構建增強集成的基本估計器。需要支持樣本加權,以及正確的classes_n_classes_ 屬性。如果 None ,則基本估計量是 DecisionTreeClassifier max_depth=1 初始化。

n_estimators整數,默認=50

終止提升的估計器的最大數量。在完美契合的情況下,學習過程會提前停止。

learning_rate浮點數,默認=1.0

在每次提升迭代中應用於每個分類器的權重。更高的學習率會增加每個分類器的貢獻。 learning_raten_estimators 參數之間存在折衷。

algorithm{‘SAMME’,‘SAMME.R’},默認=‘SAMME.R’

如果是“SAMME.R”,則使用 SAMME.R 實數提升算法。 base_estimator 必須支持類概率的計算。如果是“SAMME”,則使用 SAMME 離散增強算法。 SAMME.R 算法通常比 SAMME 收斂得更快,以更少的提升迭代實現更低的測試誤差。

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

在每次提升迭代中控製在每個 base_estimator 處給出的隨機種子。因此,它僅在 base_estimator 公開 random_state 時使用。傳遞 int 以獲得跨多個函數調用的可重現輸出。請參閱詞匯表。

屬性

base_estimator_估計器

生成集成的基本估計量。

estimators_分類器列表

擬合sub-estimators 的集合。

classes_ndarray 形狀 (n_classes,)

類標簽。

n_classes_int

類的數量。

estimator_weights_浮點數數組

增強集成中每個估計器的權重。

estimator_errors_浮點數數組

增強集成中每個估計器的分類誤差。

feature_importances_ndarray 形狀 (n_features,)

基於雜質的特征重要性。

n_features_in_int

擬合期間看到的特征數。

feature_names_in_ndarray 形狀(n_features_in_,)

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

參考

1

Y. Freund, R. Schapire,“on-Line 學習的 Decision-Theoretic 泛化和提升的應用”,1995 年。

2
  1. Zhu、H. Zou、S. Rosset、T. Hastie,“多類 AdaBoost”,2009 年。

例子

>>> from sklearn.ensemble import AdaBoostClassifier
>>> from sklearn.datasets import make_classification
>>> X, y = make_classification(n_samples=1000, n_features=4,
...                            n_informative=2, n_redundant=0,
...                            random_state=0, shuffle=False)
>>> clf = AdaBoostClassifier(n_estimators=100, random_state=0)
>>> clf.fit(X, y)
AdaBoostClassifier(n_estimators=100, random_state=0)
>>> clf.predict([[0, 0, 0, 0]])
array([1])
>>> clf.score(X, y)
0.983...

相關用法


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