提升方法
提升方法(Boosting)是一类集成学习算法。它把多个弱学习器按顺序组合起来,后一个模型重点修正前一个模型的错误,最终形成强学习器。
概念详解
最终模型通常写成多个基模型的加权和:
其中
AdaBoost 推导
初始化样本权重:
第
分类器权重为:
随后更新样本权重:
若样本分类错误,则
应用代码
python
from sklearn.datasets import make_classification
from sklearn.ensemble import AdaBoostClassifier, GradientBoostingClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
X, y = make_classification(n_samples=500, n_features=10, random_state=0)
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=0)
models = [
AdaBoostClassifier(n_estimators=50, learning_rate=0.8, random_state=0),
GradientBoostingClassifier(n_estimators=80, learning_rate=0.05, random_state=0)
]
for model in models:
model.fit(X_train, y_train)
pred = model.predict(X_test)
print(type(model).__name__, accuracy_score(y_test, pred))小结
提升方法的核心是逐步修正错误。它通常预测能力较强,但也更容易受噪声样本影响,需要控制学习率、树深度和迭代轮数。