介绍

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. POJ 2503.Babelfish-sscanf()函数+strcmp()函数+二分

    Babelfish   Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 44545   Accepted: 18803 Des ...

  2. 51nod 1283 最小周长【注意开根号】

    1283 最小周长 题目来源: Codility 基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题  收藏  关注 一个矩形的面积为S,已知该矩形的边长都是整数,求所有 ...

  3. 【pb_ds】【平衡树启发式合并】【并查集】bzoj2733 [HNOI2012]永无乡

    用并查集维护联通性.对每个联通块维护一个平衡树.合并时启发式合并.比较懒,用了pb_ds. #include<cstdio> #include<ext/pb_ds/assoc_con ...

  4. 1.2(Spring学习笔记)Spring中的Bean

    一.<Bean>的属性及子元素 在1.1中我们对<Bean>有了初步的认识,了解了一些基本用法. 现在我们进一步理解<Bean>属性及子元素. 我们先来看下< ...

  5. 将千克转换成磅 Exercise05_03

    /** * @author 冰樱梦 *题目:将千克转换成磅 *时间:2018年下半年 */ public class Exercise05_03 { public static void main(S ...

  6. LLBLGen Pro ORM 生成器

    LLBLGen Pro  ORM 生成器:         http://www.llblgen.com/default.aspx 支持多种 框架,多种数据库.

  7. RMAN备份恢复 控制文件和归档日志丢失情况

    RMAN> backup current controlfile tag='bak_ctlfile' format='/home/oracle/backup/bak_ctl_%U_%T'; al ...

  8. sersync部署

    rsync :  wget  http://rsync.samba.org/ftp/rsync/src/rsync-3.1.1.tar.gz Sersync: wget https://raw.git ...

  9. [TypeScript] Dynamically initialize class properties using TypeScript decorators

    Decorators are a powerful feature of TypeScript that allow for efficient and readable abstractions w ...

  10. Tomcat:IOException while loading persisted sessions: java.io.EOFException 解决

    转自:http://www.blogjava.net/apple0668/archive/2007/10/12/152383.html Tomcat启动时如下错误: 严重: IOException w ...