zoukankan      html  css  js  c++  java
  • 阿里游戏大数据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      

    见下图:


    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列代码。



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



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

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

  • 相关阅读:
    iOS objc_msgSend 报错解决方案
    不再以讹传讹,GET和POST的真正区别
    HTTP Get请求URL最大长度
    [转]浅论ViewController的加载 -- 解决 viewDidLoad 被提前加载的问题(pushViewController 前执行)
    ASIHTTPRequest-断点续传需要原网站支持!
    iOS关于error can't allocate region的一点发现
    Xcode 5.1.1 与 Xcode 6.0.1 的共存之路(建议大家在升级Xcode 6.0.1 的时候保留Xcode 5.1.1)
    监测uitableview 向上滑动和向下滑动的事件
    Xcode5和6共存时,如何发布应用到商店
    利用MPMoviePlayerViewController 播放视频 iOS
  • 原文地址:https://www.cnblogs.com/yxwkf/p/4615469.html
Copyright © 2011-2022 走看看