没有评级的推荐 (Azure ML)
Recommendations without ratings (Azure ML)
我正在尝试建立一个实验来创建推荐(使用电影评级示例数据库),但不使用评级。我只是认为,如果用户对某些电影进行了评分,那么他会对其他对他的电影进行评分的用户评分的其他电影感兴趣。
我可以考虑,例如,评级是 1(存在于数据库中)或 0(不存在),但在那种情况下,我如何转换初始数据以反映这一点?
我找不到关于这种情况的任何示例或教程,而且我真的不知道如何进行。我应该在将数据注入算法之前对其进行转换吗? And/or 有什么我应该使用的特定算法吗?
如果您希望在 AML 中使用 Matchbox Recommender,您是正确的,您需要识别一些 不存在于原始数据集中的用户-电影对, 并将这些添加到零评级中。 (我假设您已经将所有真实的用户电影对设置为 1,如上所述。)
我建议生成一些随机候选对并确认它们不存在于执行 R(或 Python)脚本模块的训练数据中。我不知道你的数据集特征的名称,但这里有一些 R 中的伪代码可以做到这一点:
library(dplyr)
df <- maml.mapInputPort(1) # input dataset of observed user-movie pairs
all_movies <- unique(df[['movie']])
all_users <- unique(df[['user']])
n <- 30 # number of random pairs to start with
negative_observations <- data.frame(movie = sample(all_movies, n, replace=TRUE),
user = sample(all_users, n, replace=TRUE),
rating = rep(0, n))
acceptable_negative_observations <- anti_join(unique(negative_observations), df, by=c('movie', 'user'))
df <- rbind(df, acceptable_negative_observations)
maml.mapOutputPort("df");
或者,您可以在 Cortana Intelligence Gallery R/AML 中尝试类似 association rule learning which would not require you to add in the fake zero ratings. Martin Machac has posted a nice example 的方法。
我正在尝试建立一个实验来创建推荐(使用电影评级示例数据库),但不使用评级。我只是认为,如果用户对某些电影进行了评分,那么他会对其他对他的电影进行评分的用户评分的其他电影感兴趣。
我可以考虑,例如,评级是 1(存在于数据库中)或 0(不存在),但在那种情况下,我如何转换初始数据以反映这一点?
我找不到关于这种情况的任何示例或教程,而且我真的不知道如何进行。我应该在将数据注入算法之前对其进行转换吗? And/or 有什么我应该使用的特定算法吗?
如果您希望在 AML 中使用 Matchbox Recommender,您是正确的,您需要识别一些 不存在于原始数据集中的用户-电影对, 并将这些添加到零评级中。 (我假设您已经将所有真实的用户电影对设置为 1,如上所述。)
我建议生成一些随机候选对并确认它们不存在于执行 R(或 Python)脚本模块的训练数据中。我不知道你的数据集特征的名称,但这里有一些 R 中的伪代码可以做到这一点:
library(dplyr)
df <- maml.mapInputPort(1) # input dataset of observed user-movie pairs
all_movies <- unique(df[['movie']])
all_users <- unique(df[['user']])
n <- 30 # number of random pairs to start with
negative_observations <- data.frame(movie = sample(all_movies, n, replace=TRUE),
user = sample(all_users, n, replace=TRUE),
rating = rep(0, n))
acceptable_negative_observations <- anti_join(unique(negative_observations), df, by=c('movie', 'user'))
df <- rbind(df, acceptable_negative_observations)
maml.mapOutputPort("df");
或者,您可以在 Cortana Intelligence Gallery R/AML 中尝试类似 association rule learning which would not require you to add in the fake zero ratings. Martin Machac has posted a nice example 的方法。