欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 产业 > GBDT 算法

GBDT 算法

2025/5/15 22:37:02 来源:https://blog.csdn.net/hawk2014bj/article/details/143865839  浏览:    关键词:GBDT 算法

GBDT 梯度决策提升树是将一些弱分类决策树的结果加在一起,每一棵决策树对前一颗觉得树残差进行优化,从而使得总体的损失值达到最小。

  • GBDT 公式
    Fm-1: 上一棵树的结果
    α \alpha α: 学习率
    hm(x): 当前树,通过训练调整结果,降低总体损失值
    在这里插入图片描述

sklearn 实现 GBDT

import numpy as np
from cart import TreeNode, BinaryDecisionTree, ClassificationTree, RegressionTree
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error
from utils import feature_split, calculate_gini, data_shuffle## 准备数据
import pandas as pd# 波士顿房价数据集的原始 URL
data_url = "http://lib.stat.cmu.edu/datasets/boston"# 从 URL 加载数据
raw_df = pd.read_csv(data_url, sep="\s+", skiprows=22, header=None)# 处理数据
data = np.hstack([raw_df.values[::2, :], raw_df.values[1::2, :2]])  # 拼接特征数据
target = raw_df.values[1::2, 2]  # 目标变量# 将数据和目标变量转换为 NumPy 数组
X = np.array(data)
y = np.array(target)
y = y.reshape(-1,1)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3)# 导入sklearn GBDT模块
from sklearn.ensemble import GradientBoostingRegressor
# 创建模型实例
reg = GradientBoostingRegressor(n_estimators=15, learning_rate=0.5,max_depth=3, random_state=0)
# 模型拟合
reg.fit(X_train, y_train.ravel())
# 模型预测
y_pred = reg.predict(X_test)
# 计算模型预测的均方误差
mse = mean_squared_error(y_test, y_pred)
print ("Mean Squared Error of sklearn GBRT:", mse)

总结

GBDT 通过组合决策树,从而达到最小化损失函数的目的。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词