java推荐系统_开源java推荐系统Taste(1)-基本的Item-based推荐 | 学步园

关注推荐系统有好一阵了,居然没有任何的产出,惭愧、惭愧。

这几天学习了一下开源的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("0");

final Item item2 = new GenericItem("1");

final Item item3 = new GenericItem("2“);

再记录item的相似度

final Collection correlations =

new ArrayList(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 recommended = recommender.recommend("test1", 1);

final RecommendedItem firstRecommended = recommended.get(0);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值