我正在尝试使用R语言中的neuralnet包训练的神经网络来预测测试数据集的类别(0或1)。
我的数据如下所示:
训练数据:
x1 x2 x3 x4 y0.557 0.6217009 0.4839 0.5606936 00.6549 0.6826347 0.4424 0.4117647 10.529 0.5744681 0.5017 0.4148148 10.6016771 0.5737052 0.3526971 0.3369565 10.6353945 0.6445013 0.5404255 0.464 10.5735294 0.6440678 0.4385965 0.5698925 10.5252 0.5900621 0.4412 0.448 00.7258687 0.7022059 0.5347222 0.4498645 1
还有更多数据。
测试集与训练数据格式相同,只是数值不同(如果需要,我会提供一些样本)。
我使用的代码如下:
> library(neuralnet)> nn <- neuralnet(y ~ x1+x2+x3+x4, data=train, hidden=2, err.fct="ce", linear.output=FALSE)> plot(nn)> compute(nn, test)
网络可以训练成功,我也可以成功绘制网络图,但是compute函数无法正常工作。当我运行compute时,得到以下错误:
Error in neurons[[i]] %*% weights[[i]] : non-conformable arguments
所以,我正在尝试训练一个神经网络来成功分类新的测试数据。
任何帮助都将不胜感激。
编辑:
测试对象的一个样本如下:
x1 x2 x3 x4 y0.5822 0.6591 0.6445013 0.464 10.4082 0.5388 0.5384616 0.4615385 00.4481 0.5438 0.6072289 0.5400844 10.4416 0.5034 0.5576923 0.3757576 10.5038 0.6878 0.7380952 0.5784314 10.4678 0.5219 0.5609756 0.3636364 10.5089 0.5775 0.6183844 0.5462555 10.4844 0.7117 0.6875 0.4823529 10.4098 0.711 0.6801471 0.4722222 1
我也尝试过将y列留空,不填任何值。
回答:
由于缺乏对’test’对象的详细描述,很难判断,但你可以试试看这是否能得到更好的结果:
compute(nn, test[, 1:4])