阿里游戏大数据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
见下图:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMDY5MTg5OA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
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。模型输出表处填写模型输出表名。參数配置处依据效果进行配置(最開始默认就能够的)。例如以下图所看到的:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMDY5MTg5OA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
配置好仅仅好就能够进行训练了,等待训练好之后等到GBRT预測模型:gbrt_offline_section_one_25;
1.4、GBRT预測特征表准备
训练的特征表gbrt_offline_section_two_11格式与训练特征表格式一样,为:user_id, brand_id, feature1, feature2...Label 见下图:
1.5、建立预測稀疏矩阵表
特征稀疏表可直接在Xlab由原始特征表转换得到,方法和原来一样。直接截图例如以下:
须要注意的是,选择列必须和训练时候一样。。。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMDY5MTg5OA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
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 列),例如以下图:
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列代码。
另外:附上脚本实现的代码,方便測试:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMDY5MTg5OA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
-----------__-----------PS---------__----------
版权声明:本文博客原创文章。博客,未经同意,不得转载。
阿里游戏大数据sesson2_RF&GBRT(上)的更多相关文章
- InfoQ —— 腾讯游戏大数据服务场景与应用
简介 周东祥,本人从2010年毕业进入腾讯互动娱乐部门工作,一直致力在腾讯游戏运营开发工作.先后负责SAP业务受理系统,盗号自助系统,元数据系统以及近2年在腾讯游戏大数据运营开发中积累大量的大数据开发 ...
- 为什么Java大数据能带你走上人生巅峰
国内大多数大型互联网公司的程序员被称作研发工程师,但实际上国内几乎没有研发项目,只能叫做开发. 开发程序员的工作大多是重复性劳动,容易产生疲惫感,薪资在工作2-5年内就达到了一个峰值,再要提升就比较困 ...
- 【解析 . PPT版】干货:阿里全息大数据构建与应用(包括:互联网金融、互联网+、精准营销...)
作者:毛波,阿里巴巴资深数据专家,阿里数据管理平台(DMP)产品负责人. 摘要: 回顾传统数据仓库.商业智能到大型分布式数据平台的进化历程,深入阐述阿里的数据发展历史和数据观,以阿里DMP平台为例深入 ...
- DataPipeline | PayPal庞姬桦:大数据在小微企业贷款上的运用
庞姬桦女士毕业于北京大学和美国哥伦比亚大学,目前担任PayPal公司消费者风险管理总监,负责通过大数据实现对互联网金融风险的侦测.跟踪.管控和防范.在加入PayPal之前,曾任职于渣打银行(中国)和美 ...
- 大数据之Kafka史上最详细原理总结
Kafka Kafka是最初由Linkedin公司开发,是一个分布式.支持分区的(partition).多副本的(replica),基于zookeeper协调的分布式消息系统,它的最大的特性就是可以实 ...
- 【阿里云-大数据】阿里云DataWorks学习视频汇总
阿里云DataWorks学习视频汇总 注意:本文档中引用的视频均来自阿里云官方的帮助文档,本文档仅仅是汇总整理,方便学习. 阿里云DataWorks帮助文档链接:https://help.aliyun ...
- 【Cocos2d-X开发学习笔记】第29期:游戏中数据的存储(上)
本系列学习教程使用的是cocos2d-x-2.1.4(最新版为3.0alpha0-pre) ,PC开发环境Windows7,C++开发环境VS2010 一般游戏中都需要记录玩家数据,便于玩家下次登录时 ...
- 【大数据系列】hadoop上传文件报错_COPYING_ could only be replicated to 0 nodes
使用hadoop上传文件 hdfs dfs -put XXX 17/12/08 17:00:39 WARN hdfs.DFSClient: DataStreamer Exception org.ap ...
- 大数据学习——服务器定期上传nginx日志到hdfs
需求:按照所学知识完成如下: 服务器定期上传nginx日志到hdfs 提示: Hdfs的创建文件夹命令: Hadoop fs -mkdir /文件夹名称 Hdfs的上传命令: Hadoop fs -p ...
随机推荐
- 介绍一个C++奇巧淫技
你能实现这样一个函数吗: MyType type; HisType htype; serialize_3(11, type, htype); serialize_4(type, hty ...
- pinyin4j的使用
pinyin4j的使用 pinyin4j是一个功能强悍的汉语拼音工具包,主要是从汉语获取各种格式和需求的拼音,功能强悍,下面看看如何使用pinyin4j. import net.sourc ...
- poj2826(线段相交)
传送门:An Easy Problem?! 题意:用两条线段接雨水,雨水是垂直落下的,问我们用给定的两条线段能接到多少水. 分析:看起来很简单,写起来略麻烦,先排除不能接到水的情况: 1. 两条线段不 ...
- java 获取当期时间之前几小时的时间
Calendar expireDate = Calendar.getInstance(); expireDate.set(Calendar.HOUR_OF_DAY, expireDate.get(Ca ...
- 【ThinkingInC++】52、函数内部的静态变量
/** * 书本:[ThinkingInC++] * 功能:函数内部的静态变量 * 时间:2014年9月17日18:06:33 * 作者:cutter_point */ #include " ...
- python语言学习3 ——第一个python程序
输入exit即退出,这样写的缺点是没有保存已经写的代码,下次需要重新写
- MSF连环攻击实验
MSF连续攻击实验 一.实验拓扑 二.实验环境 Windows XP BT 5 32位 三.实验原理 通过扫描 XP主机,利用扫描出的漏洞建立 TCP会话,通过进程的提权,进一步获取目标机的控制权限 ...
- 创建并使用静态库(ar 命令)
创建并使用静态库(ar 命令) archive命令的功能是:创建或改动归档文件或者从归档文件里析取信息.能够简单的理解为一个打包工具,将成员文件依照一定的规则构建到.a文件里, ...
- 在Sublime Text3中运行PHP代码
一.前言 最近由于工作需要要与第三方系统对接,另外由于文档中关于其中几个接口就只有很简单的描述,弄了半天都没有弄成功.跟第三方负责的人沟通后还是没有找到具体问题出在哪里,另外因为他们没有开发人员懂.n ...
- 最锋利的Visual Studio Web开发工具扩展:Web Essentials详解
原文:最锋利的Visual Studio Web开发工具扩展:Web Essentials详解 Web Essentials是目前为止见过的最好用的VS扩展工具了,具体功能请待我一一道来. 首先,从E ...