介绍

SVDFeature是由Apex Data & Knowledge Management Lab在KDD CUP11竞赛中开发出来的工具包。它的目的是有效地解决基于特征的矩阵分解。新的模型能够仅仅通过定义新的特征来实现。这样的基于特征的设置同意我们把非常多信息包括在模型中,使得模型更加与时俱进。使用此工具包,能够非常easy的把其它信息整合进模型,比方时间动态,领域关系和分层信息。

除了评分预測,还能够实现pairwise
ranking任务。

模型

SVDFeature的模型定义例如以下:

输入包括三种特征<α,β,γ>,各自是用户特征,物品特征和全局特征。

模型的终于版本号是:

活跃函数和损失函数的通常选择例如以下(忽略后面的标识):

具体内容可自行查阅SVDFeature-manual。

输入格式

  输入格式是和SVM格式相似的稀疏特征格式。对一个输入样本,我们须要指定三种特征,< α,β,γ
>和预測目标。格式例如以下:

这里的id和value相应非零项的特征id和特征值。特征文件首先指定预測的目标,然后是全局。用户,物品特征向量中非零项的数目。

然后以稀疏特征格式列举出非零全局,用户和物品特征。

比如。假设我们使用基本矩阵分解模型。用户0给物品10评分为5:

5 0 1 1 0:1 10:1

这里的<0,1,1>表示0个全局特征,1一个用户特征和1个物品特征。0:1表示用户特征。10:1表示物品特征。

其余具体内容自行查阅SVDFeature-manual。

SVDFeature工具包里的文件:

* solvers: all the customization
of SVDFeature solvers, not included in the basic package

  * tools  : the auxiliary tools that can be used for experiment

  * demo   : the examples that can help to get started on the toolkit


操作

 
我使用的是Ubuntu14.04。编译环境要求g++4.6及以上,至于怎样安装g++。自行百度。

将Svdfeature-1.2.2.tar.gz复制到Ubuntu中。解压。

进入主文件夹和tools文件夹分别输入“make”进行编译。

编译完毕后进入demo文件夹:

SVDFeature提供了5个样例,各自是:basicMF、binaryClassification、implicitfeedback、neighborhoodModel和pairwiseRank。

单独进入一个文件夹,里面包括了一个run.sh文件。执行“./run.sh”就可以完毕训练和測试阶段。

假如文件夹中还有run-ml100K.sh文件,说明能够使用Movielen数据,步骤为:下载
ml-100K 数据, 把 ua.base和ua.test放入文件夹 ,  执行“ run-ml100K.sh”。

普通执行过程:

执行结束:

预測结果:

使用movielen执行:

执行的结果保存在pred.txt中:

其余几个样例就不一一展示了。

推荐系统学习03-SVDFeature的更多相关文章

  1. JavaScript学习03 JS函数

    JavaScript学习03 JS函数 函数就是包裹在花括号中的代码块,前面使用了关键词function: function functionName() { 这里是要执行的代码 } 函数参数 函数的 ...

  2. Java虚拟机JVM学习03 连接过程:验证、准备、解析

    Java虚拟机JVM学习03 连接过程:验证.准备.解析 类被加载后,就进入连接阶段. 连接就是将已经读入到内存的类的二进制数据合并到虚拟机的运行时环境中去. 连接阶段三个步骤:验证.准备和解析. 类 ...

  3. Java学习03

    Java学习03 1.java面试一些问题 一.什么是变量 变量是指在程序执行期间可变的数据.类中的变量是用来表示累的属性的,在编程过程中,可以对变量的值进行修改.变量通常是可变的,即值是变化的 二. ...

  4. ThinkPhp学习03

    原文:ThinkPhp学习03 一.ThinkPHP 3 的输出      (重点) a.通过 echo 等PHP原生的输出方式在页面中输出 b.通过display方法输出   想分配变量可以使用as ...

  5. JVM学习03:性能监控工具

    JVM学习03:性能监控工具 写在前面:本系列分享主要参考资料是  周志明老师的<深入理解Java虚拟机>第二版. 性能监控工具知识要点Xmind梳理 案例分析 案例分析1-JPS 案例分 ...

  6. node.js 学习03

    node.js学习03 解决浏览器接收服务端信息之后乱码的问题: 服务器通过设置http响应报文头,告诉浏览器使用相应的编码 来解析网页. res.setHeader('Content','text/ ...

  7. Redis学习03——存储字符串(String)

    --------------------- 作者:愤怒的小明 来源:CSDN 原文:https://blog.csdn.net/qiwenmingshiwo/article/details/78118 ...

  8. Mybatis学习03

    title: Mybatis学习03 date: 2020-01-19 13:03:20 tags: Mybatis学习的第二天,内容有日志和分页. <!--more--> 1.日志 1. ...

  9. 推荐系统学习07-Waffles

    介绍 Waffles 英文原意是蜂蜜甜饼,在这里却指代一个很强大的机器学习的开源工具包. Waffles里包括的算法特别多.涉及机器学习的方方面面,推荐系统位于当中的Waffles_recommend ...

  10. Android JNI和NDK学习(03)--动态方式实现JNI(转)

    本文转自:http://www.cnblogs.com/skywang12345/archive/2013/05/23/3092491.html 前面总结了静态实现JNI的方法,本文介绍如何动态实现J ...

随机推荐

  1. BIBTeX制作参考文献

    一篇关于Latex的参考文献的好文章!基本问题都能解答~ 文章来源:http://www.cnblogs.com/longdouhzt/archive/2012/06/21/2557965.html ...

  2. CF984 C. Finite or not?【数论/GCD】

    [链接]:CF [题意]:n组样例,对于每组样例,给你三个数p q b,问你p/q在b进制下是不是一个有限小数,是的话输出Finite,否则输出Infinite. [分析]:b的过程是对q约分,那么只 ...

  3. MySQL数据库增删改字段(属性)

    MySQL数据库的各种操作今天在这里总结一下: 一.增加 1.在已有的表中添加新的字段: 首先是增加表的字段,比如一张表原本没有字段“ Time ”,现在我们要增加这样一个字段,可以用下面的SQL语句 ...

  4. Validate on POST data

    1. Basic validate  on bean's attribute. @Notnull @Max @Min @Pattern ... 2. Validate by logic 1) pass ...

  5. 服务认证暴力破解工具Crowbar

    服务认证暴力破解工具Crowbar   Crowbar是Kali Linux新增的一款服务认证暴力破解工具.该工具支持OpenVPN.RDP.SSH和VNC服务.该工具具备常见的暴力破解功能,如主机字 ...

  6. STL之vector3

    描述 将n个数字输入到vector里,并对其进行从大到小排序并输出. 部分代码已经给出,请补充完整,提交时请勿包含已经给出的代码. int main() { vector<int> vec ...

  7. codevs 4163 求逆序对的数目 -树状数组法

    4163 hzwer与逆序对  时间限制: 10 s  空间限制: 256000 KB  题目等级 : 黄金 Gold 题目描述 Description hzwer在研究逆序对. 对于数列{a},如果 ...

  8. int和Integer,String和String(包装类)

    1.int和Integer的值如果是一样的,则是在内存中开辟相同的内存空间 2.但是String和String(包装类)是不一样的 代码演示: int a=1; Integer b = new Int ...

  9. Linux查找某个时间点后生成的文件(转)

    需要找到某天(例如2017-04-13)以及这之后生成的空文件.那么这个要怎么处理呢?这个当然是用find命令来解决.如下所示, -mtime -5表示查找距现在5*24H内修改过的文件 -type ...

  10. sql server博客

    SQLSERVER MSDN论坛 SQLSERVER 补丁博客 SQLSERVER中国研发中心 微软亚太区数据库技术支持组官方博客 PAUL的SQLSKILL网站 sqlsaturday网站 sqls ...