PythonTip >> 博文 >>

阿里大数据比赛sesson2_RF&GBRT(上)[转]

liushulinle 2014-07-09 10:07:32 点击: 3839 | 收藏


----------一点比赛心得,供不太熟悉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上手


1.1、训练特征表准备

训练的特征表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列代码。


作者:liushulinle | 分类: | 标签: 阿里大数据比赛 大数据 | 阅读: 3839 | 发布于: 2014-07-09 10时 |
上一篇:SORT 笔记
下一篇: [Python]socket使用