开源java推荐系统Taste(1)-基本的Item-based推荐
2013-06-22 17:45
501 查看
http://terryma.blog.sohu.com/58889892.html
关注推荐系统有好一阵了,居然没有任何的产出,惭愧、惭愧。
这几天学习了一下开源的java推荐系统Taste,有一些心得,慢慢的贴出来。
如果产生Item-based推荐:
假设有4个用户 u1、u2、u3、u4
产品有n个 c1、c2、c3
步骤:
1.找出用户对产品的打分。
2.找出产品之间的相似度。
3.可以对特定用户给予推荐。
其中需要人工做的就是对产品之间的相似度,给出评分,这个是个比较麻烦的事情,如果有n个产品,就需要N!个评分。
如果用Taste实现,需要的代码如下:
关注推荐系统有好一阵了,居然没有任何的产出,惭愧、惭愧。
这几天学习了一下开源的java推荐系统Taste,有一些心得,慢慢的贴出来。
如果产生Item-based推荐:
假设有4个用户 u1、u2、u3、u4
产品有n个 c1、c2、c3
步骤:
1.找出用户对产品的打分。
2.找出产品之间的相似度。
3.可以对特定用户给予推荐。
其中需要人工做的就是对产品之间的相似度,给出评分,这个是个比较麻烦的事情,如果有n个产品,就需要N!个评分。
如果用Taste实现,需要的代码如下:
1。建立数据集,主要数据内容是用户对产品的打分:DataModel model = new FileDataModel(new File("data.txt")); 2。建立item相似度,集合 例如:先建物(这里有三个物品) final Item item1 = new GenericItem<String>("0"); final Item item2 = new GenericItem<String>("1"); final Item item3 = new GenericItem<String>("2“); 再记录item的相似度 final Collection<GenericItemCorrelation.ItemItemCorrelation> correlations = new ArrayList<GenericItemCorrelation.ItemItemCorrelation>(2); correlations.add(new GenericItemCorrelation.ItemItemCorrelation(item1, item2, 1.0)); correlations.add(new GenericItemCorrelation.ItemItemCorrelation(item1, item3, 0.5)); 3.生成推荐 final ItemCorrelation correlation = new GenericItemCorrelation(correlations); final Recommender recommender = GenericItemBasedRecommender(dataModel, correlation); 4.最终生成推荐 final List<RecommendedItem> recommended = recommender.recommend("test1", 1); final RecommendedItem firstRecommended = recommended.get(0); |
相关文章推荐
- 开源java推荐系统Taste(1)-基本的Item-based推荐
- 开源Java(JSP) CMS系统源码推荐
- 推荐系统:协同过滤 之 Item-based Collaborative Filtering
- 基于neighborhood models(item-based) 的个性化推荐系统
- 基于neighborhood models(item-based) 的个性化推荐系统
- Taste/Thoth:开源的推荐系统引擎
- 【推荐系统】协同过滤(CF)算法详解,item-base,user-based,SVD,SVD++
- 推荐系统:协同过滤 之 Item-based Collaborative Filtering
- 推荐系统user-based和item-based协同过滤算法定性比较
- Mahout--最基本的推荐系统的JAVA代码
- LensKit<开源推荐系统框架Java>学习笔记
- GitHub开源推荐系统项目Surprise的安装和使用
- 基于Flex+Java 构建的开源文件管理系统(网狗盘)
- JEESNS V1.2.0-RC2 发布,Java 开源 SNS 社区系统
- [开源框架推荐]Icepdf:纯java的pdf文档的提取和转换库
- [个人推荐]开源Erlang真的能成为下一代Java语言吗?[zz]
- 简易Java框架开源论坛系统0.5.0版本发布
- 推荐系统开源
- 基于JAVA代码 获取手机基本信息(本机号码,SDK版本,系统版本,手机型号)
- 两步实现Log4j记录java控制台输出的系统所有异常信息和自定义记录日志---->非常实用,强烈推荐阅读