UseMethod出错("计算"):没有适用于'计算'的方法适用于班级" nn"

时间:2017-09-21 20:02:46

标签: r

从R。

中的compute()包运行neuralnet时收到错误

是否因为数据大小而发生?我无法弄清楚确切的问题。

 df2 <- read.csv("data.csv")
 train_df <- df2[1:3200,]
 test_df <- df2[3201:4004,]

 n <- names(train_df)
 f <- as.formula(paste("tenure ~", paste(n[!n %in% "tenure"], collapse = 
                  "+")))

 model2 <- neuralnet(f,train_df, hidden=3, threshold=0.01, linear.output=T)

 summary(model2)

 #Output
                   Length  Class      Mode    
 call                      6 -none-     call    
 response               3200 -none-     numeric 
 covariate           4118400 -none-     numeric 
 model.list                2 -none-     list    
 err.fct                   1 -none-     function
 act.fct                   1 -none-     function
 linear.output             1 -none-     logical 
 data                   1288 data.frame list    
 net.result                1 -none-     list    
 weights                   1 -none-     list    
 startweights              1 -none-     list    
 generalized.weights       1 -none-     list    
  result.matrix          3871 -none-     numeric 


 results <- compute(model2, test_df)

 #Error
 Error in UseMethod("compute"): no applicable method for 'compute' applied 
 to an object of class "nn"
 Traceback:

 1. compute(model2, test_df)

P.S:数据列是数字。

1 个答案:

答案 0 :(得分:6)

您使用的功能错误。试试results <- neuralnet::compute(model2, test_df)

<强>推理

错误表明它使用了行UseMethod("compute")neuralnet::compute中没有此行代码。因此,您似乎正在使用其他程序包中的compute。当您加载neuralnet包后跟另一个包含compute函数的包(如dplyr包)时,可能会发生这种情况。您可以使用::neuralnet::compute

来避免这种情况