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