如何在电影评级推荐系统中为我的模型准确度应用标准化均值绝对值::

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在电影评级推荐系统中为我的模型准确度应用标准化均值绝对值::相关的知识,希望对你有一定的参考价值。

你好,如果有人可以帮我解决NMAE(标准化平均误差,找到模型的准确性: NMAE =Σ(|预测评级 - 真实评级|)/ n(最大费率 - 最小费率)我举例说明了我的模型如何提供数据集输出:我一直在使用R编程来构建电影的推荐模型:

Movie Code  Votes  Real rate  Predicted Rate
1   1371    2.5 2
1   2193    2   3
1   2294    2   3
2   39  5   3
2   50  4   3
2   110 4   4
2   144 3   3
2   153 4   3
2   208 3   3
2   296 4   4
2   372 3   3
2   377 3   3
2   474 2   3
2   500 4   4
2   508 4   3
2   515 4   3
2   539 3   3

数据。

movies <-
structure(list(`Movie Code` = c(1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L), Votes = c(1371L, 2193L, 
2294L, 39L, 50L, 110L, 144L, 153L, 208L, 296L, 372L, 377L, 474L, 
500L, 508L, 515L, 539L), `Real rate` = c(2.5, 2, 2, 5, 4, 4, 
3, 4, 3, 4, 3, 3, 2, 4, 4, 4, 3), `Predicted Rate` = c(2L, 3L, 
3L, 3L, 3L, 4L, 3L, 3L, 3L, 4L, 3L, 3L, 3L, 4L, 3L, 3L, 3L)), class = "data.frame", row.names = c(NA, 
-17L))
答案

您可以编写一个函数来计算NAME,然后将所需的任何数据集传递给它,无论大小。

nmae <- function(DF){
    n <- nrow(DF)
    max_rate <- max(DF[[3]])
    min_rate <- min(DF[[3]])
    sum(abs(DF[[4]] - DF[[3]]))/(n*(max_rate - min_rate))
}

nmae(movies)
#[1] 0.1862745

上面的函数nmae依赖于在指定位置查找以下列:

  • 第3栏 - 实际费率
  • 第4栏 - 预测费率

如果不是这种情况,只需在函数体中更改这些数字,一切都会正常。

以上是关于如何在电影评级推荐系统中为我的模型准确度应用标准化均值绝对值::的主要内容,如果未能解决你的问题,请参考以下文章

直接在应用中为Google Play应用评分

如何检查系统上是不是存在电池,然后在 C# 中为我的 WPF 应用程序获取电池百分比

如何评估基于内容的推荐系统

Rails:使用范围来显示模型的不同子集以及如何以较少 DRY 的方式构建它?

Spark探索经典数据集MovieLens

如何在 vuetify 中为我的视图应用更多填充?