Boosting:AdaBoost分模块python实现

本文介绍了AdaBoost的理论知识和Python实现。AdaBoost是一种自适应的Boosting算法,通过不断调整训练样本权重,使弱分类器提升为强分类器。文章详细阐述了算法的运行过程,包括权重调整和弱分类器的构建,并提供了具体的Python代码实现,包括数据导入、决策树构造、弱分类器训练和新数据分类。最后,给出了程序运行案例和相关资源链接。
摘要由CSDN通过智能技术生成

Adaboost的理论知识请参考文章:

Boosting:AdaBoost理论知识

  AdaBoosting(adaptive boosting自适应boosting的缩写)中“不足”是指被前一个弱学习器误分类的点,在下一次分类中被赋予更大的权重。与其他的Boosting实现不同的是这种算法可以适应各弱分类模型各自的训练误差。

其运行过程如下:

    训练数据中的每个样本,并赋予其一个权重,这些权重构成了向量D,这些权重初始值都相等。

    首先在训练集上训练出一个弱分类器,并计算该分类器的错误率,然后在同一数据集上再次训练弱分类器,

    在分类器二次训练中,将会重新调整每个样本的权重,其中,第一次分对的样本的权重将会降低,而第一次分错的权重将会提高。

    为了从所有弱分类器中得到最终的分类结果,AdaBoost为每个分类器都分配了一个权重值alpha,这些alpha值是基于每个弱分类器的错误率进行计算的。

Adaboost几个重要公式:


程序实现:

1、数据导入案例1:

2、建立简单判断逻辑,通过给定阈值,来判断分类

3、找到最低错误率的决策树

程序逻辑:

  • 将最小错误率min_error设为正无穷大

  • (第一层循环)对于数据集中的每一个特征x

    • (第二层循环)对于每个步长(等值分组)

      • (第三层循环)对于每个不等号(小于等于或者大于)

        • 建议一个单层决策树并利用加权数据集对它进行测试

        • 如果错误率低于min_error,则将当前单层决策树设为最佳单层决策树

  • 返回最佳决策树

案例运行结果:

....


4、AdaBoost的训练出一系列的弱分类器

程序逻辑:

  • 对于每次迭代

  • 利用build_tree()函数找到最佳的单层决策树

  • 将最佳单层决策树加入到但层决策树数组

  • 计算alpha值

  • 计算新的权重向量D

  • 更新累计类别估计值

  • 如果错误率等于0.0,则退出循环

程序运行案例:

5、利用训练出来的弱分类器模型对新数据进行分类

程序执行结果:

案例数据2:

程序实现情况:

程序及数据源:

数据链接:https://pan.baidu.com/s/1eRIFoXG 密码:y4s2

程序链接:https://pan.baidu.com/s/1slkJkBF 密码:hes9

参考书:机器学习实战,在参考案例的基础上,改进使用python3



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值