关于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. ...
随机推荐
- Web项目使用Oracle.DataAccess.dll 类库连接oracle数据库
首先我用的工具是oracle 32位免安装版+Oracle.DataAccess.dll 32位 文件版本4.121.1.0+vs2013 +win7 64位 Oracle.DataAccess.d ...
- B+Tree和MySQL索引分析
首先区分两组概念: 稠密索引,稀疏索引: 聚簇索引,非聚簇索引: btree和mysql的分析: 参见 http://blog.csdn.net/hguisu/article/details/7786 ...
- 显示或隐藏div
代码来源于博客,如有侵权,请联系我! ASP.NET中TextBox控件设置ReadOnly="true"H或Enabled=false后台取不到值 当TextBox设置了Read ...
- plist文件里边如果最外层是字典的话,读出来是无序的。
如题. 要想使字典有序的话,可以用数组来存放字典,然后读
- 9. 了解 Cocoa-百度百科
Cocoa是苹果公司为Mac OS X所创建的原生面向对象的API,是Mac OS X上五大API之一(其它四个是Carbon.POSIX.X11和Java). 苹果的面向对象开发框架,用来生成 Ma ...
- The certificate used to sign ***has either expired or has been revoked. An updated certificate is required to sign and install the application
真机测试的时候弹出这样的提示:The certificate used to sign ***has either expired or has been revoked. An updated ce ...
- [Android Pro] Android开发实践:自定义ViewGroup的onLayout()分析
reference to : http://www.linuxidc.com/Linux/2014-12/110165.htm 前一篇文章主要讲了自定义View为什么要重载onMeasure()方法( ...
- 【转】Caffe初试(九)solver及其设置
solver算是caffe的核心的核心,它协调着整个模型的运作.caffe程序运行必带的一个参数就是solver配置文件.运行代码一般为 #caffe train --solver=*_solver. ...
- No plugin found for prefix 'mybatis-generator' in the current project
http://blog.csdn.net/you23hai45/article/details/50792430 1.错误描述 F:\workspaces\Mybatis>mvn mybatis ...
- ubuntu下命令杂项
一. 1.用sudo apt-get install python3-numpy之后,会默认把numpy安装到 /usr/lib/python3/dist-packages目录下,而且版本比较低. ...