阿里天池大数据竞赛实战:RF&GBRT 完成过程

一点比赛心得,供不太熟悉Xlab RF和GBRT调用的同学参考,不喜勿喷,大神绕道----------

6月初的时候LR 做到4.9后一直上不去,看群里火热的讨论RF,转而使用RF,几经折腾上手后,在当时的那批对LR来说很好的特征处理下,结果F1只有3.5左右,心灰意冷。。。然后又看到火热讨论GBRT,再转gbrt,刚上手,效果和RF差不多,看到别的同学直接从LR转到RF和GBRT都效果好很多,那个急啊,然后又是考试周,就一直拖拉到6月下旬,终于下定决心重新做一遍,因为gbrt训练时间比较长,且RF和GBRT对特征的效果相当,RF预测时间相对较短一些,便重新做RF,慢慢的有效果了,停止了F1终于开始往上涨:4.9->5.16->5.66...最近开始再添加特征,相信还会有提升,下面把我们的RF和GBRT的训练和预测方法大概讲一下(主要以截图为主)

1、Xlab GBRT上手

准备

训练的特征表gbrt_offline_section_one_24格式为:user_id,brand_id,feature1,feature2...Label

见下图:

1.2 、建立特征稀疏表,为训练做准备

特征稀疏表可直接在Xlab由原始特征表转换得到,截图如下

进入普通表转稀疏矩阵界面后,在选择列里填上: user_id对应的列号(表默认从0列开始),brand_id对应的列号,以及想要使用的众多特征对应的列号(不需要填写标签对应的列号!!!);然后在输出表里填上转换成的稀疏矩阵:gbrt_offline_section_one_24_1;如下图

1.3 、GBRT训练

利用训练的特征表gbrt_offline_section_one_24,进行GBRT训练,如下图所以

进入配置界面,勾选训练的标签,稀疏矩阵名处输入刚才转好的稀疏矩阵gbrt_offline_section_one_24_1,模型输出表处填写模型输出表名,参数配置处根据效果进行配置(最开始默认就可以的)。如下图所示:

配置好只好就可以进行训练了,等待训练好之后等到GBRT预测模型:gbrt_offline_section_one_25;

1.4、GBRT预测特征表准备

训练的特征表gbrt_offline_section_two_11格式与训练特征表格式一样,为:user_id, brand_id, feature1, feature2...Label 见下图:

1.5、建立预测稀疏矩阵表

特征稀疏表可直接在Xlab由原始特征表转换得到,方法和原来一样,直接截图如下:

需要注意的是,选择列必须和训练时候一样!!!

1.6、GBRT预测

利用转好的预测稀疏矩阵表gbrt_offline_section_two_11_1进行预测,如下图所示

进入界面如下:model 处填写刚才训练好的GBRT模型表:gbrt_offline_section_one_25;输出表名处填写预测结果输出表 gbrt_offline_section_two_13,然后进行预测,如下图所示:

1.7、GBRT碎碎念

GBRT预测好之后,得到的结果为与原始预测表gbrt_offline_section_two_11一一对应的单列值y_var(搞不懂为什么不提供类似RF那样预测结果追加user_id,brand_id 列),如下图:

所以,还得进行追加ID列,进行zxs_gbrt_offline_section_two_13_1和zxs_gbrt_offline_section_two_11_1两张表的合并,得到类似user_id,brand_id,y_val的表,取阈值进行推荐就可以了,下图为xlab里提供的脚本,追加ID列代码。

另外:附上脚本实现的代码,方便测试:

2、Xlab RF上手

2.1、训练特征表准备

训练的特征表

2.2、RF训练

利用训练的特征表gbrt_offline_section_one_24,进行RF训练,如下图所以

进入配置界面,在Features 框里勾选训练特征以及该特征连续与否,在Class框里目标处选择标签列,模型输出表处填写输出模型表名:gbrt_offline_section_one_25;进一步,点击参数配置选项卡,进入参数配置界面,进行参数配置,我们主要配置了树的棵树,配置好后,进行训练,如下图所示:

训练结束,得到RF模型表gbrt_offline_section_one_25。

2.3、RF预测

利用预测特征表gbrt_offline_section_two_11进行RF预测,如下图所示:

进入配置界面:在结果附加列中添加user_id ,brand_id 列,勾选目标列2分类,主分类为1,这样预测结果表中就会给出预测为1 的概率值,输出信息处填写预测输出表,进行预测,如下图:

预测完成之后即可根据conclusion=1判断预测的正样本,或者根据probability阈值判断(从一位哈工大同学大帅那里得到了如下控制推荐条数的好方法),如下图:

(via: http://blog.csdn.net/u010691898/article/details/37567783)

原文发布于微信公众号 - 大数据挖掘DT数据分析(datadw)

原文发表时间:2015-07-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏量子位

OpenCV+深度学习预训练模型,简单搞定图像识别 | 教程

李林 编译自 pyimagesearch 作者 Adrian Rosebrock 量子位 报道 | 公众号 QbitAI ? OpenCV是一个2000年发布的...

4596
来自专栏ATYUN订阅号

深度学习图像识别项目(中):Keras和卷积神经网络(CNN)

在下篇文章中,我还会演示如何将训练好的Keras模型,通过几行代码将其部署到智能手机上。

6245
来自专栏量子位

深度学习动手入门:GitHub上四个超棒的TensorFlow开源项目

问耕 编译自 Source Dexter 量子位 出品 | 公众号 QbitAI 作者简介:akshay pai,数据科学工程师,热爱研究机器学习问题。Sour...

4719
来自专栏IT派

如何用 OpenCV、Python 和深度学习实现面部识别?

这篇文章首先将简单介绍下基于深度学习的面部识别的工作原理,以及“深度度量学习”(deep metric learning)的概念。接下来我会帮你安装好面部识别需...

893
来自专栏机器之心

资源 | ChainerCV:基于Chainer的深度学习计算机视觉实用库(内含工具集)

选自GitHub 作者:二井谷勇佑(Yusuke Niitani) 机器之心编译 参与:黄小天、蒋思源 近日,Preferred Networks 通过其研究博...

27211
来自专栏机器之心

资源 | XGBoost 中文文档开放:上去就是一把梭

27911
来自专栏ATYUN订阅号

【实践操作】:六步教你如何用开源框架Tensorflow对象检测API构建一个玩具检测器

TensorFlow对象检测API是一个建立在TensorFlow之上的开源框架,可以轻松构建,训练和部署对象检测模型。 到目前为止,API的性能给我留下了深刻...

3458
来自专栏大数据挖掘DT机器学习

文本自动分类案例(源码)

使用机器学习方法 做文档的自动分类 套路: 1.根据每个文件 生成该文件的一个特征 2.根据特征 选择 分类器 进行文本分类 3.(可选)根据 2 步结果,调...

40112
来自专栏悦思悦读

【机器学习实践】水果图片分类

学习理论之外,自己寻找资源动手实践,在实际做项目中巩固了习得的理论知识,并进一步体会到了日常积累的重要性。

803
来自专栏专知

在浏览器上也能训练神经网络?TensorFlow.js带你玩游戏~

【导读】一直以来训练神经网络给我们的印象都是复杂、耗时、对硬件要求高。你有没有想过有一天在浏览器上也能训练神经网络~ 本文通过一篇详细的TensorFlow.j...

890

扫码关注云+社区