什么是集成学习?常见的集成学习算法有哪些?代码举例讲解

集成学习是一种机器学习技术,它结合多个学习算法产生一个更强的集成模型。主要的集成学习方法有:

  • 投票法:每一个基学习者对样本进行分类,算法选择分类结果的多数投票。如Bagging。
  • 堆叠法:将多个基学习者的输出进行组合作为最终输出。如Stacking。
  • 提取法:各个学习者预测样本的概率或得分,算法结合所有学习者的预测结果产生最终输出。如Boosting。
  • 混合法:结合上述多种集成方法,如Bagging+Boosting。

常见的集成学习算法有:

  • 随机森林:结合决策树的Bagging集成方法。
  • AdaBoost:一种提升树集成方法,反复训练基分类器并调整不同样本的权重。
  • 梯度提升树:一种提升树集成方法,用梯度提升的方式不断提升树的性能。
  • XGBoost:一种高效的提升树算法,并行化提升和树剪枝。
  • LightGBM:一种高效的提升树算法,利用直方图加速训练。

代码示例:

随机森林:

python
from sklearn.ensemble import RandomForestClassifier

clf = RandomForestClassifier(n_estimators=100, max_depth=3)
clf.fit(x_train, y_train)  
y_pred = clf.predict(x_test)

AdaBoost:

python
from sklearn.ensemble import AdaBoostClassifier

clf = AdaBoostClassifier(n_estimators=100, random_state=0)  
clf.fit(x_train, y_train)
y_pred = clf.predict(x_test)

GBDT:

python 
from sklearn.ensemble import GradientBoostingClassifier

clf = GradientBoostingClassifier(n_estimators=100, learning_rate=1.0, max_depth=1, random_state=0)
clf.fit(x_train, y_train)
y_pred = clf.predict(x_test)

XGBoost:

python
import xgboost as xgb

xg_reg = xgb.XGBClassifier(n_estimators = 100, learning_rate = 0.1, max_depth = 5, 
                           nthread=3, colsample_bytree = 0.3, seed = 27)
xg_reg.fit(x_train,y_train)  
preds = xg_reg.predict(x_test)