我是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)
我不确定为什么错误即将发生,我该如何解决这个问题。
如果有人可以帮我解决这个问题,我将非常感激
提前谢谢。
答案 0 :(得分:2)
为什么evaluate()
难以被调用的原因是R相信一个函数在没有你指定的参数的情况下存在。这个求值函数甚至缺少...
,因此附加参数不是指任何类型的固定或不固定参数,因此是“未使用”的参数。其根本原因是
recommenderlab
包未通过library()
/ require()
或evaluate()
作为其中一个函数的R包。 因此,我们选择通过指定应该使用的包命名空间来简化R在搜索evaluate()
的不同包命名空间时的混淆,例如: recommenderlab::
因此,原因为:
recommenderlab::evaluate(x = eval_sets, method = models_to_evaluate, n = n_recommendations)