machine-learning - 不带评级的建议 (Azure ML)

标签 machine-learning azure-machine-learning-service

我正在尝试构建一个实验来创建推荐(使用电影评级示例数据库),但不使用评级。我只是认为,如果用户对某些电影进行了评分,那么他会对那些也对他的电影进行过评分的用户所评分的其他电影感兴趣。

例如,我可以考虑评级为 1(数据库中存在)或 0(不存在),但在这种情况下,如何转换初始数据以反射(reflect)这一点?

我找不到任何关于这种情况的示例或教程,而且我真的不知道如何继续。我应该在将数据注入(inject)算法之前对其进行转换吗?和/或我应该使用某种特定的算法吗?

最佳答案

如果您希望在 AML 中使用 Matchbox 推荐器,那么您需要识别原始数据集中不存在的一些用户-电影对,并将其添加到评级为零。 (我假设您已经将所有真实的用户-电影对设置为评级为 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");

或者,您可以尝试类似 association rule learning 的方法这不需要您添加虚假的零评级。 Martin Machac 发布了 nice example有关如何在 Cortana Intelligence Gallery 中的 R/AML 中执行此操作的信息。

关于machine-learning - 不带评级的建议 (Azure ML),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38632533/

相关文章:

python - 如何找到数值、分类(MCQ-单项响应)和(MCQ-多重响应)之间的相关性?

azure - 通过带有机器学习 Azure 数据的仪表板提供支持

python - 在Azure ML上开始训练模型

machine-learning - Keras CNN - 损失不断减少,但准确率快速收敛

python - 加载模型时如何使用 min max scaler 拟合测试数据?

python - xgboost 中的访问训练和评估错误

matlab - 使用交叉验证和 F1 分数选择 SVM 参数

azure - 在 AzureML 中的 Azure DataLake 中写入文件

python - 如何将适合的变压器保存到 blob 中,以便您的预测管道可以在 AML 服务中使用它?

python - Azure 机器学习工作室备份