Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/machine-learning/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Machine learning 无评级推荐(Azure ML)_Machine Learning_Azure Machine Learning Studio - Fatal编程技术网

Machine learning 无评级推荐(Azure ML)

Machine learning 无评级推荐(Azure ML),machine-learning,azure-machine-learning-studio,Machine Learning,Azure Machine Learning Studio,我正在尝试建立一个实验来创建推荐(使用电影分级示例数据库),但不使用分级。我只是想,如果一个用户已经评价了某些电影,那么他会对其他电影也感兴趣,这些电影已经被评价过他的电影的用户评为。 例如,我可以考虑评级是1(存在于数据库中)或0(不存在),但在那种情况下,我如何变换初始数据来反映这一点? 我找不到任何关于这种场景的示例或教程,我也不知道如何继续。我应该在将数据注入算法之前对其进行转换吗?和/或我应该使用哪种特定算法?如果您希望在AML中使用Matchbox Recommender,那么您需要

我正在尝试建立一个实验来创建推荐(使用电影分级示例数据库),但不使用分级。我只是想,如果一个用户已经评价了某些电影,那么他会对其他电影也感兴趣,这些电影已经被评价过他的电影的用户评为。 例如,我可以考虑评级是1(存在于数据库中)或0(不存在),但在那种情况下,我如何变换初始数据来反映这一点?


我找不到任何关于这种场景的示例或教程,我也不知道如何继续。我应该在将数据注入算法之前对其进行转换吗?和/或我应该使用哪种特定算法?

如果您希望在AML中使用Matchbox Recommender,那么您需要确定一些原始数据集中不存在的用户电影对,并以零评级添加这些。(我假设您已经将所有真实用户电影对设置为一级,如上所述。)

我建议生成一些随机候选对,并在executer(或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");
库(dplyr)

df您所说的“转换初始数据”是什么意思?对于一个简单的实验来说,评分的二进制表示(比如你建议的那个)就足够了(一个好的表示)。从这里,您可以了解协作过滤的一个简单实现。我的困惑更多的是如何将一个值与不存在的数据关联,因为数据库中的所有评级都是“1”,这是获得“0”评级的唯一方法它不存在于数据中……您可以将值存储在稀疏矩阵中(用户X电影)。这样,您就不需要表示在Azure ML Studio中可以转换为稀疏矩阵的0’s?但是,如果数据不存在于所有组合中,那么默认行为是什么?Azure ML只固定了评级=1,就是这样..,无需计算并添加到行数据集(评级=0)