手撕系列-AdaBoost

本文通过一个实例详细解析AdaBoost的计算过程,包括初始化、迭代计算和权重更新,展示了如何通过迭代训练多个弱分类器构建强分类器,解释了AdaBoost避免过拟合和高效性的特点,以及在大规模特征下的计算挑战。
摘要由CSDN通过智能技术生成

简介:

上次我们介绍过Adaboost是一种迭代算法,其核心思想是针对同一个训练集训练不同的分类器(弱分类器),然后把这些弱分类器集合起来,构成一个更强的最终分类器(强分类器)。

本次将通过一个简单示例,手撕拆解Adaboost的计算过程。本次是手撕模型系列第一篇,各位看官若有想了解的算法模型,欢迎留言,后续会根据个人能力安排!

一.   初始化阶段

给定下列的训练样本,使用AdaBoost算法学习得到一个强分类器。

序号

0

1

2

3

4

5

6

7

8

9

X

0

1

2

3

4

5

6

7

8

9

Y

1

1

1

-1

-1

-1

1

1

1

-1

初始化训练数据的权值分布,令每个权值W1i = 1/N = 0.1,其中,N = 10,i = 1,2, ..., 10,然后分别对于m = 1,2,3, ...等值进行迭代。

随机设定这10个数据的训练样本后,根据X和Y的对应关系,要把这10个数据分为两类,一类是“Y=1”,一类是“Y=-1”,根据数据的特点发现:“0 1 2”这3个数据对应的类是“1”,“3 4 5”这3个数据对应的类是“-1”,“6 7 8”这3个数据对应的类是“1”,9是比较独立的,对应类“-1”。抛开独立的9不讲,“0 1 2”、“3 4 5”、“6 7 8”这是3类不同的数据,分别对应的类是1、-1、1,直观上推测可知,可以找到对应的数据分界点,比如2-3之间(2.5)、5-6之间(5.5)、8-9(8.5)之间将那几类数据分成两类。下面实际计算下这个过程。

二.   迭代计算

第一次迭代m=1,在权值分布为D1(10个数据,每个数据的权值皆初始化为0.1)的训练数据上。

序号

0

1

2

3

4

5

6

7

8

9

X

0

1

2

3

4

5

6

7

8

9

Y

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值