python实现集成算法(随机森林、boosting算法、stacking算法)(小白入门超简单实战)

集成算法分为bagging、boosting、stacking三大类。

bagging算法:就是训练多个模型,求平均。如果自变量都是一样的,根据相同的自变量去训练多个模型求平均是没有意义的。所以bagging在训练时采取样本随机抽样,特征随机抽样,即采取自主采样法(bootstraping sampling)。
常见的bagging算法有Random Forest算法。
boosting算法:原模型=基模型+转化模型。
常见的有Adaboost算法、xgboost算法、GBDT算法。
stacking算法:用不同的算法去训练多个模型,把多个模型的输出结果作为自变量再去建一个模型。

随机森林:是一种由决策树构成的bagging集成算法,森林指的是很多棵树,随机指的是样本和特征都随机抽取(有放回的随机抽取,保证森林里面的每棵树都是不那么一样的)。分类时,让森林中的每一棵决策树进行分类,森林的输出结果就是最多的那个类别。回归就算所有决策树的平均值。
随机森林的重要参数:n_estimators#森林中树的数量
max_features#每棵树在随机选取特征时,特征的数量
max_depth#树的最大深度
min_samples_split#树节点最小分割的样本数
代码如下:python实现集成算法(随机森林、boosting算法、stacking算法)(小白入门超简单实战)_第1张图片

adaboost代码:
python实现集成算法(随机森林、boosting算法、stacking算法)(小白入门超简单实战)_第2张图片
GBDT梯度提升决策树代码:
python实现集成算法(随机森林、boosting算法、stacking算法)(小白入门超简单实战)_第3张图片
XGBoost代码:
python实现集成算法(随机森林、boosting算法、stacking算法)(小白入门超简单实战)_第4张图片
stacking代码:(忽略in[]括号里的顺序,按照代码排序运行即可,因为我反复运行程序了导致in[]顺序与代码排序不同)
python实现集成算法(随机森林、boosting算法、stacking算法)(小白入门超简单实战)_第5张图片python实现集成算法(随机森林、boosting算法、stacking算法)(小白入门超简单实战)_第6张图片

你可能感兴趣的:(算法,python,随机森林,集成学习,人工智能)