神经网络中要求的输出结果不在0,1范围内怎么办

对于神经网络,想要的输出结果如果是类似股价这种,并非是在 [0,1] 或者 [-1,1] 之间的,除了对 y 做归一化处理以外还有什么其他方法吗

该回答引用ChatGPT

对于输出结果不在 [0,1] 或者 [-1,1] 范围内的情况,除了对 y 进行归一化处理,还可以使用以下方法:

1、标准化 (Standardization):标准化是将数据转换为均值为0,标准差为1的分布。可以使用以下公式进行标准化:

z = (x - mean) / std

其中,x 是原始数据,mean 是均值,std 是标准差。可以使用训练数据计算均值和标准差,然后将它们应用于测试数据和实际数据。

2、对数转换 (Logarithmic Transformation):如果输出结果是正数且范围比较大,可以使用对数转换将其压缩到一个更小的范围内。可以使用以下公式进行对数转换:

y' = log(y + c)

其中,y 是原始数据,c 是一个常数,通常为1或0.1。对数转换可以将大范围的输出结果转换为较小的范围,从而更容易训练神经网络。

3、将输出结果映射到 [0,1] 或 [-1,1] 范围内:如果输出结果不在指定的范围内,可以使用一些映射函数将其映射到指定的范围内。例如,可以使用 sigmoid 函数将输出结果映射到 [0,1] 范围内,或者使用 tanh 函数将输出结果映射到 [-1,1] 范围内。

无论采用哪种方法,都需要在训练数据上进行标准化或转换,然后在测试数据和实际数据上应用相同的转换方式,以确保正确的预测结果。

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^