推荐系统学习06-LensKit

  介绍

   LensKit是协同过滤算法的一个实现和一组校准它们的工具,开发者是明尼苏达大学的,推荐领域著名的MovieLens也是出自他们之手。详细信息请去LenSkit官方网站或者wiki查阅。

   如果这是您第一次学习LenSkit,推荐您先看Getting Started。

   LenSkit项目的github地址,最近开发者正在开发3.0版本。

   Getting Started里提供了一个lenskit-hello项目,让初学者能尝试使用LenSkit。

    时间有限,我只研究了lenskit-hello项目如何使用,其他还未深究。

  Installation and Dependency Management

   LenSkit由gradle构建并发布,并且它的artifacts已经被发布到了Maven中央库。把它安装到本地maven仓库,使得其他使用java工具的项目也能使用它,检查仓库,并且运行./gradlew install, it is then available to other projects by depending directly on it in your Maven, Gradle, Ivy, or SBT project.。

  Working with the Code

    要使用LenSkit代码,需要把Gradle工程导入你的IDE。IntelliJ IDEA 支持Gradle项目,版本13或更新的支持LenSkit非常完美。Gradle插件对其他IDEs比如Eclipse也是支持的。

   如果你使用Intellij,那么不需要什么设置,所以intellij是大多数LenSkit开发者使用的工具。

  Modules

   LenSkit由几个模块组成。最高级模块 lenskit 作为一个容器来构建它们并且提供常用设置和依赖。The other modules are as follows:

  • lenskit-api -- the common, public recommender API exposed by LensKit, independent of its actual implementations.
  • lenskit-test -- infrastructure and helper code for testing.
  • lenskit-data-structures -- common data structures used by LensKit. These are split from-core so the API can depend on them.
  • lenskit-core -- the core support code and configuration facilities for the rest of LensKit. It is the entry point for most of what you want to do with LensKit, providing support for configuring and building recommenders.
  • lenskit-knn -- k-NN recommenders (user-user and item-item collaborative filtering).
  • lenskit-svd -- the FunkSVD recommender (and eventually real SVD recommenders).
  • lenskit-slopeone -- Slope-One recommenders.
  • lenskit-eval -- the evaluation framework and APIs, along with a command line evaluation runner.
  • lenskit-all -- a metapackage you can depend on to pull in the rest of the LensKit packages.
  • lenskit-cli -- the LensKit command line interface.
  • lenskit-integration-tests -- additional integration tests for LensKit.
    其余详细内容请自行到上面提供的网站上阅读。

  操作

   配置gradle,自行百度,下载完后配置环境变量。

   使用cmd,进入项目目录,输入gradle

 

  然后输入.\gradlew.bat build会打印出以下信息(这步是为项目配置环境,如果第一次使用,会下载很多它所需要的包)

  推荐系统学习06-LensKit_第1张图片

  上面的步骤花费的时间较长,并且会在项目中生成一些文件夹,下面的build文件夹就是新生成的。

  具体区别如下:

  推荐系统学习06-LensKit_第2张图片

  然后输入.\build\install\lenskit-hello-master\bin\lenskit-hello-master.bat 72(这里的72代表让程序为第72号用户做出推荐)

 

  代码一览

  这个项目具体的推荐步骤:

  第一步:配置数据访问
  使用了一个简单的单独文件;也可以使用数据库(比如JDBCRatingDAO)

  推荐系统学习06-LensKit_第3张图片

  第二步:载入LensKit算法配置

  这里使用item-item算法

 

  第三步:把数据部分加入配置

 

  从配置和数据源创建一个推荐引擎,这个引擎会计算相似矩阵并返回一个推荐
 

  最后: 得到物品推荐

 

  为用户得到十个推荐

 

  使用中可能会遇到的问题

   在输入.\build\install\lenskit-hello-master\bin\lenskit-hello-master.bat 72时,报错。

  原因是电脑的java虚拟机默认运行内存是很小的,这么大的数据量显然不行,您需要手动加大虚拟机内存:

 set JAVA_OPTS=-Xmx1g
   这样,就可以成功运行了。

 

你可能感兴趣的:(推荐系统学习06-LensKit)