R:nrow [w]*ncol [w]中的错误:二进制运算符的非数字参数,同时使用Neuralnet包

Ada*_*ula 5 r neural-network

我正在使用Neuralnet包来训练分类器.训练数据如下所示:

> head(train_data)
   mvar_12      mvar_40 v10       mvar_1   mvar_2  Labels
1 136.51551310       6   0   656.78784220      0      0
2 145.10739860      87   0    14.21413596      0      0
3 194.74940330       4   0   196.62888080      0      0
4 202.38663480       2   0   702.27307720      0      1
5  60.14319809       9   0    -1.00000000     -1      0
6  95.46539380       6   0   539.09479640      0      0
Run Code Online (Sandbox Code Playgroud)

代码如下:

n <- names(train_data)
f <- as.formula(paste("Labels ~", paste(n[!n %in% "Labels"], collapse = " + ")))
library(neuralnet)
nn <- neuralnet(f, tr_nn, hidden = 4, threshold = 0.01,        
                stepmax = 1e+05, rep = 1, 
                lifesign.step = 1000,
                algorithm = "rprop+")
Run Code Online (Sandbox Code Playgroud)

当我尝试对测试集进行预测时出现问题:

pred <- compute(nn, cv_data)
Run Code Online (Sandbox Code Playgroud)

cv_data的位置如下:

> head(cv_data)
   mvar_12      mvar_40 v10      mvar_1    mvar_2
1 213.84248210       1   9  -1.000000000     -1
2 110.73985680       0   0  -1.000000000     -1
3 152.74463010      14   0 189.521812800     -1
4  64.91646778       7   0  47.854257730     -1
5 141.28878280      12   0 248.557857500      5
6  55.36992840       2   0   4.785425773     -1
Run Code Online (Sandbox Code Playgroud)

对此我收到一个错误说:

Error in nrow[w] * ncol[w] : non-numeric argument to binary operator
In addition: Warning message:
In is.na(weights) : is.na() applied to non-(list or vector) of type 'NULL'
Run Code Online (Sandbox Code Playgroud)

为什么我会收到此错误以及如何解决?

cor*_*ory 0

执行 str(cv_data) 并确保它们都是数字。