Boosting:AdaBoost分模块python实现
来源:互联网 发布:织梦cms源码分析 编辑:程序博客网 时间:2024/06/05 00:11
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
- Boosting:AdaBoost分模块python实现
- Boosting, Online Boosting,adaboost
- Boosting, Online Boosting,adaboost
- Boosting, Online Boosting,adaboost
- Boosting, Online Boosting,adaboost
- Boosting,AdaBoost ,Online Boosting,online Adaboost介绍
- 集成学习之bagging、boosting及AdaBoost的实现
- boosting(AdaBoost)算法
- Adaboost与boosting
- Boosting & AdaBoost算法
- Adaboost(Adaptive boosting)
- boosting和adaboost区别
- Adaptive Boosting(AdaBoost)
- 【机器学习】Boosting&Adaboost
- Boosting and AdaBoost
- boosting、Adaboost、CascadeAdaboost算法
- Boosting:AdaBoost理论知识
- AdaBoost------Python实现二
- VBA案例10:其他案例(自动填写公式、合并多个sheet等)
- Visual Studio 2017 发布 15.5 版本,百度网盘离线安装包下载。
- VBA案例3:合并多个结构相同的文件
- 洛谷P2234 [HNOI2002]营业额统计_Splay
- Python基础知识6:格式化字符、颜色
- Boosting:AdaBoost分模块python实现
- python数据分析及处理案例技巧11-20(基于jupyter)
- python数据分析及处理案例技巧1-10(基于jupyter)
- 朴素贝叶斯案例2:拼写纠错(python实现)
- Struts2+Spring3+MyBatis3整合以及Spring注解开发
- 概率论与数理统计1:基础知识
- 贝叶斯基础理论及思想介绍
- 贝叶斯案例3:文本关键词提取、新闻分类(python实现)
- ssm 分页