Adaboost实现鸢尾花分类

1.Aadboost算法

boosting思想算法

boosting算法是将弱学习器提升为强学习器的算法,其思想是用几个仅比随机猜测好的傻子学习器反复进行学习,每次学习时候都更关注上次分类错误的样本,过程如下:

  1. 从初始训练集训练一个基学习器:从训练集D中以无放回抽样方式随机抽取一个训练子集d1,用于弱学习机C1的训练。
  2. 根据基学习器的表现对样本进行调整,使先前分类错误的样本在下一次训练时得到更多的关注。
  3. 基于调整后的样本分布来训练下一个学习器。
  4. 重复进行,直到基学习器数目达到指定值T,将这T个学习器进行投票,组成多个弱学习器。

adaboost算法模型

Adaboost与原始的boosting过程不同,它使用整个训练集来训练弱学习机,其中训练样本在每次迭代中都会被重新赋予一个权重,在上一弱学习机错误的基础上进行学习,进而构建一个更加强大的分类器。

adaboost提高过程
  1. 训练过程:
    -对于每一个新的学习器,AdaBoost改变训练数据的权值,也就是样本的概率分布,其思想是将关注点放在被错误分类的样本上,减小上一轮被正确分类的样本权值,提高那些被错误分类的样本权值。然后,再根据所采用的一些基本机器学习算法进行学习。

  2. 集成过程
    -AdaBoost采用加权多数表决的方法,加大分类误差率小的弱分类器的权重,减小分类误差率大的弱分类器的权重。使正确率更高的分类器有更大的发言权

adaboost集成过程
  1. 在训练集中,给所有样本赋予相同的权重。比如训练集有m个样本,那么每
    个样本的权重都是1/m。
  2. 根据给定的迭代次数n,进行n次循环,其中第j次做如下操作:
  3. 训练一个加权的弱学习机:Cj = train(X, y, W)。W表示所有样本的权重矩阵。
  4. 用这个加权的弱学习机预测样本类标y’ = predict(Cj, X)。
  5. 计算权重错误率:
    ε= W(Y’ != Y)= w1(y1’ != y1) + w2(y2’ != y2) +…+ wn(yn’ != yn) ,
    Y’表示预测结果矩阵,Y表示真实类别矩阵。
    如果弱分类器预测错误,(yj’ != yj) == 1;
    如果弱分类器预测正确,(yj’ != yj) == 0。
    如果权重错误率ε= 0,则跳出循环,不用继续迭代了。
  6. 计算相关系数:αj =0.5*ln((1 - ε) / ε)。错误率越低,相关系数αj越大,这相当于给分类效果好的分类器在最后的投票中赋予更大的权重。
  7. 更新权重:
    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。
    在更新权重这一步,实现了对误分类的样本赋予更高的权重。
  8. 归一化权重,使其和为1。(3)~(8)为一个迭代。<
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值