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]分類器是一種元估計器,它首先在原始數據集上擬合一個分類器,然后在同一數據集上擬合分類器的額外副本,但其中錯誤分類實例的權重被調整,以便后續的分類器更多地關注困難的情況。
這個類實現的算法稱為AdaBoost-SAMME [2]。
在用戶指南中獲取更多內容。
0.14版本中新增內容
參數 | 說明 |
---|---|
base_estimator | object, default = None 建立增強集成的基礎估計器。需要支持示例權重,以及適當的 classes_ 和n_classes_ 屬性。如果沒有,那么基礎估計器是DecisionTreeClassifier(max_depth=1) |
n_estimators | int, default = 50 終止推進的估計器的最大數目。如果完全擬合,學習過程就會提前停止。 |
learning_rate | float, default = 1 學習率通過 learning_rate 縮小每個分類器的貢獻程度。learning_rate 和n_estimators 之間存在權衡關系。 |
algorithm | {'SAMME', 'SAMME.R'}, default = 'SAMME.R' 若為"SAMME.R"則使用real bossting算法。 base_estimator 必須支持類概率的計算。若為SAMME,則使用discrete boosting算法。SAMME.R算法的收斂速度通常比SAMME快,通過更少的增強迭代獲得更低的測試誤差。 |
random_state | int or RandomState, default = None 控制每個 base_estimator 在每個增強迭代中給定的隨機種子。因此,僅在base_estimator 引入random_state 時使用它。在多個函數調用之間傳遞可重復輸出的整數。見Glossary。 |
屬性 | 說明 |
---|---|
base_estimateor_ | estimator 用于增長集成的基礎估計量。 |
extimators_ | list of classsifiers 擬合的次估計量的集合。 |
classes_ | ndarray of shape (n_classes, ) 類標簽。 |
n_classes_ | int 類的數量。 |
estimator_weights_ | ndarray of floats 在增強的集合中每個估計量的權重。 |
estimator_errors_ | ndarray of floats 每個估計量在增強集成中的分類誤差。 |
feature_importances_ | ndarray of shape (n_features, ) 基于雜質的特征重要性。 |
另見:
一個AdaBoost回歸器,首先在原始數據集上擬合一個回歸器,然后在同一數據集上擬合回歸器的額外副本,但實例的權重會根據當前預測的誤差進行調整。
GB采用前向階梯的方式建立了可加性模型。回歸樹在二項或多項偏差損失函數的負梯度上擬合。二元分類是一種特殊的情況,其中只有一個回歸樹被誘導。
sklearn.tree.DecisionTreeClassifier
一種用于分類的非參數監督學習方法。通過學習從數據特征推斷出的簡單決策規則,并創建預測目標變量值的模型。
參考文獻
R33e4ec8c4ad5-1 Y. Freund, R. Schapire, “A Decision-Theoretic Generalization of on-Line Learning and an Application to Boosting”, 1995.
R33e4ec8c4ad5-2 Zhu, H. Zou, S. Rosset, T. Hastie, “Multi-class 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...
方法
方法 | 說明 |
---|---|
decision_function (self, X) |
計算決策函數X |
fit (self, X, y[, sample_weight]) |
建立一個基于訓練集(X,y)的增強分類器 |
get_params (self[, deep]) |
獲得該估計量的參數值 |
predict (self, X) |
預測X的分類 |
predict_log_proba (self, X) |
預測X的類對數概率 |
predict_proba (self, X) |
預測X的類概率 |
score (self, X, y[, sample_weight]) |
根據給定測試數據及標簽,返回平均精度 |
set_params (self, **params) |
設置該估計量的參數 |
staged_decision_function (self, X) |
計算每個boosting迭代的X決策函數 |
staged_predict (self, X) |
返回對X的階梯預測 |
staged_predict_proba (self, X) |
預測X的類概率 |
staged_score (self, X, y[, sample_weight]) |
返回X,y的階梯分數 |
__init__(self, base_estimator=None, *, n_estimators=50, learning_rate=1.0, algorithm='SAMME.R', random_state=None)
初始化的self。請參閱幫助(type(self))以獲得準確的簽名。
decision_function(self, X)
計算決策函數X
。
參數 | 說明 |
---|---|
X | {array-like, sparse matrix} of shape (n_samples, n_feature) 為訓練輸入樣本。稀疏矩陣可以是CSC, CSR, COO, DOK, LIL。COO, DOK和LIL被轉換為CSR。 |
score | ndarray of shape of (n_samples, k) 輸入樣本的決策函數。輸出的順序與classes_屬性的順序相同。二分類是 k== 1 的一種特殊情況,否則k==n_classes 。對于二分類,更接近-1或1的值分別更像classes_ 中的第一類或第二類。 |
property feature_importances_
基于不純的特性重要性。
越高,功能越重要。一個特征的重要性被計算為該特征帶來的標準的(歸一化)總減少量。它也被稱為基尼重要性。
警告: 針對高基數特性(許多唯一值),基于不純的特性重要性可能會引起誤解。作為備選,請參考 sklearn.inspection.permutation_importance
。
返回值 | 說明 |
---|---|
feature_importances_ | ndarray of shape (n_features,) 特征重要性。 |
fit(self, X, y, sample_weight=None)
建立一個基于訓練集(X,y)的增強分類器。
參數 | 說明 |
---|---|
X | {array-like, sparse matrix} of shape (n_sample, n_features) 為訓練輸入樣本。稀疏矩陣可以是CSC, CSR, COO, DOK, LIL。COO, DOK和LIL被轉換為CSR。 |
y | array-like of shape (n_samples, ) 目標值(非類標簽)。 |
sample_weight | array-like of shape (n_samples, ), default = None 樣本權重。如果沒有,則將樣本權重初始化為 1 / n_samples 。 |
返回值 | 說明 |
---|---|
self | object 擬合后的估計量 |
get_params(self, deep=True)
得到估計器的參數。
參數 | 說明 |
---|---|
deep | bool, default = True 如果為真,將返回此估計量的參數以及包含作為估計量的子對象。 |
返回值 | 說明 |
---|---|
params | mapping of string to any 名稱參數及他們所映射的值。 |
predict(self, X)
預測X的分類。
對輸入樣本的預測類別進行計算,作為分類器在集成中的加權平均預測。
參數 | 說明 |
---|---|
X | {array-like, sparse matrix} of shape (n_samples, n_features) 為訓練輸入樣本。稀疏矩陣可以是CSC, CSR, COO, DOK, LIL。COO, DOK和LIL被轉換為CSR。 |
返回值 | 說明 |
---|---|
y | ndarray of shape (n_sample, ) 預測類別。 |
predict_log_proba(self, X)
預測X分的對數概率
一個輸入樣本的預測類對數概率被計算為集成中分類器預測類對數概率的加權平均值。
參數 | 說明 |
---|---|
X | {array-like, sparse matrix} of shape (n_samples, n_features) 為訓練輸入樣本。稀疏矩陣可以是CSC, CSR, COO, DOK, LIL。COO, DOK和LIL被轉換為CSR。 |
返回值 | 說明 |
---|---|
p | ndarray of shape (n_samples, n_classes) 輸入樣本的分類概率。輸出的順序與其classes_屬性相一致。 |
predict_proba(self, X)
預測X的類概率
一個輸入樣本的預測類概率被計算為集成中分類器預測類概率的加權平均值。
參數 | 說明 |
---|---|
X | {array-like, sparse matrix} of shape (n_samples, n_features) 為訓練輸入樣本。稀疏矩陣可以是CSC, CSR, COO, DOK, LIL。COO, DOK和LIL被轉換為CSR。 |
返回值 | 說明 |
---|---|
p | ndarray of shape (n_samples, n_classes) 輸入樣本的分類概率。輸出的順序與其classes_屬性相一致。 |
score(self, X, y, sample_weight=None)
返回測試數據和標簽的平均準確率。
在多標簽分類中,這是子集精度,這是一個苛刻的指標,因為你需要對每個樣本正確預測每個標簽集。
參數 | 說明 |
---|---|
X | array-like of shape (n_sample, n_features) 測試樣本。 |
y | array-like of shpe (n_sample, ) or (n_samples, n_outputs) X的正確標簽。 |
sample_weight | array-like of shape (n_samples, ), default = None 樣本權重。 |
返回值 | 說明 |
---|---|
score | float self.predict(X) 關于y的平均準確率。 |
set_params(self, params)
設置該估計器的參數。
該方法適用于簡單估計器和嵌套對象(如pipline)。后者具有形式為<component>_<parameter>
的參數,這樣就可以更新嵌套對象的每個組件。
參數 | 說明 |
---|---|
**params | dict 估計器參數 |
返回值 | 說明 |
---|---|
self | object 估計實例。 |
staged_decision_function(self, X)
計算每個boosting迭代的X
決策函數。
該方法允許在每次增強迭代后進行監視(即測試集的決策誤差)。
參數 | 說明 |
---|---|
X | {array-like, sparse matrix} of shape (n_samples, n_features) 為訓練輸入樣本。稀疏矩陣可以是CSC, CSR, COO, DOK, LIL。COO, DOK和LIL被轉換為CSR。 |
產出 | 說明 |
---|---|
score | generator of ndarray of shape (n_samples, k) 輸入樣本的決策函數。輸出的順序與classes_屬性的順序相同。二分類是 k == 1 的一種特殊情況,否則k == n_classes 。對于二分類,更接近-1或1的值分別更像classes_ 中的第一類或第二類。 |
staged_predict(self, X)
返回X階段性的預測。
對輸入樣本的預測類別進行計算,作為分類器在集成中的加權平均預測。
該生成器方法在每次增強迭代后生成集成預測,并且因此允許監視,例如確定每次增強后測試集的預測。
參數 | 說明 |
---|---|
X | array-like of shape (n_sample, n_features) 為訓練輸入樣本。稀疏矩陣可以是CSC, CSR, COO, DOK, LIL。COO, DOK和LIL被轉換為CSR。 |
產出 | 說明 |
---|---|
y | generator of ndarray of shape (n_samples, ) 預測后的類別。 |
staged_predict_proba(self, X)
預測X的類概率。
將輸入樣本的預測類概率作為集成中分類器的預測類概率的加權平均來計算。
該生成器方法在每次遞增迭代后生成集合預測的類概率,并且因此允許進行監視,比如在每次遞增之后確定測試集上預測的類概率。
參數 | 說明 |
---|---|
X | {array-like, sparse matrix} of shape (n_samples, n_features) 為訓練輸入樣本。稀疏矩陣可以是CSC, CSR, COO, DOK, LIL。COO, DOK和LIL被轉換為CSR。 |
產出 | 說明 |
---|---|
p | ndarray of shape (n_samples, n_classes) 輸入樣本的分類概率。輸出的順序與其classes_屬性相一致。 |
staged_score(self, X, y, sample_weight=None)
返回X,y階段性的分數。
該生成器方法在每次遞增迭代后生成集成分數,因此允許進行監視,比如在每次遞增之后確定測試集上分數。
參數 | 說明 |
---|---|
X | {array-like, sparse matrix} of shape (n_samples, n_features) 為訓練輸入樣本。稀疏矩陣可以是CSC, CSR, COO, DOK, LIL。COO, DOK和LIL被轉換為CSR。 |
y | **array-like of shpe (n_sample, ) ** X的正確標簽。 |
sample_weight | array-like of shape (n_samples, ), default = None 樣本權重。 |
返回值 | 說明 |
---|---|
z | float |