关于发现真实值和预测值不在一个数量级

最近用lstm跑一个多特征多步的时序预测任务

用了别人的源码进行改动

过程中发现预测值和真实值总是不在一个数量级上

如真实值是在0~10这个范围内,而预测值却在0~800左右,第一反应是目标列选错,检查了很久代码才发现,主要问题在两个方面
(1)在进行构造时间滞后的dataframe时,将目标列选错了(源码的目标列是var1,改成我的应该是var14)
(2)在将目标列逆归一化时,选择了其他列的scaler参数

scaler = data_prepare[0] #data_prepare[0]得到的是归一化后的数据集

#逆归一化
scale_new = MinMaxScaler()
scale_new.min_, scale_new.scale_ = scaler.min_[13], scaler.scale_[13]
#上面这一行,逆归一化时,min_和scale_这两个参数的个数就是变量的个数,应选择对应的变量的归一化参数
inv_y = scale_new.inverse_transform(test_y)

检查了很久才发现的问题,坑人

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值