使用神经网络预测新数据的类
machine-learning
neural-network
r
5
0

我正在尝试使用使用R中的Neuronet软件包训练的神经网络来预测测试数据集的类(0或1)。

我得到的数据如下:

火车:

x1          x2          x3          x4          y
0.557       0.6217009   0.4839      0.5606936   0
0.6549      0.6826347   0.4424      0.4117647   1
0.529       0.5744681   0.5017      0.4148148   1
0.6016771   0.5737052   0.3526971   0.3369565   1
0.6353945   0.6445013   0.5404255   0.464       1
0.5735294   0.6440678   0.4385965   0.5698925   1
0.5252      0.5900621   0.4412      0.448       0
0.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)

网络训练完毕,我可以成功绘制网络,但计算无法正常工作。当我运行计算时,它给了我以下错误:

Error in neurons[[i]] %*% weights[[i]] : non-conformable arguments

因此,基本上,我正在尝试训练神经网络来成功分类新的测试数据。

任何帮助表示赞赏。

编辑:

测试对象的采样是:

x1          x2  x3          x4          y
0.5822  0.6591  0.6445013   0.464       1
0.4082  0.5388  0.5384616   0.4615385   0
0.4481  0.5438  0.6072289   0.5400844   1
0.4416  0.5034  0.5576923   0.3757576   1
0.5038  0.6878  0.7380952   0.5784314   1
0.4678  0.5219  0.5609756   0.3636364   1
0.5089  0.5775  0.6183844   0.5462555   1
0.4844  0.7117  0.6875      0.4823529   1
0.4098  0.711   0.6801471   0.4722222   1

我还尝试了y列中不包含任何值的情况。

参考资料:
Stack Overflow
收藏
评论
共 2 个回答
高赞 时间 活跃

在缺乏对“测试”对象的良好描述的情况下很难说,但是您能否看得出这是否会带来更好的结果:

compute(nn, test[, 1:4])
收藏
评论

我有同样的问题。我把debugonce(neuralnet)放进debugonce(neuralnet) ,发现debugonce(neuralnet)正在将不同大小的矩阵相乘。

我解决了使用此功能从测试中删除y列的问题

columns <- c("x1","x2","x3","x4")
covariate <- subset(test, select = columns)
收藏
评论
新手导航
  • 社区规范
  • 提出问题
  • 进行投票
  • 个人资料
  • 优化问题
  • 回答问题

关于我们

常见问题

内容许可

联系我们

@2020 AskGo
京ICP备20001863号