元算法(集成方法):是对其他算法组合的一种方式。(K近邻、朴素贝叶斯、逻辑回归、决策树、支持向量机)、
集成形式:不同算法的集成;同一算法在不同设置下的集成;数据集不同部分分配给不同分类器之后的集成。
代表:AdaBoost
1.基于数据集多重抽样的分类器
1.1 bagging(自举汇聚法):基于数据随机抽样的分类器构建方法
算法过程:
- 从原始数据集中抽新数据集。每次抽取n个样本,原始数据集中的某个样本可能被抽取多次,也可能未被抽取到。从原始数据集选择S次后得到S个新数据集。
- 运用某个分类器分别在S个新数据集上训练,得到S个分类/回归模型
- 对分类问题:将上步得到的S个模型采用投票的方式得到分类结果(选择分类器投票结果中最多的类别作为最后的分类结果;
- 对回归问题,计算上述模型的均值作为最后的结果。(所有模型的重要性相同)
代表:随机森林
1.2 boosting
不同分类器通过串行训练而获得,每个新分类器都根据已训练出的分类器的性能来进行训练。boosting是集中关注被已有分类器错分的数据来获得新的分类器。分类结果基于所有分类结果加权求和
AdaBoosting方式每次使用的是全部的样本,每轮训练改变样本的权重。下一轮训练的目标是找到一个函数f 来拟合上一轮的残差。当残差足够小或者达到设置的最大迭代次数则停止。Boosting会减小在上一轮训练正确的样本的权重,增大错误样本的权重。(对的残差小,错的残差大)。梯度提升的Boosting方式是使用代价函数对上一轮训练出的模型函数f的偏导来拟合残差。
1.3 对比
Bagging和Boosting的区别:
1)样本选择上:
Bagging:训练集是在原始集中有放回选取的,从原始集中选出的各轮训练集之间是独立的。
Boosting:每一轮的训练集不变,只是训练集中每个样例在分类器中的权重发生变化。而权值是根据上一轮的分类结果进行调整。
2)样例权重:
Bagging:使用均匀取样,每个样例的权重相等
Boosting:根据错误率不断调整样例的权值,错误率越大则权重越大。
3)预测函数:
Bagging:所有预测函数的权重相等。
Boosting:每个弱分类器都有相应的权重,对于分类误差小的分类器会有更大的权重。
4)并行计算:
Bagging:各个预测函数可以并行生成
Boosting:各个预测函数只能顺序生成,因为后一个模型参数需要前一轮模型的结果。
5)为什么说bagging是减少variance,而boosting是减少bias?
2.训练算法:基于错误提升分类器的性能
思考:能否使用弱分类器和多个实例来构建一个强分类器?
“弱”意味着分类器的性能比随机猜测要好,但是也不会好太多,在二分类情况下,错误率会高于50%;“强”分类器的错误率将会低很多。
AdaBoost(Adaptive 自适应boosting的缩写)
符号定义:
向量D为训练集中每个样本的权重
弱分类器的错误率
运行过程:
- List item