一、元算法
元算法是对其他算法进行组合的一种方式。我们自然可以将不同的分类器组合起来,而这种组合结果则被称为集成算法或者元算法。
集成学习的结果通过投票法产生,即“少数服从多数”
从这个例子中得出:要获得好的集成,个体学习器应“好而不同”,即个体学习器要有一定的“准确性”,即学习器不能太坏,并且要有“多样性”,即学习器间具有差异。
集成学习适用于机器学习的几乎所有领域:回归,分类,推荐,排序
集成学习的的流程图:
集成学习的关键步骤:
如何构建不同的基学习器?
- 采用不同的学习算法,但使用相同的训练集。如stacking
2.采用相同的算法,但使用不同的参数
3.采用相同的学习算法,但使用不同的训练集
如何将基学习器结合起来
1.投票法,比如bagging
2.有权重的投票, 比如boosting
3.训练一个新模型来确定如何综合,比如stacking
二、Boosting
Boosting是基于所有分类器加权求和的方法。boosting中最流行的是AdaBoost。
AdaBoost的操作步骤为:
(1)首先,是初始化训练数据的权值分布D1。假设有N个训练样本数据,则每一个训练样本最开始时,都被赋予相同的权值:w1=1/N。
(2)然后,训练弱分类器hi。具体训练过程中是:如果某个训练样本点,被弱分类器hi准确地分类,那么在构造下一个训练集中,它对应的权值要减小;相反,如果某个训练样本点被错误分类,那么它的权值就应该增大。权值更新过的样本集被用于训练下一个分类器,整个训练过程如此迭代地进行下去。
α表示分类器的权重
如果样本被正确分类,那么该样本的权重更改为:
如果样本被错误分类,那么该样本的权重更改为:
(3)最后,将各个训练得到的弱分类器组合成一个强分类器。各个弱分类器的训练过程结束后,加大分类误差率小的弱分类器的权重,使其在最终的分类函数中起着较大的决定作用,而降低分类误差率大的弱分类器的权重,使其在最终的分类函数中起着较小的决定作用。
三、Bagging与随机森林
bagging是基于数据随机重抽样分类器构造的方法
自举汇聚法(bootstrap aggregating),也称为bagging方法,是在从原始数据集选择S次后得到S个新数据集的一种技术。新数据集和原数据集的大小相等。每个数据集都是通过在原始数据集中随机选择一个样本来进行替换而得到的。这里的替换就意味着可以多次地选择同一样本。这一性质就允许新数据集中可以有重复的值,而原始数据集的某些值在新集合中则不再出现。
bagging中比较著名的就是随机森林算法,他与bagging不同的是,bagging中的算法可以是多样的,但是随机森林就是使用决策树算法。
随机森林有两个特征:
1.数据的随机化:就是指数据集是随机取样的
2.待选特征的随机化:这里我们就可以看到随机森林与决策树的区别了
传统决策树在选择划分属性时是在当前结点的属性集合中选择一个最优属性;而在随机森林中,对基决策树的每个结点,先从该结点的属性集合中随机选择一个包含k个属性的子集,然后再从这个子集中选择一个最优属性用于划分。
K控制了随机性的引入程度,一般的
d表示当前的属性集合