Algorithm 关于推荐系统的准确性

Algorithm 关于推荐系统的准确性,algorithm,machine-learning,recommender-systems,Algorithm,Machine Learning,Recommender Systems,嗨,我是这个领域的新手。我对推荐算法中的精确性方法感到困惑。据我所知,用户项目的评分矩阵是稀疏的。我知道我可以使用一些算法来预测缺失值和模型,比如RMSE或MAE,但是如何计算精度呢 对于一些项目,我不知道它们的真实评分。如果我使用0,它会增加错误,不是吗 谢谢你的帮助 您只能检查您拥有数据的项目用户的准确性。最好在不属于培训的验证集数据上测试准确性。 然后,如果这是一个回归问题,您可以使用RMSE检查您的准确性;如果这是一个分类问题,您可以使用AUC、log_损失、混淆矩阵等检查您的准确性。

嗨,我是这个领域的新手。我对推荐算法中的精确性方法感到困惑。据我所知,用户项目的评分矩阵是稀疏的。我知道我可以使用一些算法来预测缺失值和模型,比如RMSE或MAE,但是如何计算精度呢

对于一些项目,我不知道它们的真实评分。如果我使用0,它会增加错误,不是吗


谢谢你的帮助

您只能检查您拥有数据的项目用户的准确性。最好在不属于培训的验证集数据上测试准确性。 然后,如果这是一个回归问题,您可以使用RMSE检查您的准确性;如果这是一个分类问题,您可以使用AUC、log_损失、混淆矩阵等检查您的准确性。
因此,您只需计算数据集中标记项的平均误差。

与其他机器学习模型相比,实际上很难衡量推荐系统的准确性,因为我们没有明确的方法来判断推荐是否准确。但是有一种方法可以计算准确度

您将拥有
users*项目
矩阵,您将在该矩阵上培训您的推荐系统

如果您假设您有
10个
用户和
20个
项目
您的矩阵的维数为
10*20

你能做的就是将矩阵分为训练和测试 数据集

例如,可以从
10*20
矩阵的右下角切割
4*4
子矩阵。在剩余矩阵上训练推荐系统,然后根据
4*4
cut对其进行测试。 您将获得预期的输出和系统的输出。使用它们,您可以轻松计算
精度
召回率
,以及
F1分数


您应该从矩阵的各个部分切割不同维度的子矩阵,然后计算分数,以了解您的系统整体性能。

因为在实际数据集中,我们有很多缺失值(有时甚至90%),为了更好地进行预测,我们通常用NA替换缺失值。然后我们将NA替换为用户评分或项目评分的平均值,甚至是两者的平均值。如果将缺少的值替换为0,则低估了影响结果的数据。 例如,如果我们将矩阵命名为ds:

#compute the user means
user.mean = matrix (rowMeans (ds, na.rm = T), nrow(ds) ,ncol(ds))
# replace the missing values (NA) with the user means
ds[is.na(ds)] = user.mean[is.na(ds)]

您好,计算错误时是否应跳过缺失值?是。应在由无缺失值的样本组成的验证集上计算错误。