zoukankan      html  css  js  c++  java
  • 关于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

  • 相关阅读:
    深入理解JVM内幕:从基本结构到Java 7新特性
    通过Java反射做实体查询
    Hadoop教程(一)
    很不错的js特效
    java utf8字符 导出csv 文件的乱码问题。
    spring MVC使用Interceptor做用户登录判断
    Bootstrap--全局css样式之图片
    Bootstrap-全局css样式之按钮
    Bootstrap--全局css样式之表单
    Bootstarp--全局CSS样式之表格
  • 原文地址:https://www.cnblogs.com/amazement/p/5703160.html
Copyright © 2011-2022 走看看