AdaBoostClassifier#

class sklearn.ensemble.AdaBoostClassifier(estimator=None, *, n_estimators=50, learning_rate=1.0, algorithm='deprecated', random_state=None)[原始碼]#

AdaBoost 分類器。

AdaBoost [1] 分類器是一種元估計器,它首先在原始數據集上擬合分類器,然後在同一數據集上擬合分類器的額外副本,但其中錯誤分類的實例的權重會進行調整,以便後續分類器更關注困難的情況。

此類別基於 [2] 實作演算法。

請參閱 使用者指南 以取得更多資訊。

在 0.14 版本中新增。

參數:
estimator物件,預設值=None

用於建構 boosting 集成模型的基礎估算器。需要支援樣本權重,以及適當的 classes_n_classes_ 屬性。如果為 None,則基礎估算器會是初始化時使用 max_depth=1DecisionTreeClassifier

在 1.2 版本中新增:base_estimator 已重新命名為 estimator

n_estimators整數,預設值=50

boosting 終止時的最大估算器數量。在完美擬合的情況下,學習程序會提早停止。值必須在範圍 [1, inf) 內。

learning_rate浮點數,預設值=1.0

在每次 boosting 迭代時套用至每個分類器的權重。較高的學習率會增加每個分類器的貢獻。 learning_raten_estimators 參數之間存在取捨。值必須在範圍 (0.0, inf) 內。

algorithm{‘SAMME’},預設值=’SAMME’

使用 SAMME 離散 boosting 演算法。

自 1.6 版本起已棄用:algorithm 已棄用,並將在 1.8 版本中移除。此估算器僅實作 'SAMME' 演算法。

random_state整數、RandomState 實例或 None,預設值=None

控制在每次 boosting 迭代時給定每個 estimator 的隨機種子。因此,僅在 estimator 公開 random_state 時才會使用。傳遞一個整數,以便在多個函式呼叫中產生可重現的輸出。請參閱詞彙表

屬性:
estimator_估算器

用於成長集成模型的基礎估算器。

在 1.2 版本中新增:base_estimator_ 已重新命名為 estimator_

estimators_分類器列表

已擬合的子估算器集合。

classes_形狀為 (n_classes,) 的 ndarray

類別標籤。

n_classes_整數

類別的數量。

estimator_weights_浮點數的 ndarray

boosting 集成模型中每個估算器的權重。

estimator_errors_浮點數的 ndarray

boosting 集成模型中每個估算器的分類錯誤。

feature_importances_形狀為 (n_features,) 的 ndarray

基於雜質的特徵重要性。

n_features_in_整數

fit 期間看到的特徵數量。

在 0.24 版本中新增。

feature_names_in_形狀為 (n_features_in_,) 的 ndarray

fit 期間看到的特徵名稱。僅當 X 具有全部為字串的特徵名稱時才會定義。

在 1.0 版本中新增。

另請參閱

AdaBoostRegressor

AdaBoost 迴歸器,它首先在原始資料集上擬合一個迴歸器,然後在相同的資料集上擬合其他迴歸器副本,但會根據目前預測的錯誤調整實例的權重。

GradientBoostingClassifier

GB 以前向階段式的方式建構加法模型。迴歸樹擬合於二項式或多項式偏差損失函式的負梯度。二元分類是一種特殊情況,其中僅誘導單一迴歸樹。

sklearn.tree.DecisionTreeClassifier

一種用於分類的非參數監督式學習方法。建立一個模型,該模型透過學習從資料特徵推斷出的簡單決策規則來預測目標變數的值。

參考文獻

[1]

Y. Freund, R. Schapire, “A Decision-Theoretic Generalization of on-Line Learning and an Application to Boosting”, 1995.

範例

>>> 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.96...

如需使用 AdaBoost 擬合一系列 DecisionTree 作為弱學習器的詳細範例,請參閱 多類別 AdaBoosted 決策樹

如需使用 AdaBoost 擬合由兩個高斯分位數叢集組成的非線性可分分類資料集的詳細範例,請參閱 雙類別 AdaBoost

decision_function(X)[原始碼]#

計算 X 的決策函數。

參數:
X形狀為 (n_samples, n_features) 的 {類陣列、稀疏矩陣}

訓練輸入樣本。稀疏矩陣可以是 CSC、CSR、COO、DOK 或 LIL。COO、DOK 和 LIL 會轉換為 CSR。

傳回值:
score形狀為 (n_samples, k) 的 ndarray

輸入樣本的決策函數。輸出的順序與 classes_ 屬性相同。二元分類是一種特殊情況,其中 k == 1,否則 k==n_classes。對於二元分類,值越接近 -1 或 1,則分別表示越像 classes_ 中的第一個或第二個類別。

屬性 feature_importances_#

基於雜質的特徵重要性。

數值越高,表示特徵越重要。特徵的重要性會計算為該特徵帶來的(標準化)準則總減少量。這也稱為 Gini 重要性。

警告:基於雜質的重要性特徵對於高基數特徵(許多唯一值)可能具有誤導性。請參考 sklearn.inspection.permutation_importance 作為替代方案。

傳回值:
feature_importances_形狀為 (n_features,) 的 ndarray

特徵重要性。

fit(X, y, sample_weight=None)[來源]#

從訓練集 (X, y) 建立一個提升分類器/迴歸器。

參數:
X形狀為 (n_samples, n_features) 的 {類陣列、稀疏矩陣}

訓練輸入樣本。稀疏矩陣可以是 CSC、CSR、COO、DOK 或 LIL。COO、DOK 和 LIL 會轉換為 CSR。

y形狀為 (n_samples,) 的類陣列

目標值。

sample_weight形狀為 (n_samples,) 的類陣列,預設值為 None

樣本權重。如果為 None,則樣本權重會初始化為 1 / n_samples。

傳回值:
self物件

已擬合的估計器。

get_metadata_routing()[來源]#

引發 NotImplementedError

此估計器目前不支援元數據路由。

get_params(deep=True)[來源]#

取得此估計器的參數。

參數:
deep布林值,預設值為 True

如果為 True,則將傳回此估計器和包含的子物件(也是估計器)的參數。

傳回值:
params字典

參數名稱對應到它們的值。

predict(X)[來源]#

預測 X 的類別。

輸入樣本的預測類別是根據集成中分類器的加權平均預測計算的。

參數:
X形狀為 (n_samples, n_features) 的 {類陣列、稀疏矩陣}

訓練輸入樣本。稀疏矩陣可以是 CSC、CSR、COO、DOK 或 LIL。COO、DOK 和 LIL 會轉換為 CSR。

傳回值:
y形狀為 (n_samples,) 的 ndarray

預測的類別。

predict_log_proba(X)[來源]#

預測 X 的類別對數機率。

輸入樣本的預測類別對數機率是根據集成中分類器的加權平均預測類別對數機率計算的。

參數:
X形狀為 (n_samples, n_features) 的 {類陣列、稀疏矩陣}

訓練輸入樣本。稀疏矩陣可以是 CSC、CSR、COO、DOK 或 LIL。COO、DOK 和 LIL 會轉換為 CSR。

傳回值:
p形狀為 (n_samples, n_classes) 的 ndarray

輸入樣本的類別機率。輸出順序與 classes_ 屬性的順序相同。

predict_proba(X)[來源]#

預測 X 的類別機率。

輸入樣本的預測類別機率是根據集成中分類器的加權平均預測類別機率計算的。

參數:
X形狀為 (n_samples, n_features) 的 {類陣列、稀疏矩陣}

訓練輸入樣本。稀疏矩陣可以是 CSC、CSR、COO、DOK 或 LIL。COO、DOK 和 LIL 會轉換為 CSR。

傳回值:
p形狀為 (n_samples, n_classes) 的 ndarray

輸入樣本的類別機率。輸出順序與 classes_ 屬性的順序相同。

score(X, y, sample_weight=None)[來源]#

傳回給定測試資料和標籤的平均準確度。

在多標籤分類中,這是子集準確度,這是一個嚴格的指標,因為您需要每個樣本的每個標籤集都被正確預測。

參數:
X形狀為 (n_samples, n_features) 的類陣列

測試樣本。

y形狀為 (n_samples,) 或 (n_samples, n_outputs) 的類陣列

X 的真實標籤。

sample_weight形狀為 (n_samples,) 的類陣列,預設值為 None

樣本權重。

傳回值:
score浮點數

self.predict(X) 相對於 y 的平均準確度。

set_fit_request(*, sample_weight: bool | None | str = '$UNCHANGED$') AdaBoostClassifier[來源]#

請求傳遞到 fit 方法的元數據。

請注意,只有在 enable_metadata_routing=True 時,此方法才相關(請參閱 sklearn.set_config)。關於路由機制的運作方式,請參閱 使用者指南

每個參數的選項如下:

  • True:要求傳遞元數據,若有提供,則傳遞給 fit。如果沒有提供元數據,則忽略此要求。

  • False:不要求傳遞元數據,且元估計器不會將其傳遞給 fit

  • None:不要求傳遞元數據,如果使用者提供,元估計器會引發錯誤。

  • str:元數據應以指定的別名傳遞給元估計器,而不是原始名稱。

預設值(sklearn.utils.metadata_routing.UNCHANGED)保留現有的要求。這允許您變更某些參數的要求,而其他參數則不變。

在 1.3 版中新增。

注意

只有當此估計器作為元估計器的子估計器使用時,此方法才相關,例如在 Pipeline 中使用。否則,它不會產生任何效果。

參數:
sample_weightstr、True、False 或 None,預設值 = sklearn.utils.metadata_routing.UNCHANGED

fitsample_weight 參數的元數據路由。

傳回值:
self物件

更新後的物件。

set_params(**params)[原始碼]#

設定此估計器的參數。

此方法適用於簡單的估計器以及巢狀物件(例如 Pipeline)。後者具有 <component>__<parameter> 形式的參數,因此可以更新巢狀物件的每個元件。

參數:
**paramsdict

估計器參數。

傳回值:
self估計器實例

估計器實例。

set_score_request(*, sample_weight: bool | None | str = '$UNCHANGED$') AdaBoostClassifier[原始碼]#

要求傳遞給 score 方法的元數據。

請注意,只有在 enable_metadata_routing=True 時,此方法才相關(請參閱 sklearn.set_config)。關於路由機制的運作方式,請參閱 使用者指南

每個參數的選項如下:

  • True:要求傳遞元數據,若有提供,則傳遞給 score。如果沒有提供元數據,則忽略此要求。

  • False:不要求傳遞元數據,且元估計器不會將其傳遞給 score

  • None:不要求傳遞元數據,如果使用者提供,元估計器會引發錯誤。

  • str:元數據應以指定的別名傳遞給元估計器,而不是原始名稱。

預設值(sklearn.utils.metadata_routing.UNCHANGED)保留現有的要求。這允許您變更某些參數的要求,而其他參數則不變。

在 1.3 版中新增。

注意

只有當此估計器作為元估計器的子估計器使用時,此方法才相關,例如在 Pipeline 中使用。否則,它不會產生任何效果。

參數:
sample_weightstr、True、False 或 None,預設值 = sklearn.utils.metadata_routing.UNCHANGED

scoresample_weight 參數的元數據路由。

傳回值:
self物件

更新後的物件。

staged_decision_function(X)[原始碼]#

計算每次 boosting 迭代的 X 決策函數。

此方法允許在每次 boosting 迭代後進行監控(即確定測試集上的誤差)。

參數:
X形狀為 (n_samples, n_features) 的 {類陣列、稀疏矩陣}

訓練輸入樣本。稀疏矩陣可以是 CSC、CSR、COO、DOK 或 LIL。COO、DOK 和 LIL 會轉換為 CSR。

產生:
score形狀為 (n_samples, k) 的 ndarray 產生器

輸入樣本的決策函數。輸出的順序與 classes_ 屬性的順序相同。二元分類是一個特殊情況,其中 k == 1,否則 k==n_classes。對於二元分類,越接近 -1 或 1 的值分別表示越像 classes_ 中的第一個或第二個類別。

staged_predict(X)[原始碼]#

傳回 X 的階段預測。

輸入樣本的預測類別是根據集成中分類器的加權平均預測計算的。

此產生器方法會在每次 boosting 迭代後產生整體預測,因此允許進行監控,例如確定每次 boosting 後測試集上的預測。

參數:
X形狀為 (n_samples, n_features) 的類陣列

輸入樣本。稀疏矩陣可以是 CSC、CSR、COO、DOK 或 LIL。COO、DOK 和 LIL 會轉換為 CSR。

產生:
y形狀為 (n_samples,) 的 ndarray 產生器

預測的類別。

staged_predict_proba(X)[原始碼]#

預測 X 的類別機率。

輸入樣本的預測類別機率是根據集成中分類器的加權平均預測類別機率計算的。

此產生器方法會在每次 boosting 迭代後產生整體預測的類別機率,因此允許進行監控,例如確定每次 boosting 後測試集上的預測類別機率。

參數:
X形狀為 (n_samples, n_features) 的 {類陣列、稀疏矩陣}

訓練輸入樣本。稀疏矩陣可以是 CSC、CSR、COO、DOK 或 LIL。COO、DOK 和 LIL 會轉換為 CSR。

產生:
p形狀為 (n_samples,) 的 ndarray 產生器

輸入樣本的類別機率。輸出順序與 classes_ 屬性的順序相同。

staged_score(X, y, sample_weight=None)[原始碼]#

傳回 X、y 的階段分數。

此產生器方法會在每次 boosting 迭代後產生整體分數,因此允許進行監控,例如確定每次 boosting 後測試集上的分數。

參數:
X形狀為 (n_samples, n_features) 的 {類陣列、稀疏矩陣}

訓練輸入樣本。稀疏矩陣可以是 CSC、CSR、COO、DOK 或 LIL。COO、DOK 和 LIL 會轉換為 CSR。

y形狀為 (n_samples,) 的類陣列

X 的標籤。

sample_weight形狀為 (n_samples,) 的類陣列,預設值為 None

樣本權重。

產生:
zfloat