X-y中的R错误:不一致的数组

use*_*382 9 r

我正在尝试使用以下数据集训练R中的神经网络(小部分)

      Age   Salary Mortrate Clientrate Savrate PartialPrate
 [1,]  62 2381.140    0.047       7.05     3.1            0
 [2,]  52 1777.970    0.047       6.10     3.1            0
 [3,]  53 2701.210    0.047       6.40     3.1            0
 [4,]  52 4039.460    0.047       7.00     3.1            0
 [5,]  56  602.240    0.047       6.20     3.1            0
 [6,]  43 2951.090    0.047       6.80     3.1            0
 [7,]  49 4648.860    0.047       7.50     3.1            0
 [8,]  44 3304.110    0.047       7.10     3.1            0
 [9,]  56 1300.000    0.047       6.10     3.1            0
[10,]  50 1761.440    0.047       6.95     3.1            0
Run Code Online (Sandbox Code Playgroud)

如果我尝试为上面的小数据集做这个代码工作,但如果我采取更多的数据然后neuralnet()给出错误:

Neuralnet error Error in x - y : non-conformable arrays. 
Run Code Online (Sandbox Code Playgroud)

这个错误意味着什么,我该如何解决?

码:

trainingsoutput <- AllData$PartialPrepay
trainingdata <- cbind(AllData$LEEFTIJD, AllData$MEDSAL2, AllData$rate5Y,
                      AllData$CRate, AllData$SavRate, trainingsoutput)
dimnames(trainingdata) <- list(NULL, 
                               c("Age","Salary","Mortrate","Clientrate", 
                                 "Savrate","PartialPrate"))

nn <- neuralnet(PartialPrate ~ Age + Salary + Mortrate + Clientrate + Savrate,
                data = trainingdata ,hidden=3, err.fct="sse", threshold=0.01)
Run Code Online (Sandbox Code Playgroud)

use*_*897 14

我只是遇到了同样的问题,当我从预测变量中删除任何NAN(或用一些理智的默认值替换它们)时,似乎已经修复了.


Eri*_*ski 5

错误信息说明:

这句话Conformable arrays是线性代数行话,意思是“可以一起操作的数组”。裸星号运算符(以及R 中的 (+ -/) 运算符执行逐个元素,又名逐元素乘法。它们可以是不同的方向,但它们的长度必须相同。

如何在 R 中重现此错误:

x = matrix(c(1, 2, 3))         #has dimension 3 1
y = matrix(c(1, 2))            #has dimension 2 1
e = x * y                      #Error in x * y : non-conformable arrays
e
Run Code Online (Sandbox Code Playgroud)

两个矩阵或向量之间的星号运算符必须具有兼容的维度:

要解决上述问题,请确保矩阵具有兼容的维度:

x = matrix(c(1, 2, 3))
y = matrix(c(c(1, 2, 3)))
e = x * y
e
Run Code Online (Sandbox Code Playgroud)

印刷:

     [,1]
[1,]    1
[2,]    4
[3,]    9
Run Code Online (Sandbox Code Playgroud)

重现此错误的其他方法:

matrix(1,2,3)    + matrix(1,2)       #Error, non-conformable arrays
matrix(1:6)      / matrix(1:5)       #Error, non-conformable arrays
matrix(c(1,2))   / matrix(5)         #Error, non-conformable arrays
matrix(c(1,2,3)) * matrix(c(1,2))    #Error, non-conformable arrays
matrix(c(1,2))   * matrix(c(1))      #Error, non-conformable arrays
matrix(c(1,2))   * matrix(1)         #Error, non-conformable arrays
Run Code Online (Sandbox Code Playgroud)