关于GBDT的理论介绍以及实际生活例子,可以看下面链接
http://www.360doc.com/content/14/0911/22/14875906_408775170.shtml
http://www.cnblogs.com/LeftNotEasy/archive/2011/03/07/random-forest-and-gbdt.html
这里展示如何对GBDT进行模型的训练,对数据进行预测(并非是分类),对返回值进行处理,评价模型好坏
背景是天池的IJICAI大赛,数据已经是处理好的,这里直接用
---------------------
作者:tuntunwang
来源:CSDN
原文:https://blog.csdn.net/tuntunwang/article/details/66969726
版权声明:本文为博主原创文章,转载请附上博文链接!
#$encoding=utf-8 ''' 环境 ubuntu+IDEA+python35 实现的功能:利用GBDT模型实现数值的预测 背景:天池的IJICAI,预测商店流量 PS:feature_data.csv是已经处理好的特征 ''' import numpy as np import pandas as pd from sklearn import ensemble, cross_validation #该评价指标用来评价模型好坏 def rmspe(zip_list,count): # w = ToWeight(y) # rmspe = np.sqrt(np.mean((y - yhat) ** 2)) sum_value=0.0 # count=len(zip_list) for real,predict in zip_list: v1=(real-predict)**2 sum_value += v1 v2=sum_value / count v3=np.sqrt(v2) return v3 #提取特征和目标值 def get_features_target(data): data_array=pd.np.array(data)#传入dataframe,为了遍历,先转为array features_list=[] target_list=[] for line in data_array: temp_list=[] for i in range(0,384):#一共有384个特征 if i == 360 :#index=360对应的特征是flow target_temp=int(line[i]) else: temp_list.append(int(line[i])) features_list.append(temp_list) target_list.append(target_temp) return features_list, target_list # return pd.DataFrame(features_list),pd.DataFrame(target_list) def run_demo(): feature_save_path = "/home/wangtuntun/IJCAI/Data/feature_data.csv" # 将最终生成的特征存入该文件 data = pd.read_csv(feature_save_path) data_other,data=cross_validation.train_test_split(data,test_size=0.001,random_state=10)#为了减少代码运行时间,方便测试 train_and_valid, test = cross_validation.train_test_split(data, test_size=0.2, random_state=10) train, valid = cross_validation.train_test_split(train_and_valid, test_size=0.01, random_state=10) train_feature, train_target = get_features_target(train) test_feature, test_target = get_features_target(test) valid_feature, valid_target = get_features_target(valid) params = {'n_estimators': 500, 'max_depth': 4, 'min_samples_split': 2, 'learning_rate': 0.01, 'loss': 'ls'} clf = ensemble.GradientBoostingRegressor(**params) clf.fit(train_feature, train_target) #训练 # mse = mean_squared_error(test_target, clf.predict(test_feature)) #预测并且计算MSE # print(mse) pre=clf.predict(test_feature) pre_list=list(pre) real_pre_zip=zip(test_target,pre_list) count=len(pre_list) error=rmspe(real_pre_zip,count) print(error) run_demo() --------------------- 作者:tuntunwang 来源:CSDN 原文:https://blog.csdn.net/tuntunwang/article/details/66969726 版权声明:本文为博主原创文章,转载请附上博文链接!
相关推荐
1.Python实现GBDT时间序列预测(完整源码和数据) anaconda + pycharm + python +Tensorflow 注意事项:保姆级注释,几乎一行一注释,方便小白入门学习! 2.代码特点:参数化编程、参数可方便更改、代码编程思路清晰...
在Python中,我们可以利用`sklearn`库或者`xgboost`库来实现GBDT。本教程将深入探讨如何使用Python实现GBDT的回归、二分类以及多分类任务,并通过可视化工具帮助理解其工作原理。 ### GBDT基础理论 GBDT的核心思想...
利用python实现GBDT算法的回归、二分类以及多分类,将算法流程详情进行展示解读并可视化,便于读者庖丁解牛地理解GBDT。 项目进度: 回归 二分类 多分类 可视化 算法原理以及公式推导请前往blog: 依赖环境 操作...
本压缩包文件"gbdt.zip"包含了使用Python实现GBDT模型的代码,这对于我们理解GBDT的工作原理以及如何在实际项目中应用非常有帮助。 首先,我们要理解GBDT的基本思想。GBDT的核心是梯度提升,它通过迭代地添加弱预测...
在本案例中,我们将关注GBDT的单机版Python实现,这对于理解和掌握算法的工作原理非常有帮助。 ### 1. GBDT算法简介 GBDT的核心思想是迭代地拟合残差,即每次训练一棵决策树来最小化前一轮所有树的预测值与真实值...
本文档详细介绍了如何使用 Python 和 GBDT (梯度提升树) 对股票的价格变化进行预测,覆盖了数据准备工作、模型构建、训练、评估和结果可视化的全过程。具体步骤包括通过 yfinance 下载特定时间段的苹果公司股票价格...
在本项目中,我们主要探讨的是使用Python编程语言来实现几种经典的机器学习算法,包括支持向量机(SVM)、逻辑回归(LR)、梯度提升决策树(GBDT)以及决策树,这些算法被用于垃圾短信的识别和分类任务。这个压缩包...
在这个项目中,我们将深入探讨如何使用Python进行GBDT模型的开发,包括训练和预测两个阶段。我们将参考CSDN上的文章(https://blog.csdn.net/iqdutao/article/details/107698851),该文章提供了详细的步骤和代码...
用Python代码实现了一个GBDT类,训练和预测数据,给出了运行示例。代码解释说明的博客地址:https://blog.csdn.net/u013172930/article/details/143473024
**GBDT二分类算法详解** GBDT,全称为Gradient Boosting Decision Tree,即梯度提升决策树,是一种集成学习方法,常用于回归和分类任务,包括二分类问题。本资料将深入探讨GBDT的原理、优缺点以及如何通过代码实现...
**Python库 azureml_contrib_gbdt-1.3.0-py3-none-any.whl** `azureml_contrib_gbdt` 是一个Python库,它是Azure Machine Learning(Azure ML)平台的一个扩展模块,专门用于支持梯度提升决策树(Gradient Boosting...
基于协同过滤算法和gbdt+lr算法实现推荐系统召回率模型和排序模型python源码.zip基于协同过滤算法和gbdt+lr算法实现推荐系统召回率模型和排序模型python源码.zip基于协同过滤算法和gbdt+lr算法实现推荐系统召回率...
LightGBM 是一个实现 GBDT 算法的框架,由微软 DMTK(分布式机器学习工具包)团队在 GitHub 上开源,具有以下优点: (1)更快的训练速度 (2)更低的内存消耗 (3)更好的准确率 (4)分布式支持,可以快速处理海量数据 与...
### R语言编写的GBDT算法知识点详解 #### 一、GBDT算法简介 梯度提升决策树(Gradient Boosting Decision Tree, GBDT)是一种基于机器学习中的集成学习方法,通过构建多棵弱分类器(通常是决策树)并进行加权组合...
梯度提升决策树(Gradient Boosting Decision Tree,简称GBDT)是一种广泛应用的机器学习算法,尤其在分类和回归任务中表现出色。它通过迭代地添加弱预测器来构建一个强预测模型,每次迭代都试图最小化残差或负梯度...
《GBDT源代码分析》 在机器学习领域,Gradient Boosting Decision Trees(GBDT)是一种广泛应用的算法,它通过组合一系列弱预测器构建一个强学习模型。本文将深入解析一篇由三位台湾参赛者在2014年Kaggle比赛中自编...
基于GBDT+LR算法融合搭建风控模型python实现源码+数据集+模型(毕业设计).zip基于GBDT+LR算法融合搭建风控模型python实现源码+数据集+模型(毕业设计).zip基于GBDT+LR算法融合搭建风控模型python实现源码+数据集+...
压缩包中的“GBDT”文件可能包含了使用不同编程语言(如Python的sklearn、xgboost或lightgbm库)实现的GBDT代码。这些代码通常包括数据预处理、模型训练、参数调优和性能评估等步骤,是理解GBDT算法和实践操作的...
梯度提升决策树(Gradient Boosted Decision Trees,简称GBDT)是一种被广泛使用的集成学习算法,它通过构建多个决策树来完成任务,每个决策树在前一个的基础上进行优化,以提升整体预测的准确性。由于篇幅限制,...
GBDT算法公式详解 GBDT(Gradient Boosting Decision Tree)是一种常用的机器学习算法,旨在解决分类和回归问题。它的核心思想是通过多棵决策树的集成来提高模型的泛化能力和准确性。 GBDT算法公式解析 GBDT算法...