学习Python集成学习和随机森林算法( 三 )


AdaBoost是一种通用的算法,适用于回归和分类任务,但在这里本文更关注它在分类问题上的应用,使用Scikit-learn进行演示 。接下来看看如何在下面的示例中将其应用于分类任务:
from sklearn.ensemble import AdaBoostClassifiermodel = AdaBoostClassifier(n_estimators=100)model.fit(X_train, y_train)model.score(X_test,y_test)在这个示例中 , 本文使用了Scikit-learn中的AdaBoostClassifier,并将n_estimators设置为100 。默认的学习器是决策树,用户可以进行更改 。此外 , 还可以调整决策树的参数 。
6.2 极限梯度提升(XGBoost)极限梯度提升(eXtreme Gradient Boosting),更常被称为XGBoost,是提升集成学习算法中最佳的实现之一,由于其并行计算能力,在单台计算机上运行非常高效 。可以通过机器学习社区开发的xgboost软件包来使用XGBoost 。
import xgboost as xgbparams = {"objective":"binary:logistic",'colsample_bytree': 0.3,'learning_rate': 0.1,               'max_depth': 5, 'alpha': 10}model = xgb.XGBClassifier(**params)model.fit(X_train, y_train)model.fit(X_train, y_train)model.score(X_test,y_test)6.3 LightGBMLightGBM是另一种基于树学习的梯度提升算法,但与其他基于树的算法不同的是,它使用基于叶子的树生长方式,这使其收敛更快 。


学习Python集成学习和随机森林算法

文章插图
树叶的生长/图片来源:LightGBM
在下面的示例中,本文将使用LightGBM解决一个二元分类问题:
import lightgbm as lgblgb_train = lgb.Dataset(X_train, y_train)lgb_eval = lgb.Dataset(X_test, y_test, reference=lgb_train)params = {'boosting_type': 'gbdt',             'objective': 'binary',             'num_leaves': 40,             'learning_rate': 0.1,             'feature_fraction': 0.9             }gbm = lgb.train(params,   lgb_train,   num_boost_round=200,   valid_sets=[lgb_train, lgb_eval],   valid_names=['train','valid'],  )结语集成学习和随机森林是强大的机器学习模型,机器学习从业者和数据科学家经常使用它们 。在本文中,我们介绍了提升集成学习的基本原理、应用场景,并介绍了其中最受欢迎的算法及其在Python中的使用方法 。




推荐阅读