关于learntorank http://qiita.com/rockhopper/items/bb3d46f01df5f6499123
一、数据转换
如何对于训练数据做pairwise的transform,比如你原始数据是要么点击要么不点击,如何对这些样本数据做pairwise的transform?
下面的方法主要是做组合的方法,就是针对指定group的所有样本作两两组合,然后作相减操作。
样本格式 <X,y>--其中X是多维度变量 就是不通特征值
先上代码

然后解释该代码:
》》第一个if主要是过滤: skip if same target or different group
#主要是点击不点击0和1:比较的时候肯定是针对同一个query(group),如果不在一个group那么不会比较的;而且如果同一个group,比较的肯定是点击的和不点击的,如果二者同是点击或者同是不点击那么没有必要比较的
》》第二个if主要是做类别均衡:因为比较的是同一个query的点击或者不点击,无外乎就是1和0。做相减就是1或者-1两种情况。但是因为点击的次数比较少,不点击次数较多,但是为了类别均衡,希望+1和-1能够个数相同,所以用了-1^^k做判断,如果不是期待的结果-1^^k,就要做逆操作,就是取-1.
》》然后还要注意一个变成技巧,因为这里最后去用作训练的结构是Xp,yp都是list,做append操作。用下标 -1表示list当前元素。k是用作计数;comb表示所有样本{<x,y>}的组合操作!
》》xp,yp--p表示pair的意思
》》range()返回一个list,做组合,2表示组合元祖长度。因为长度为2所有后边会有 tuple(i,j)
二、训练
训练就可以用 xgboost或者rf或者lr之类的处理了
参考文献
http://qiita.com/rockhopper/items/bb3d46f01df5f6499123
关于learntorank http://qiita.com/rockhopper/items/bb3d46f01df5f6499123的更多相关文章
- ios archives 出现的是other items而不是iOS Apps的解决方案
ios archives 出现的是other items而不是iOS Apps的解决方案 项目打包时出现的是不是出现在iOS Apps栏目下面,而是Other Items而且右边对应的Upload t ...
- 国内外三个不同领域巨头分享的Redis实战经验及使用场景
Redis不是比较成熟的memcache或者Mysql的替代品,是对于大型互联网类应用在架构上很好的补充.现在有越来越多的应用也在纷纷基于Redis做架构的改造.首先简单公布一下Redis平台实际情况 ...
- haproxy实现自定义错误页面的内容
现在利用haproxy实现自定义的haproxy的错误页面 我们现在实现自定义错误页面有以下的方法: 一种是自定义错误页面 haproxy.conf defaults errorfile 404 /e ...
- 【PHP】月末・月初の出力方法
文章出处 : Qiita - http://qiita.com/shoridevel/items/0a2f4a64e55d84919a1c 今月の月初 echo date("Y-m-01&q ...
- Eclipse DDT
http://www.eclipse.org/downloads/ https://github.com/DDT-IDE/DDT/blob/latest/documentation/UserGuide ...
- SVN图形管理工具-Submint
1.安装svn及相关依赖包 yum install subversion httpd mod_dav_svn apr-util-sqlite 2.下载submin wget https://sup ...
- CentOS 7 vs CentOS 6的不同
(1)桌面系统 [CentOS6] GNOME 2.x [CentOS7] GNOME 3.x(GNOME Shell) (2)文件系统 [CentOS6] ext4 [CentOS7] xfs (3 ...
- 定制centos安装iso
参考 https://gist.github.com/pauljeff/4b9ad551cb6c35870d7c https://www.redhat.com/archives/kickstart-l ...
- iOS 8下使用xib/storybord AutoLayout导致的分割线问题
/*** iOS8 分割线问题 在xib/storyboard下面解决方案 http://qiita.com/yimajo/items/10f16629200f1beb7852 http://www. ...
随机推荐
- Mosquitto搭建Android推送服务番外篇一:各种报错解决
文章钢要: 目前笔者在开发搭建Mosquitto服务器,在此期间遇到很多实际问题,所以走了很多弯路,在这里写出来为大家提供一些帮助. 1.安装完成后启动Mosquitto报错 执行mosquitto客 ...
- LeetCode 359 Logger Rate Limiter
Problem: Design a logger system that receive stream of messages along with its timestamps, each mess ...
- doT.js学习
doT.js特点是快,小,无依赖其他插件.但是一般和jquery一起使用 官网:http://olado.github.io 使用方法:{{= }} for interpolation{{ }} fo ...
- 多功能弹窗控件layer
开发网站的时候,如何合理运用好各种插件对开发的帮助是很大的. 免去了我们调试各种交互效果, 比如常用的弹窗.气泡.提示.加载.焦点.标签.导航.折叠等等 这里会推荐几个常用的js插件,丰富多样简单易移 ...
- Centos7下安装mysql5.7.16
mysql的安装(root用户下) 从官网下载软件 linux下必须安装系统对应的版本,多少位 必须安装的是:server,client 但是我可不管要安装那个插件,我们直接使用bundle版本(就是 ...
- AndroidStudio使用过程中遇到的bug
Ref:http://www.cnblogs.com/jingmo0319/p/5781878.html 1. Error:Execution failed for task ':app:transf ...
- 给DOM生成的元素添加事件
问题:通过js给页面添加新元素,并给该元素添加绑定事件,但新添加的元素上却没有绑定任何事件. 常见例子:在处理表格的时候,每行行末有个删除按钮,如下图.点击删除按钮的时候删除这一行. //html部分 ...
- BigDecimal 处理集合
1 创建一个BigDecimal 对象 BigDecimal Sum = new BigDecimal(0); 2 一个BigDecimal 对象,保留2位小数点 Sum.setScale(2,B ...
- Hadoop单机模式安装-(1)安装设置虚拟环境
网络上关于如何单机模式安装Hadoop的文章很多,按照其步骤走下来多数都失败,按照其操作弯路走过了不少但终究还是把问题都解决了,所以顺便自己详细记录下完整的安装过程. 此篇主要介绍如何在Windows ...
- 【leetcode】Length of Last Word
题目简述 Given a string s consists of upper/lower-case alphabets and empty space characters ' ', return ...