04 集成学习 - Boosting - AdaBoost算法构建

简介:

03 集成学习 - Boosting - AdaBoost算法原理

十、AdaBoost算法构建

上一章最后说明了每个基模型的权值α是如何求得的,于是我就可以对模型进行更新操作了。

构建过程一

1、假设数据集: T={(X1,Y1),(X2,Y2),...(Xn,Yn)}

2、初始化训练数据权重分布:
D1={w11,w12,...,w1i,...,w1n},w1i = 1/n , i=1,2,3,...,n;
(初始化的样本等权分配,有n个样本,每个样本的权重就是1/n)
D1 - 第一个样本集。
w12 - 第1个样本集中的第2个样本。

3、使用具有权值分布Dm的训练数据集学习,得到基本分类器:
Gm(x):x → {-1,+1}
分类器得到的结果不是-1就是+1。

4、计算__Gm(x)__在训练集上的分类误差:

5、计算__Gm(x)__的权值系数αm:

第5步完成后,会将样本的权重进行改变,回到第1步构建D2。

总结:反复执行a~e步骤,迭代生成新的学习器。
a、更新样本权重。
b、建立"某种"基模型。
c、计算当前模型(train set)的误分率。
d、计算基模型的权值。
e、更新样本的权重,形成新的样本集。
求解顺序: D1→G1→ξ1→α1→D2....

构建过程二

6、新训练数据集的权重分布
解决问题:新的样本集的样本权重如何分配。
从下图中可以看到,从第二轮开始,样本权重不再是均分的了。
Dm+1 代表的是权重构成的向量。右边是它的计算公式。
公式分析:
wm,i 是上一轮迭代中该样本的权重。
e-αyG(x) 是上一轮迭代中的损失值。(类似损失)

样本权重的向量(左)、计算公式(右)

7、上面公式中的 Zm 是规范化因子(归一化)
归一化

8、构建基分类器的线性组合
求解顺序: D1→G1→ξ1→α1→D2....

9、得到最终分类器

至此,完成了整个AdaBoost的构建过程。
核心求解步骤再次强调: D1→G1→ξ1→α1→D2 ....


总结和回顾 AdaBoost和bagging算法的区别:

bagging算法不会改变原始数据集当中的数据取值,但是boosting算法会根据基模型建立的结果,通过某种方法,改变数据集的样子,来建立下一个基模型。
1、改变样本的权重。
2、改变模型权值。
改变以上两种权值,等价于改变了原始数据集的数据取值。

相关文章
|
机器学习/深度学习 Python
堆叠集成策略的原理、实现方法及Python应用。堆叠通过多层模型组合,先用不同基础模型生成预测,再用元学习器整合这些预测,提升模型性能
本文深入探讨了堆叠集成策略的原理、实现方法及Python应用。堆叠通过多层模型组合,先用不同基础模型生成预测,再用元学习器整合这些预测,提升模型性能。文章详细介绍了堆叠的实现步骤,包括数据准备、基础模型训练、新训练集构建及元学习器训练,并讨论了其优缺点。
1183 3
|
算法 数据安全/隐私保护
基于Adaboost的数据分类算法matlab仿真
本程序基于Adaboost算法进行数据分类的Matlab仿真,对比线性与非线性分类效果。使用MATLAB2022A版本运行,展示完整无水印结果。AdaBoost通过迭代训练弱分类器并赋予错分样本更高权重,最终组合成强分类器,显著提升预测准确率。随着弱分类器数量增加,训练误差逐渐减小。核心代码实现详细,适合研究和教学使用。
|
前端开发 Java 程序员
springboot 学习十五:Spring Boot 优雅的集成Swagger2、Knife4j
这篇文章是关于如何在Spring Boot项目中集成Swagger2和Knife4j来生成和美化API接口文档的详细教程。
2857 1
|
Java Spring
springboot 学习十一:Spring Boot 优雅的集成 Lombok
这篇文章是关于如何在Spring Boot项目中集成Lombok,以简化JavaBean的编写,避免冗余代码,并提供了相关的配置步骤和常用注解的介绍。
1311 0
|
机器学习/深度学习 算法 前端开发
集成学习任务七和八、投票法与bagging学习
集成学习任务七和八、投票法与bagging学习
563 0
|
机器学习/深度学习 算法
【机器学习】迅速了解什么是集成学习
【机器学习】迅速了解什么是集成学习
|
Java Maven Docker
gitlab-ci 集成 k3s 部署spring boot 应用
gitlab-ci 集成 k3s 部署spring boot 应用
|
消息中间件 监控 Java
您是否已集成 Spring Boot 与 ActiveMQ?
您是否已集成 Spring Boot 与 ActiveMQ?
697 0
|
监控 druid Java
spring boot 集成配置阿里 Druid监控配置
spring boot 集成配置阿里 Druid监控配置
1804 6
|
Java 关系型数据库 MySQL
如何实现Springboot+camunda+mysql的集成
【7月更文挑战第2天】集成Spring Boot、Camunda和MySQL的简要步骤: 1. 初始化Spring Boot项目,添加Camunda和MySQL驱动依赖。 2. 配置`application.properties`,包括数据库URL、用户名和密码。 3. 设置Camunda引擎属性,指定数据源。 4. 引入流程定义文件(如`.bpmn`)。 5. 创建服务处理流程操作,创建控制器接收请求。 6. Camunda自动在数据库创建表结构。 7. 启动应用,测试流程启动,如通过服务和控制器开始流程实例。 示例代码包括服务类启动流程实例及控制器接口。实际集成需按业务需求调整。
1349 4

热门文章

最新文章