反归一化的问题(高手看一下吧,谢谢了)
我的网络有两个输入,一个输出。我用公式: 归一化后数据=(原始数据-最小值)/(最大值-最小值)分别归一化两个输入(都归一化0--1之间,这样应该可以把?)。我用不同的输出函数(例如purelin和logsig),输出范围也不一样(-1--+1,0--1)),我想问的是:得到输出后,我如何反归一化啊?
谢谢!!
我再补充一下,普通的反归一化知道原始输出的最大最小值,反归一化的时候用这个就可以了,
但是,如果我要预测怎么办?例如,我用05,06年的温度和湿度训练网络(输出是蒸发),训练好之后,我输入07年的温度和湿度,预测一下蒸发(输入输出都是归一化0--1),预测输出用logsig也输出到0--1之间,这时的蒸发如何反归一化啊?(现在不知道07年蒸发的最大值和最小值啊)
是不是我做的方法有问题?如果要想预测(没有实测数据相验证),应该如何做?
恳请高手帮忙解决啊!!!!
[ 本帖最后由 xuebaolin 于 2007-8-20 11:19 编辑 ] 两种可能:
1、如果2007年的温度在2005和2006两年温度的最大值 和最小值之间,那么自然用公式反算是不会有什么问题的。
2、如果2007年温度有可能超过2005和2006的最大值,那么规一化的时候,公式中的最大值可以取2005至2007之间温度可能的最大值或更大一点,如气温取50度,总不会超了吧;最小值也同样取,也是可以解决问题的。 看一下MATLAB里的premnmx函数和postmnmx函数.它们一个是归一一个是反归一 原帖由 hnlzx 于 2007-8-26 14:16 发表 http://www.chinavib.com/forum/images/common/back.gif
两种可能:
1、如果2007年的温度在2005和2006两年温度的最大值 和最小值之间,那么自然用公式反算是不会有什么问题的。
2、如果2007年温度有可能超过2005和2006的最大值,那么规一化的时候,公式中的最大值可以取2 ...
考虑太多了,既然是拿在2005和2006两年温度预测蒸发,你当然要拿2007年的温度预测2007年的蒸发了,而你不知道2007年的温度是很正常的,所以你还是需要用2007年的预报温度做蒸发量的预测,2007年的预报温度就成了你预测2007年的关键了,你要知道,你用2007年的温度预报值时必须把这个温度放到前面2005和2006年的温度中做归一化处理,然后把得到的结果反归一化出来,这样就不存在你说的第二种情况了,不需要搞成50度那样,结果出来的问题是你的预测和实际有点差距,搞预测其实很简单。 原帖由 F117_ren_0 于 2008-8-6 20:15 发表 http://www.chinavib.com/forum/images/common/back.gif
考虑太多了,既然是拿在2005和2006两年温度预测蒸发,你当然要拿2007年的温度预测2007年的蒸发了,而你不知道2007年的温度是很正常的,所以你还是需要用2007年的预报温度做蒸发量的预测,2007年的预报温度就成了你 ...
同意这种观点,超了也很正常
回复
我怎么觉得2007的温度不是已经知道了么 其实是你预测出的蒸发的归一化问题呀
页:
[1]