java最好的推荐引擎,生成推荐引擎的测试集

这篇博客探讨了如何利用交替最小二乘(ALS)方法在无法按时间划分数据集的情况下构建推荐系统。作者通过随机选择用户的部分评分将其划入测试集,并将训练集中的对应项置零。这种方法旨在让算法预测非零值作为推荐项。讨论了这种测试集表示的正确性和推荐算法的工作原理。
摘要由CSDN通过智能技术生成

这使用ALS(交替最小二乘)来计算用户和项目向量 . 因为,我的数据集不能按时间划分 . 我随机从用户那里获取'x'个评级并将它们放入测试集中 . 这是我的训练用户项矩阵的可重现示例 .

col1 col2 col3 col4 col5 col6 col7 col8 col9 col10 col1 col12 col13

+---------------------------------------------------------------------------------------------------+

| 1 0 0 3 10 0 0 3 0 0 1 0 0 | |

| 0 0 0 5 0 0 1 8 0 0 1 0 0 | |

| 0 0 0 6 7 1 0 2 0 0 1 0 0 | |

+---------------------------------------------------------------------------------------------------+

I then create a test set using this piece of code

test_ratings = np.random.choice(counts[user,:].nonzero()[0],size=1,replace=True)

train[user,test_ratings] = 0

test[user,test_ratings] = counts[user,test_ratings]

assert(np.all((train * test) == 0))

这给了我:

col1 col2 col3 col4 col5 col6 col7 col8 col9 col10 col1 col12 col13

+---------------------------------------------------------------------------------------------------+

| 0 0 0 0 0 0 0 3 0 0 0 0 0 | |

| 0 0 0 0 0 0 1 0 0 0 0 0 0 | |

| 0 0 0 6 0 0 0 0 0 0 0 0 0 | |

+---------------------------------------------------------------------------------------------------+

行是用户,列是项 .

现在,我想知道这是否是我的测试集的正确表示 . 我已经获得了一个非零值并使一切都为零 . 因此,我的算法应该将非零值排名为推荐项 .

这是正确的做事方式吗?

任何帮助将非常感激

项目完整可用,配合压缩包内数据库可直接运行使用。 eclipse+mysql5.7+jdk1.8 功能:推荐引擎利用特殊的信息过滤(IF,Information Filtering)技术,将不同的内容(例如电影、音乐、书籍、新闻、图片、网页等)推荐给可能感兴趣的用户。通常情况下,推荐引擎的实现是通过将用户的个人喜好与特定的参考特征进行比较,并试图预测用户对一些未评分项目的喜好程度。参考特征的选取可能是从项目本身的信息中提取的,或是基于用户所在的社会或社团环境。 根据如何抽取参考特征,我们可以将推荐引擎分为以下四大类: • 基于内容的推荐引擎:它将计算得到并推荐给用户一些与该用户已选择过的项目相似的内容。例如,当你在网上购书时,你总是购买与历史相关的书籍,那么基于内容的推荐引擎就会给你推荐一些热门的历史方面的书籍。 • 基于协同过滤的推荐引擎:它将推荐给用户一些与该用户品味相似的其他用户喜欢的内容。例如,当你在网上买衣服时,基于协同过滤的推荐引擎会根据你的历史购买记录或是浏览记录,分析出你的穿衣品位,并找到与你品味相似的一些用户,将他们浏览和购买的衣服推荐给你。 • 基于关联规则的推荐引擎:它将推荐给用户一些采用关联规则发现算法计算出的内容。关联规则的发现算法有很多,如 Apriori、AprioriTid、DHP、FP-tree 等。 • 混合推荐引擎:结合以上各种,得到一个更加全面的推荐效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值