赞
踩
学习目标
集成学习通过建立几个模型来解决单一预测问题。它的工作原理是生成多个分类器/模型,各自独立地学习和作出预测。这些预测最后结合成组合预测,因此优于任何一个单分类的做出预测。
只要单分类器的表现不太差,集成学习的结果总是要好于单分类器的
学习目标
目标:把下面的圈和方块进行分类
实现过程:
1.采样不同数据集
2.训练分类器
3.平权投票,获取最终结果
4.主要实现过程小结
在机器学习中,随机森林是一个包含多个决策树的分类器,并且其输出的类别是由个别树输出的类别的众数而定。
随机森林 = Bagging + 决策树
例如, 如果你训练了5个树, 其中有4个树的结果是True, 1个树的结果是False, 那么最终投票结果就是True
随机森林够造过程中的关键步骤(M表示特征数目):
1)一次随机选出一个样本,有放回的抽样,重复N次(有可能出现重复的样本)
2) 随机去选出m个特征, m <<M,建立决策树
思考
1. 实例化随机森林
# 随机森林去进行预测
rf = RandomForestClassifier()
2. 定义超参数的选择列表
param = {"n_estimators": [120,200,300,500,800,1200], "max_depth": [5, 8, 15, 25, 30]}
3. 使用GridSearchCV进行网格搜索
# 超参数调优
gc = GridSearchCV(rf, param_grid=param, cv=2)
gc.fit(x_train, y_train)
print("随机森林预测的准确率为:", gc.score(x_test, y_test))
注意
Bagging + 决策树/线性回归/逻辑回归/深度学习… = bagging集成学习方法
经过上面方式组成的集成学习方法:
均可在原有算法上提高约2%左右的泛化正确率
简单, 方便, 通用
sklearn.ensemble.RandomForestClassifier()
在随机森林构造过程中,如果进行有放回的抽样,我们会发现,总是有⼀部分样本我们选不到。
随机森林的 Bagging 过程,对于每⼀颗训练出的决策树 g ,与数据集 D 有如下关系:
对于星号的部分,即是没有选择到的数据,称之为 Out-of-bag(OOB)数据,当数据⾜够多,对于任意⼀组数据 (x , y ) 是包外数据的概率为:
由于基分类器是构建在训练样本的⾃助抽样集上的,只有约 63.2% 原样本集出现在中,⽽剩余的 36.8% 的数据作为包 外数据,可以⽤于基分类器的验证集。
经验证,包外估计是对集成分类器泛化误差的无偏估计. 在随机森林算法中数据集属性的重要性、分类器集强度和分类器间相关性计算都依赖于袋外数据。
otto案例介绍 – Otto Group Product Classification Challenge
请参考:【机器学习】otto案例介绍
学习目标
随着学习的积累从弱到强
简而言之:每新加入一个弱学习器,整体能力就会得到提升
代表算法:Adaboost,GBDT,XGBoost,LightGBM
1.训练第⼀个学习器
2.调整数据分布
3.训练第二个学习器
4.再次调整数据分布
5.依次训练学习器,调整数据分布
6.整体过程实现
该假设每个训练样本在基分类器的学习中作⽤相同,这⼀假设可以保证第⼀步能够在原始数据上学习基 本分类器H (x)
如何确认投票权重?
如何调整数据分布?
给定下面这张训练数据表所示的数据,假设弱分类器由xv产⽣,其阈值v使该分类器在训练数据集上的分类误差率最低,试用Adaboost算法学习⼀个强分类器。
问题解答:
当m=1的时候:
(a)在权值分布为D1的训练数据上,阈值v取2.5时分类误差率最低,故基本分类器为:
6,7,8被分错
当m=3的时候:
(a)在权值分布为D 的训练数据上,阈值v取5.5时分类误差率最低,故基本分类器为:
from sklearn.ensemble import AdaBoostClassifier
api链接:https://scikitlearn.org/stable/modules/generated/sklearn.ensemble.AdaBoostClassifier.html#sklearn.ensemble.AdaBoost Classifier
什么是Boosting
bagging和boosting的区别
区别⼀:数据方面
区别⼆:投票方面
区别三:学习顺序
区别四:主要作用
AdaBoost构造过程
梯度提升决策树(GBDT Gradient Boosting Decision Tree) 是一种迭代的决策树算法,该算法由多棵决策树组成,所有树的结论累加起来做最终答案。它在被提出之初就被认为是泛化能力(generalization)较强的算法。近些年更因为被用于搜索排序的机器学习模型而引起大家关注。
GBDT = 梯度下降 + Boosting + 决策树
GBDT 的全称是 Gradient Boosting Decision Tree,梯度提升树,在传统机器学习算法中,GBDT算的上TOP3的算法。 想要理解GBDT的真正意义,那就必须理解GBDT中的Gradient Boosting 和Decision Tree分别是什么?
提升树算法:
上面两节分别将Decision Tree和Gradient Boosting介绍完了,下面将这两部分组合在⼀起就是我们的GBDT了。
GBDT算法:
如果上式中的hi(x)=决策树模型,则上式就变为:
GBDT = 梯度下降 + Boosting + 决策树
预测编号5的身高:
第一步:计算损失函数,并求出第一个预测值:
第二步:求解划分点
得出:年龄21为划分点的方差=0.01+0.0025=0.0125
第三步:通过调整后目标值,求解得出h1(x)
第四步:求解h2(x)
得出结果:
编号5身高 = 1.475 + 0.03 + 0.275 = 1.78
1.使用梯度下降法优化代价函数;
2.使用一层决策树作为弱学习器,负梯度作为目标值;
3.利用boosting思想进行集成。
泰勒展开越多,计算结果越精确
小结
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。