阿里游戏大数据sesson2_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上手



1.1、训练特征表准备

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

见下图:

阿里游戏大数据sesson2_RF&GBRT(上)

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMDY5MTg5OA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">



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

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

阿里游戏大数据sesson2_RF&GBRT(上)

进入普通表转稀疏矩阵界面后。在选择列里填上: user_id相应的列号(表默认从0列開始)。brand_id相应的列号,以及想要使用的众多特征相应的列号(不须要填写标签相应的列号!。!

);然后在输出表里填上转换成的稀疏矩阵gbrt_offline_section_one_24_1;例如以下图

阿里游戏大数据sesson2_RF&GBRT(上)

1.3 、GBRT训练

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

阿里游戏大数据sesson2_RF&GBRT(上)

进入配置界面。勾选训练的标签,稀疏矩阵名处输入刚才转好的稀疏矩阵gbrt_offline_section_one_24_1。模型输出表处填写模型输出表名。參数配置处依据效果进行配置(最開始默认就能够的)。例如以下图所看到的:

阿里游戏大数据sesson2_RF&GBRT(上)

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMDY5MTg5OA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

阿里游戏大数据sesson2_RF&GBRT(上)

配置好仅仅好就能够进行训练了,等待训练好之后等到GBRT预測模型:gbrt_offline_section_one_25;



1.4、GBRT预測特征表准备

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

阿里游戏大数据sesson2_RF&GBRT(上)

1.5、建立预測稀疏矩阵表

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

阿里游戏大数据sesson2_RF&GBRT(上)

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

阿里游戏大数据sesson2_RF&GBRT(上)

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMDY5MTg5OA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

1.6、GBRT预測

利用转好的预測稀疏矩阵表gbrt_offline_section_two_11_1进行预測,例如以下图所看到的

阿里游戏大数据sesson2_RF&GBRT(上)

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

阿里游戏大数据sesson2_RF&GBRT(上)

1.7、GBRT碎碎念

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

阿里游戏大数据sesson2_RF&GBRT(上)

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMDY5MTg5OA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

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

阿里游戏大数据sesson2_RF&GBRT(上)



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

阿里游戏大数据sesson2_RF&GBRT(上)

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMDY5MTg5OA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

-----------__-----------PS---------__----------

版权声明:本文博客原创文章。博客,未经同意,不得转载。

上一篇:Java对象引用处理机制


下一篇:自动生成数学题型一 (框架Struts2) 题型如(a+b=c)