机器学习之adaboost代码实现

本文详细介绍了如何实现Adaboost算法,包括数据集定义、最优决策树构造和连续属性离散化。通过代码展示每个步骤,并提供增加样本后的运行结果,帮助读者深入理解Adaboost的工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本博客主要实现adaboost算法依据以下数据集,如果关于adaboost算法有一些理论知识还不是很明白的,可以参考一下这篇博客
程序是我自己根据公式编写的,如果有错误的地方欢迎指正。
在这里插入图片描述
采用机器学习书中的算法步骤:
在这里插入图片描述
第一步:定义标签和数据集

def dataset():
data=[0,1,2,3,4,5,6,7,8,9]
labels=[1,1,1,-1,-1,-1,1,1,1,-1]
return data,labels

第二步:输入标签和数据集构造最优决策树。因为这里的样本是连续值,因此连续属性离散化技术在这里派上了用场。只需要求得该样本的候选划分点集合就可以了。候选划分点是每两者之间的平均值。

point=(np.array(data[:-1])+np.array(data[1:]))/2 #取data中相邻两者之间的平均值
结果:array([0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5])
一共有九个划分点

将每个划分点依次遍历,每个划分点分两种情况,第一将划分点左边的归为1,右边的归为-1;第二将划分点左边的归为-1,右边的归为1,最后取两者中loss最小的结果。bestpoint 返回总loss最小的值

    for i in point:      #遍历平
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值