对于神经网络,想要的输出结果如果是类似股价这种,并非是在 [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] 范围内。
无论采用哪种方法,都需要在训练数据上进行标准化或转换,然后在测试数据和实际数据上应用相同的转换方式,以确保正确的预测结果。
不知道你这个问题是否已经解决, 如果还没有解决的话: