机器学习之集成学习(三)Boosting回归算法实现

集成模型一览

在这里插入图片描述

boosting思想

  • 先构建,后结合
  • 个体学习器之间存在强依赖关系,一系列个体学习器基本都需要串行生成,然后使用组合策略,得到最终的集成模型,这就是boosting的思想
    在这里插入图片描述

boosting回归例题

在这里插入图片描述
注:每一轮的训练集发生变化(标签变为了残差),即下一个模型要基于新训练集进行学习,学习完毕后,将所有模型简单叠加,就得到了最终模型
在这里插入图片描述

代码实现

import pandas as pd
from sklearn.tree import DecisionTreeRegressor

df = pd.DataFrame([[1,5.56],[2,5.7],[3,5.91],[4,6.4],[5,6.8]
                   ,[6,7.05],[7,8.9],[8,8.7],[9,9],[10,9.05]],columns=["x","y"])

M = [] # 存储决策树模型的数组
n_trees = 6  # 设置树的颗数
X = df.iloc[:,:-1] # 获取全部数据的X
Y = pd.Series(df['y'])


for i in range(n_trees):
    model = DecisionTreeRegressor(max_depth=2)  # 新建决策树模型
    model.fit(X,Y)
    # 将决策树模型加入数组
    M.append(model)
    Y_het = model.predict(X) # 输出模型预测值
    Y = Y - Y_het


res = 0 # 初始化全零向量
for i in M: # 遍历模型数组
    res += i.predict(X) # 将每个模型预测值叠加到res变量
# 输出最终对每个样本标签的预测值
print(res)
'''
# 效果
[5.56       5.7        5.91       6.4        6.8        7.05
 8.91388889 8.73055556 8.95555556 9.05      ]
'''
  • 3
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值