如何在电影评分推荐系统中对我的模型准确性应用归一化平均绝对值::



您好,如果有人可以帮助我解决 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))

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

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 列 - 预测比率

如果不是这种情况,只需更改函数体中的这些数字,一切都会好起来的。

相关内容

  • 没有找到相关文章

最新更新