最近,我开始在我的研究中使用R的推荐器包
这是recommenderlab
文件:
http://cran.r-project.org/web/packages/recommenderlab/vignettes/recommenderlab.pdf
本文档中有一些例子,但我有一个很大的问题。
首先,加载recommenderlab包和Jester5k数据集。
library("recommenderlab")
data(Jester5k)
使用Jester5k的frontest 1000条记录(用户)进行学习。推荐算法是热门的。
r <- Recommender(Jester5k[1:1000], method="POPULAR")
然后预测第1001个用户的推荐列表。列出前5项。
recom <- predict(r, Jester5k[1001], n=5)<br/>
as(recom, "matrix")
输出:
[1] "j89" "j72" "j47" "j93" "j76"<br/>
然后我检查上面5项的评级。
rating <- predict(r, Jester5k[1001], type="ratings")<br/>
as(rating, "matrix")[,c("j89", "j72", "j47", "j93", "j76")]
输出:
j89 j72 j47 j93 j76<br/>
2.6476613 2.1273894 0.5867006 1.2997065 1.2956333<br/>
为什么排名前5位的是“j89”“j72”“j47”“j93”“j76”,但j47的评分仅为0.5867006。
我不明白。
recommenderlab
如何计算ratingMatrix
中每个项目的评分?
它如何产生TopN列表?
答案 0 :(得分:1)
为了更准确地了解您的问题,我建议您阅读以下内容: “recommenderlab: A Framework for Developing and Testing Recommendation Algorithms”
为什么前5名列表“j89”“j72”“j47”“j93”“j76”
您正在使用流行度方法,这意味着您根据评分最高的项目(计算保存数量)选择前5个列表,而不是最高预测评级。
推荐器如何计算每个项目的评级 ratingMatrix?它如何产生TopN列表?
预测评级,Recommanderlab使用通常的距离方法计算它们(如果是皮尔逊或余弦,还没有清楚,我没有机会检查它)然后它确定评级,如Breeseet al所建议的。 (1998),平均评级加上在邻域上计算的加权因子,您可以将整个训练集视为任何用户的邻域,这就是为什么同一项目上任何用户的预测评级将具有相同的值。
我最好的。 →