LensKit是协同过滤算法的一个实现和一组校准它们的工具,开发者是明尼苏达大学的,推荐领域著名的MovieLens也是出自他们之手。详细信息请去LenSkit官方网站或者wiki查阅。
如果这是您第一次学习LenSkit,推荐您先看Getting Started。
LenSkit项目的github地址,最近开发者正在开发3.0版本。
Getting Started里提供了一个lenskit-hello项目,让初学者能尝试使用LenSkit。
时间有限,我只研究了lenskit-hello项目如何使用,其他还未深究。
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.。
要使用LenSkit代码,需要把Gradle工程导入你的IDE。IntelliJ IDEA 支持Gradle项目,版本13或更新的支持LenSkit非常完美。Gradle插件对其他IDEs比如Eclipse也是支持的。
如果你使用Intellij,那么不需要什么设置,所以intellij是大多数LenSkit开发者使用的工具。
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会打印出以下信息(这步是为项目配置环境,如果第一次使用,会下载很多它所需要的包)
上面的步骤花费的时间较长,并且会在项目中生成一些文件夹,下面的build文件夹就是新生成的。
具体区别如下:
然后输入.\build\install\lenskit-hello-master\bin\lenskit-hello-master.bat 72(这里的72代表让程序为第72号用户做出推荐)
这个项目具体的推荐步骤:
第一步:配置数据访问
使用了一个简单的单独文件;也可以使用数据库(比如JDBCRatingDAO)
第二步:载入LensKit算法配置
这里使用item-item算法
第三步:把数据部分加入配置
从配置和数据源创建一个推荐引擎,这个引擎会计算相似矩阵并返回一个推荐
最后: 得到物品推荐
为用户得到十个推荐
在输入.\build\install\lenskit-hello-master\bin\lenskit-hello-master.bat 72时,报错。
原因是电脑的java虚拟机默认运行内存是很小的,这么大的数据量显然不行,您需要手动加大虚拟机内存:
set JAVA_OPTS=-Xmx1g
这样,就可以成功运行了。