1.Aadboost算法
boosting思想算法
boosting算法是将弱学习器提升为强学习器的算法,其思想是用几个仅比随机猜测好的傻子学习器反复进行学习,每次学习时候都更关注上次分类错误的样本,过程如下:
- 从初始训练集训练一个基学习器:从训练集D中以无放回抽样方式随机抽取一个训练子集d1,用于弱学习机C1的训练。
- 根据基学习器的表现对样本进行调整,使先前分类错误的样本在下一次训练时得到更多的关注。
- 基于调整后的样本分布来训练下一个学习器。
- 重复进行,直到基学习器数目达到指定值T,将这T个学习器进行投票,组成多个弱学习器。
adaboost算法模型
Adaboost与原始的boosting过程不同,它使用整个训练集来训练弱学习机,其中训练样本在每次迭代中都会被重新赋予一个权重,在上一弱学习机错误的基础上进行学习,进而构建一个更加强大的分类器。
adaboost提高过程
-
训练过程:
-对于每一个新的学习器,AdaBoost改变训练数据的权值,也就是样本的概率分布,其思想是将关注点放在被错误分类的样本上,减小上一轮被正确分类的样本权值,提高那些被错误分类的样本权值。然后,再根据所采用的一些基本机器学习算法进行学习。 -
集成过程
-AdaBoost采用加权多数表决的方法,加大分类误差率小的弱分类器的权重,减小分类误差率大的弱分类器的权重。使正确率更高的分类器有更大的发言权
adaboost集成过程
- 在训练集中,给所有样本赋予相同的权重。比如训练集有m个样本,那么每
个样本的权重都是1/m。 - 根据给定的迭代次数n,进行n次循环,其中第j次做如下操作:
- 训练一个加权的弱学习机:Cj = train(X, y, W)。W表示所有样本的权重矩阵。
- 用这个加权的弱学习机预测样本类标y’ = predict(Cj, X)。
- 计算权重错误率:
ε= W(Y’ != Y)= w1(y1’ != y1) + w2(y2’ != y2) +…+ wn(yn’ != yn) ,
Y’表示预测结果矩阵,Y表示真实类别矩阵。
如果弱分类器预测错误,(yj’ != yj) == 1;
如果弱分类器预测正确,(yj’ != yj) == 0。
如果权重错误率ε= 0,则跳出循环,不用继续迭代了。 - 计算相关系数:αj =0.5*ln((1 - ε) / ε)。错误率越低,相关系数αj越大,这相当于给分类效果好的分类器在最后的投票中赋予更大的权重。
- 更新权重:
W = Wexp(-αj * Y’ * Y),*
如果某个样本预测错了,则:
yj’ * yj == -1,-αj * yj’ * yj > 0,exp(-αj * yj’ * yj) > 1
(exp(x)是计算e的x次方的指数函数),wj * exp(-αj * yj’ * yj) > wj。
在更新权重这一步,实现了对误分类的样本赋予更高的权重。 - 归一化权重,使其和为1。(3)~(8)为一个迭代。<