zoukankan      html  css  js  c++  java
  • 推荐系统学习03-SVDFeature

      介绍

      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中:

     

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

  • 相关阅读:
    SpringMVC使用ResponseEntity实现文件下载,及图片base64的字节数组上传于下载
    File类的createNewFile()和mkdirs() mkdir()
    为什么Java里的Arrays.asList不能用add和remove方法?
    java如何向数组里添加元素
    java里getPath、 getAbsolutePath、getCanonicalPath的区别
    MultipartFile 类
    File类的createNewFile()与createTempFile()的区别
    IntelliJ Idea解决Could not autowire. No beans of 'xxxx' type found的错误提示
    FileInputStream读取的两种方法:逐字节读;以字节数组读取
    JCE cannot authenticate the provider BC
  • 原文地址:https://www.cnblogs.com/yutingliuyl/p/7281515.html
Copyright © 2011-2022 走看看