lenskit (开源推荐系统) 简介

简介: 一个基于java的开源推荐系统,由明尼苏达大学的 GroupLens Research 研究小组出品。 官网地址: http://lenskit.org/ 官方github地址: https://github.com/lenskit/lenskit 我的demo地址,csdn code:https://code.csdn.net/chuchus/lenskitdemo/tree/ma

一个基于java的开源推荐系统,由明尼苏达大学的 GroupLens Research 研究小组出品。

官网地址: http://lenskit.org/

官方github地址: https://github.com/lenskit/lenskit

我的demo地址,csdn code:https://code.csdn.net/chuchus/lenskitdemo/tree/master

1.数据读入

1.1 评分矩阵

org.lenskit.data.dao. EventDAO
代表评分矩阵的接口。
EventDAO dao = TextEventDAO.create(inputFile, Formats.movieLensLatest());

项目自带有 ratings.csv,为 约700个用户对约9000部电影的评分,见图1-1.

图1-1 ratings.csv
它有100,000 行数据。评分信息可由json描述:  {"domain" : {"minimum" : 0.5, "maximum" : 5.0,"precision" : 0.5}}

1.2 物品信息

org.lenskit.data.dao. ItemNameDAO
接口,存储itemId到物品信息的映射。实现类有org.lenskit.data.dao.MapItemNameDAO。
MapItemNameDAO org.lenskit.data.dao.MapItemNameDAO. fromCSVFile(File file)
静态方法,从csv文件中生成。注意文件的第一行不能有列名。
String org.lenskit.data.dao.ItemNameDAO. getItemName(long item)
根据itemId得到物品名。

项目自带有movies.csv,见图1-2。

图1-2 movies.csv 文件
有约9000部电影。我搜了一个最爱的《Highschool Musical》,三部真的都在里面。

2.指定算法

org.lenskit.LenskitConfiguration
用于配置推荐算法。多用bing()...to()...的形式。

<T> LenskitBinding<T> org.grouplens.lenskit.core.LenskitConfiguration.bind(Class<T> type)
与下面的to()方法连用,用于绑定接口的实现类。
void org.grouplens.grapht.Binding.to(@Nonnull Class<? extends T> impl)
与上面的bind()方法连用,用于绑定接口的实现类。
void org.grouplens.grapht.Binding.to(@Nullable T instance)
可以直接绑定到实例。
<T> LenskitBinding<T> org.grouplens.lenskit.inject.AbstractConfigContext.bind(Class<? extends Annotation> qual, Class<T> type)
对一个限定的类型进行绑定。

3.计算

org.lenskit.LenskitRecommenderEngine
推荐引擎。
LenskitRecommenderEngine org.lenskit.LenskitRecommenderEngine.build(LenskitConfiguration config) 
根据LenskitConfiguration生成引擎。

4.推荐

org.lenskit.LenskitRecommender
推荐系统。
LenskitRecommender org.lenskit.LenskitRecommenderEngine.createRecommender()
由推荐引擎得到推荐系统。

org.lenskit.api.ItemRecommender
物品推荐系统的接口。

ItemRecommender org.lenskit.LenskitRecommender.getItemRecommender()
由推荐系统得到物品推荐系统。

List<ScoredId> org.lenskit.api.ItemRecommender.recommend(long user, int n, @Nullable Set<Long> candidates, @Nullable Set<Long> exclude)
指定userId与n个推荐位,得到推荐结果。candidates参数限定从它里面推荐,否则考虑所有的item。exclude参数限定推荐结果不能包含它里面的物品。
org.grouplens.lenskit.scored.ScoredId
推荐结果的接口。包括itemId与score等。

5.检验

lenskit自带了推荐效果检验的代码,且功能强大。

5.1 数据分拆

相关代码在“org.grouplens.lenskit.eval.data.crossfold”包下。

5.2 检验中的计算

相关代码在“org.grouplens.lenskit.eval.traintest”包下。
目录
相关文章
|
4月前
|
人工智能 搜索推荐
【前置课程】推荐系统简介(一)
【前置课程】推荐系统简介(一)
34 1
|
4月前
|
机器学习/深度学习 搜索推荐 算法
「机器学习」推荐系统简介——一起来看看你是怎么被大数据杀熟的(四)
「机器学习」推荐系统简介——一起来看看你是怎么被大数据杀熟的(四)
34 0
|
11月前
|
机器学习/深度学习 Kubernetes 搜索推荐
突破百万亿参数规模,追求极致的效率和性价比:华人团队开源首个异构并行推荐系统训练框架Persia
突破百万亿参数规模,追求极致的效率和性价比:华人团队开源首个异构并行推荐系统训练框架Persia
141 0
|
机器学习/深度学习 SQL 存储
推荐系统[二]:召回算法超详细讲解[召回模型演化过程、召回模型主流常见算法(DeepMF_TDM_Airbnb Embedding_Item2vec等)、召回路径简介、多路召回融合]
推荐系统[二]:召回算法超详细讲解[召回模型演化过程、召回模型主流常见算法(DeepMF_TDM_Airbnb Embedding_Item2vec等)、召回路径简介、多路召回融合]
推荐系统[二]:召回算法超详细讲解[召回模型演化过程、召回模型主流常见算法(DeepMF_TDM_Airbnb Embedding_Item2vec等)、召回路径简介、多路召回融合]
|
数据采集 机器学习/深度学习 分布式计算
毕业设计之基于协同过滤算法的电影推荐系统设计(一) - 项目简介
由于本人今年毕业,为完成毕设特地想着实现一个简单的推荐系统设计,思来想去,小电影不就是很好的切入点嘛! 于是诞生该项目,将会一步步带着大家实现一个自己的电影推荐系统.
358 0
|
人工智能 算法 搜索推荐
《中国人工智能学会通讯》——7.12 推荐系统简介
本节书摘来自CCAI《中国人工智能学会通讯》一书中的第7章,第7.12节, 更多章节内容可以访问云栖社区“CCAI”公众号查看。
1175 0
|
机器学习/深度学习 自然语言处理 算法
神经网络与推荐系统初步简介
作者:一人 1.深度神经网络对于任何领域都是适用的 深度神经网络(Deep Neural Networks, DNN)在过去的数年已经在图像分类、语音识别、自然语言处理中取得了突破性的进展。
1710 0