神经网络训练导致负输出

时间:2016-09-24 18:40:55

标签: r neural-network normalization training-data

我在r中使用神经网络包预测有五个输入变量的河流排放。

'df'是具有六列原始数据的数据帧,前五列作为输入,最后一列作为输出。 使用RSNNS包将数据标准化为0到1

library(RSNNS)
norm_data <- data.frame(normalizeData(df, type = "0_1"))

首先将2557(七年)数据用作训练集

trn_data <- norm_data[1:2557,]

神经网络结构

library(neuralnet)
trn <- neuralnet(discharge~rain+temp+humid+sun+d_disch,trn_data,hidden = 10, threshold = 0.01)

我正在使用Nash-Sutcliffe系数来评估神经网络的训练效率,对于上述结构产生的训练效率非常令人满意0.8414。但是,培训结果(trn$net.result)包含一些负面输出。总共152个结果被发现小于零,但是非常接近零,并且用零替换这些值对纳什系数没有显着影响(0.8418对0.8414)。 作为参考,这里是负输出的摘要

Min.         1st Qu.          Median            Mean         3rd Qu. 
-0.008131191000 -0.002250917000 -0.001022112000 -0.001596980000 -0.000471144100 
           Max. 
-0.000000928481 

我尝试使用各种测试数据测试模型(测试和训练数据都是子集,75%训练和25%测试,使用相同模式标准化的数据集),但模型表现不令人满意(纳什不到40%)。测试输出包含更大的负值。

我的问题是:虽然训练数据在0到1之间,但为什么训练结果为负?这在测试时如何影响模型的性能?而且,这是如何解决的?提前完成。

0 个答案:

没有答案