neuralnet prediction为所有预测返回相同的值

neuralnet prediction为所有预测返回相同的值,r,machine-learning,artificial-intelligence,neural-network,survival-analysis,R,Machine Learning,Artificial Intelligence,Neural Network,Survival Analysis,我正试图用neuralnet软件包构建一个神经网络,但我遇到了一些问题。我成功地使用了nnet软件包,但没有使用neuralnet软件包。我已经阅读了整个文档包,但找不到解决方案,或者我可能无法发现它 我使用的训练命令是 nn<-neuralnet(V15 ~ V1 + V2 + V3 + V4 + V5 + V6 + V7 + V8 + V9 + V10 + V11 + V12 + V13 + V14,data=test.matrix,lifesign="full",lifesign.s

我正试图用neuralnet软件包构建一个神经网络,但我遇到了一些问题。我成功地使用了
nnet
软件包,但没有使用
neuralnet
软件包。我已经阅读了整个文档包,但找不到解决方案,或者我可能无法发现它

我使用的训练命令是

nn<-neuralnet(V15 ~ V1 + V2 + V3 + V4 + V5 + V6 + V7 + V8 + V9 + V10 + V11 + V12 + V13 + V14,data=test.matrix,lifesign="full",lifesign.step=100,hidden=8) 
转换为矩阵,系数作为数值:

V1  V2  V3  V4  V5  V6  V7  V8  V9  V10 V11 V12 V13 V14 V15
39  7   77516   10  13  5   1   2   5   2   2174    0   40  39  0
50  6   83311   10  13  3   4   1   5   2   0   0   13  39  0
38  4   215646  12  9   1   6   2   5   2   0   0   40  39  0
53  4   234721  2   7   3   6   1   3   2   0   0   40  39  0
28  4   338409  10  13  3   10  6   3   1   0   0   40  5   0
37  4   284582  13  14  3   4   6   5   1   0   0   40  39  0
49  4   160187  7   5   4   8   2   3   1   0   0   16  23  0
52  6   209642  12  9   3   4   1   5   2   0   0   45  39  1
31  4   45781   13  14  5   10  2   5   1   14084   0   50  39  1
42  4   159449  10  13  3   4   1   5   2   5178    0   40  39  1
37  4   280464  16  10  3   4   1   3   2   0   0   80  39  1
30  7   141297  10  13  3   10  1   2   2   0   0   40  19  1
23  4   122272  10  13  5   1   4   5   1   0   0   30  39  0
预测值汇总:

      V1           
 Min.   :0.2446871  
 1st Qu.:0.2446871  
 Median :0.2446871  
 Mean   :0.2451587  
 3rd Qu.:0.2446871  
 Max.   :1.0000000  
Wilcoxon-Mann-Whitney检验值(曲线下面积)表明,预测性能与随机测试结果基本相同

performance(predneural,"auc")@y.values
[1] 0.5013319126

当你用神经网络得到奇怪结果时,首先考虑的是归一化。您的数据必须规范化,否则,是的,训练将导致偏斜的神经网络,这将始终产生相同的结果,这是一个常见的症状

查看您的数据集,有值>>1,这意味着NN对它们的处理基本相同。其原因是,传统使用的响应函数(几乎)在0左右的某个范围外保持不变


在将数据输入神经网络之前,请始终对其进行标准化。

与@sashkello的回答类似,我之前遇到过一个类似的问题,当时我的数据没有正确标准化。一旦我规范化了数据,一切都正常运行了

最近,我再次面对这个问题,在调试之后,我发现神经网络提供相同输出可能还有另一个原因。如果您的神经网络具有权重衰减项,如RSNNS软件包中的权重衰减项,请确保衰减项不会太大,以至于所有权重基本上都为0

我在R中使用了插入符号包。最初,我使用的是衰减超参数=0.01。当我查看诊断时,我看到RMSE是针对每个折叠(交叉验证)计算的,但Rsquared总是NA。在这种情况下,所有的预测结果都是相同的

一旦我将衰减降低到一个更低的值(1E-5和更低),我就得到了预期的结果


我希望这能有所帮助。

我在这里为那些可能与我有同样问题的人添加这个

如果上述任何一项都不起作用,并且您正在使用TensorFlow和自定义训练循环。确保将
training=True
设置为:

预测=模型(输入,训练=真)
      V1           
 Min.   :0.2446871  
 1st Qu.:0.2446871  
 Median :0.2446871  
 Mean   :0.2451587  
 3rd Qu.:0.2446871  
 Max.   :1.0000000  
performance(predneural,"auc")@y.values
[1] 0.5013319126