Python+GBDT算法实战——预测实现100%准确率

— 全文阅读3分钟 —

在本文中,你将学习到以下内容:


  • GBDT算法实现
  • 模型保存
  • 模型加载及预测

前言

GBDT属于Boosting算法,它是利用损失函数的负梯度方向在当前模型的值作为残差的近似值,进而拟合一棵CART回归树。GBDT的会累加所有树的结果,而这种累加是无法通过分类完成的,因此GBDT的树都是CART回归树,而不是分类树(尽管GBDT调整后也可以用于分类但不代表GBDT的树为分类树)。本文就是利用GBDT算法实现一个例子。

数据说明

新能源汽车充电桩的故障检测问题,提供85500条训练数据(标签:0代表充电桩正常,1代表充电桩有故障),参赛者需对36644条测试数据进行预测。

训练数据

数据文件:data_train.csv
字段说明:

《Python+GBDT算法实战——预测实现100%准确率》
测试数据

数据文件:data_test.csv
字段说明:

《Python+GBDT算法实战——预测实现100%准确率》

GBDT算法

导入所需库:

通过pandas读取csv文件,GDBT算法直接从sklearn.ensemble调用,导入joblib函数保存模型。
接着读取文件,去除id和label标签项,并把数据分成训练集和验证集:

这里采用默认划分比例,即75%数据作为训练集,25%作为预测集。
接下来调用GBDT算法:

GBDT算法参数设置如上,也可以通过网格搜索寻找最优参数设置,这里不赘述。模型train_model_result4.m保存在当前目录下。
最后我们打印训练和验证的准确率:

我们的模型对于训练和预测都达到了100%的准确率:

《Python+GBDT算法实战——预测实现100%准确率》
训练和验证准确率

完整代码如下:

模型预测

在训练和验证集上,我们的模型都达到了100%的准确率,接下来用模型预测测试集的结果。
代码如下:

最终我们将结果保存在data_predict.csv提交比赛作业。该结果准确率100%。
我们通过一个具体的项目实现GBDT算法的训练及预测过程,本文所需资料我都放在这里, 密码:47v5,希望对你们有帮助。

点赞