机器学习 基本算法 (5 (adaboost、 Gradient boost

adaboost

boosting: 增强的 adaboost 适应的增强
适应的增强 就是给你好多个弱的方案,让你经过不断地适应增强 得到一个新的好方案。
就是让孩童来讨论一个问题,比如什么是太阳 一人只能说一条
那就有很多说法 太阳是圆的,发光的 等等
但每个人说法都是片面的 弱的
adaboost的所求目标
这里写图片描述
这里 我们要得个每个 弱方案的权重 和弱方案

对第一个方案,给每一个样本都赋予一个权重 w,这些权重变成了D向量
用任意的弱方法 做分类。
因为是弱方法,肯定会有很多错误。错误率 e e=
好了 这个弱方案的权重就订下来了 做对越多 权重越高
(但弱方案 权重高也高不到哪去,这是为了防止 被独占了发言权)

权重随你定 这边用 12ln1ee

好 那下一个方案也可以出来了 什么叫自适应 就是在原来的地方 自己调整
把那些做错的给注明出来 对的先不看了 (就是 增加做错的权重)
这个方法也很多
这边用 做对的 Dt+1i=DtieaSum(D)
做错的 Dt+1i=DtieaSum(D)

好了 新的方案也找出来了 开始进行下一轮讨论

直到完成目标

Gradient boost

在分类问题中adaboost可以很有作用 但是如果是回归的问题 就不能用adaboost这样来做
Gradient boost 梯度优化 既然不能直接优化 ,我改用梯度不就行了,梯度下降来拟合数据

adaboost 每轮直接定权重 Gradient boost 计算残差(实值和计算值的差) 梯度逼近残差
转化成数学计算 就是算下面这个
这里写图片描述
找一个最优的属性划分,使得两侧的真实值与各自平均值的差的平方和最小。然后求每个值的余数,进行下一次划分。
然后再确定权重

这里写图片描述

值得注意的是 求出g权重后 最后还要对η最优化 ,不过η只需要求导即可。

Gradient boost就是每次都是整体取 最优 而adaboost是把当前次的做到最好

代码

#Import Library
from sklearn.ensemble import GradientBoostingClassifier
# X  Y for training data set and x_test_dataset
# Create Gradient Boosting Classifier object
model= GradientBoostingClassifier(n_estimators=100, learning_rate=1.0, max_depth=1, random_state=0)

model.fit(X, y)
#Predict Output
predicted= model.predict(x_test)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值