智能计算平台应用开发(中级)-第8章-机器学习基础算法建模-集成学习算法

第8章?机器学习基础算法建模

目录

1.机器学习

2.分类算法

3.回归算法

4.集成学习算法

5.聚类算法

6.关联规则算法

7.智能推荐算法

l 在机器学习的有监督学习算法中,目标是学习出一个稳定的且在各个方面表现都较好的模型,但实际情况往往达不到理想状态,有时只能得到多个有偏好的模型(弱分类器,在某些方面表现较好)。

?集成学习是组合多个弱分类器,得到一个更好且更全面的强分类器,即将多个分

类器聚集在一起,以提高分类的准确率。

?这些分类器可以是不同的算法,也可以是相同的算法。如果把单个分类器比作一

个决策者,那么集成学习的方法就相当于多个决策者共同进行一项决策。

集成学习

l集成学习的作用

将多个弱分类器合并,实现更好的效果。

l分类器间存在一定的差异性,会导致分类的边界不同,可以理解为分类器是一个比较专精的专家,它有它自己一定的适用范围和特长。

l通过一定的策略将多个弱分类器合并后,即可拓展模型的适用范围,减少整体

的错误率,实现更好的效果。

l 数据过大时会导致训练一个模型太慢,而集成学习可以分别对数据集进行划分和有放回的操作,从而产生不同的数据子集,再使用数据子集训练不同的分类器,

最终再将不同的分类器合并成为一个大的分类器。

l 数据过小时则会导致训练不充分,而集成学习可以利用Bootstrap 方法进行抽样,得到多个数据集,分别训练多个模型后再进行组合。如此便可提高训练的准确度

和速度,使得之前很难利用的数据得到充分的利用。集成学习在各个规模的数据集上都有很好的策略。

将多个模型进行融合。

l对于存在多个异构的特征集的时候,很难进行融合,可以考虑使用集成学习的方式,将每个数据集构建一个分类模型,然后将多个模型进行融合。

l目前常见的集成学习算法p Boosting

p Bagging

Boosting ?Boosting 方法是一种用于提高弱分类器准确度的方法,这种方法从原始训练数

据出发,通过调整训练数据的概率分布(权值分布)来生成多个子分类器,多

个子分类器的产生是有序的,即一个分类器依赖于前一个分类器,并且着重关

注于前一个分类器错误分类的样本,提升错误分类样本的权重,由于新的分类

器重点关注错误分类的样本,生成新的分类器的过程中就会不断的降低误差,

从而降低整个模型的偏差。

Boosting

Boosting——Adaboost算法

l Adaboost是Boosting中较为代表的算法,基本思想是通过训练数据的分布构造一个分类器,然后通过误差率求出这个弱分类器的权重,通过更新训练数据的分布,迭代进行,直至达到迭代次数或者

损失函数小于某一阈值。

l由于Adaboost属于Boosting中的算法,采用的是加权模型,对每个学习器的输出结果加权处理,只会得到一个输出预测结果,所以标准的Adaboost只适用于二分类任务。

Boosting——Adaboost算法的数据输入l Adaboost算法的输入要求

p训练数据集。

p各个弱分类器。

Boosting——Adaboost算法的输出l Adaboost算法通过模型训练后的输出为强分类器。

l Adaboost算法的优点

可以将不同的分类算法作为弱分类器。

很好的利用了弱分类器进行级联。

具有很高的精度。

l Adaboost算法的缺点

容易受到噪声干扰。

训练时间过长。

执行效果依赖于弱分类器的选择。

Boosting——Adaboost算法的应用Adaboost算法主要应用方向

用于特征选择;

用于做分类任务的baseline;

用于对badcase的修正。

l Python机器学习库scikit-learn的ensemble模块提供的AdaBoostClassifier类用于构建Adaboost 模型。

l AdaBoostClassifier类基本使用语法

sklearn.ensemble.AdaBoostClassifier(base_estimator=None, n_estimators=50, learning_rate=1.0, algorithm='SAMME.R', random_state=None)

l AdaBoostClassifier 类的主要参数及其说明

参数名称

说明base_estimator

接收object 。表示选择的分类学习器,默认为“DecisionTreeClassifier ”n_estimators 接收int 。表示弱学习器的最大迭代次数,默认为50

learning_rate 接收float 。表示每个弱学习器的权重缩减系数,取值范围为0到1,默认为1.0

algorithm 接收str 。选择Adaboost 分类算法,可选择的值为“SAMME ”和“SAMME.R ”,其含义如下“SAMME ”:使用对样本集分类效果作为弱学习器权重

“SAMME.R ”:使用对样本集分类的预测概率大小作为弱学习器权重

默认为“SAMME.R ”

l GBDT全称为Gradient Boosting Decision Tree(梯度提升迭代决策树),是一种基于迭代所构造的决策树算法,这种算法在实际问题中将生成多棵决策树,并将所有树的结果进行汇总而得到最终答案。

所以该算法将决策树与集成思想进行了有效的结合。

l GBDT是由梯度提升(Gradient Boosting,GB)算法而来。

l GB算法的主要思想

p在之前建立模型的损失函数的梯度下降方向上建立新的模型。

l损失函数

p损失函数是评价模型性能(一般为拟合程度+正则项),认为损失函数越小,性能越好。

p让损失函数持续下降,可以使得模型不断调整提升性能,其最好的方法是使损失函数沿着

梯度方向下降。

l GBDT在GB算法的基础上,通过损失函数的负梯度的进行损失误差的拟合,从而解决分类回归问题。

Boosting——GBDT算法的数据输入l GBDT算法的输入要求

p训练数据集。

p基于决策树算法的弱分类器。

Boosting——GBDT算法的输出l GBDT算法通过模型训练后的输出为强分类器。

相关主题
相关文档
最新文档