提问人:melo 提问时间:7/9/2023 最后编辑:Andre Wildbergmelo 更新时间:7/9/2023 访问量:36
如何修复 cbind(1, pred) %*% weights[[num_hidden_layers + 1]] 中的错误:需要数值/复数矩阵/向量参数
How do I fix Error in cbind(1, pred) %*% weights[[num_hidden_layers + 1]] : requires numeric/complex matrix/vector arguments
问:
我使用 nnet 构建了一个神经网络。当我尝试计算测试数据值时,我得到了以下内容:
cbind(1, pred) %*% weights[[num_hidden_layers + 1]] 中的错误: 需要数值/复数矩阵/向量参数。
Selector 是我试图预测的类。下面的模型工作正常,我能够使用 predict 计算 train.data 上的混淆矩阵来获得预测值。
nn <- nnet(Selector~., data=train.data, size=5, linear.output=F)
当我尝试在test.data上运行计算时,出现上述错误。
test.pred <- compute(nn, test.data[, 1:9])$net.result
以为我需要一个数值矩阵,我转换了test.data,但仍然得到错误。
test.data <- matrix(as.numeric(unlist(test.data)),nrow=nrow(test.data))
下面是我的test.data和结构的示例。列 [,10] 是 Selector 变量。
str(test.data)
num [1:180, 1:10] 0.791 0.814 0.244 0.349 0.349 ...
test.data
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,] 0.79069767 1 0.046916890 0.096938776 0.06448461 0.0085427136 0.0099613743 0.66666667 0.32608696 1
[2,] 0.81395349 0 0.009383378 0.015306122 0.07376649 0.0060301508 0.0040658670 0.78260870 0.69565217 1
[3,] 0.24418605 1 0.002680965 0.000000000 0.05862237 0.0407035176 0.0087416141 0.40579710 0.30434783 2
[4,] 0.34883721 1 0.049597855 0.096938776 0.11040547 0.4346733668 0.1465745070 0.33333333 0.39130435 1
[5,] 0.34883721 1 0.077747989 0.147959184 0.08646800 0.8391959799 0.1707664159 0.65217391 0.67391304 1
[6,] 0.18604651 1 0.009383378 0.020408163 0.03175379 0.0050251256 0.0040658670 0.17391304 0.21739130 2
[7,] 0.30232558 1 0.012064343 0.015306122 0.20468979 0.0462311558 0.0142305347 0.60869565 0.52173913 1
[8,] 0.51162791 1 0.013404826 0.025510204 0.09770396 0.0140703518 0.0113844277 0.44927536 0.28260870 1
[9,] 0.50000000 1 0.030831099 0.061224490 0.10356619 0.0567839196 0.0128074812 0.50724638 0.52173913 1
[10,] 0.59302326 1 0.241286863 0.443877551 0.06985833 0.0271356784 0.0341532832 0.50724638 0.19565217 1
在我将 test.data 转换为数值矩阵之前,它是一个带有列标签的数据框,除了 Selector 之外,所有列都是数值的,Selector 是一个具有两个级别的因子。我现在可以尝试什么?
答: 暂无答案
评论