R编程:评估错误:未使用的参数

时间:2016-04-03 05:49:13

标签: r recommendation-engine evaluation

我是R.的新人 我正在使用R语言使用recommenderlab包构建推荐系统的原型 我收到以下错误消息。

Error in evaluate(x = eval_sets, method = models_to_evaluate, n = n_recommendations) : 
  unused arguments (x = eval_sets, method = models_to_evaluate, n = n_recommendations)

执行以下代码:

library(recommenderlab)
library(ggplot2)
data("MovieLense")
ratings_movies <- MovieLense[rowCounts(MovieLense) > 27, colCounts(MovieLense) > 21]
n_fold <- 4
items_to_keep <- 15
rating_threshold <- 3
eval_sets <- evaluationScheme(data = ratings_movies,
                              method = "cross-validation",
                              k = n_fold,
                              given = items_to_keep,
                              goodRating = rating_threshold)

models_to_evaluate <- list(
  IBCF_cos = list(name = "IBCF", param = list(method = "cosine")),
  IBCF_cor = list(name = "IBCF", param = list(method = "pearson")),
  UBCF_cos = list(name = "UBCF", param = list(method = "cosine")),
  UBCF_cor = list(name = "UBCF", param = list(method = "pearson")),
  random = list(name = "RANDOM", param=NULL)
)

n_recommendations <- c(1, 5, seq(10, 100, 10))

list_results <- evaluate(x = eval_sets,
                    method = models_to_evaluate,
                    n = n_recommendations)

我不确定为什么错误即将发生,我该如何解决这个问题。
如果有人可以帮我解决这个问题,我将非常感激 提前谢谢。

1 个答案:

答案 0 :(得分:2)

为什么evaluate()难以被调用的原因是R相信一个函数在没有你指定的参数的情况下存在。这个求值函数甚至缺少...,因此附加参数不是指任何类型的固定或不固定参数,因此是“未使用”的参数。其根本原因是

  1. recommenderlab包未通过library() / require()
  2. 加载
  3. 存在另一个使用名称evaluate()作为其中一个函数的R包。
  4. 因此,我们选择通过指定应该使用的包命名空间来简化R在搜索evaluate()的不同包命名空间时的混淆,例如: recommenderlab::

    因此,原因为:

    recommenderlab::evaluate(x = eval_sets, method = models_to_evaluate, n = n_recommendations)