预测值产生了负数
您好,我用的itransformer模型在进行预测,用10步预测1步,我的预测目标变量的真实值都是正数,但预测值产生了较多负数,导致各评价指标不太理想(尤其rmse),基本大多数参数我都调试了,都没有明显改善。 我应该如何调整呢?以防产生较多的负数的预测值。不胜感谢。
@Chuan112233 ,你好,你的样本数据可以挑几条吗?
这一列是预测的ot的列的结果吗?
对是ot目标列的预测结果
@Chuan112233 ,你好,你的样本数据可以挑几条吗?
这一列是预测的ot的列的结果吗?
是的,是ot的的预测结果
圈的是ot列,都是正值,但预测值产生了挺多负值的
这个是不是 --inverse 设置为True的结果呢? 这样导致的预测在误差一定范围内的结果是多少呢?
这个是不是 --inverse 设置为True的结果呢? 这样导致的预测在误差一定范围内的结果是多少呢?
对的我是把inverse设置为了true,你后半句话的意思我不太懂
您好,我用的itransformer模型在进行预测,用10步预测1步,我的预测目标变量的真实值都是正数,但预测值产生了较多负数,导致各评价指标不太理想(尤其rmse),基本大多数参数我都调试了,都没有明显改善。 我应该如何调整呢?以防产生较多的负数的预测值。不胜感谢。
如果有预测值非负的要求,可以尝试一些数据预处理:将原始正值序列先经过进行对数变换到实空间,再将模型输出值进行指数变换
您好,我用的itransformer模型在进行预测,用10步预测1步,我的预测目标变量的真实值都是正数,但预测值产生了较多负数,导致各评价指标不太理想(尤其rmse),基本大多数参数我都调试了,都没有明显改善。我应该如何调整呢?以防产生较多的负数的预测值。不胜感谢。
如果有时序数据非负的要求,可以尝试一些数据预处理:将原始正值序列先经过进行对数变换到实空间,再将模型输出值进行指数变换
感谢您的回复。也没有时序数据的非负要求,主要是产生了较多负数预测值,各评估指标不太理想,比不过alstm基线模型,alstm跑出来的预测结果基本都是正值。不知道该如何调整?
您好,建议用提到相关预处理方式再尝试一下(对数-指数变换,Box-Cox变换等),无论是基于LSTM还是iTransformer等深度模型,考虑数据特性进行预处理也很重要
您好,建议用提到相关预处理方式再尝试一下(对数-指数变换,Box-Cox变换等),无论是基于LSTM还是iTransformer等深度模型,考虑数据特性进行预处理也很重要
好的,十分感谢
@WenWeiTHU 作者您好,这个是我的参数设置,我的特征总共有11个,pred_len 长度是 30;
features MS,freq d,最后predict函数,out_输出的是一个 torch.shape = [1,30,11]的三维数组;这个到底是什么原因呢?按照道理应该是preds = np.array(preds) 的shape应该是[x,30,1]这样的结果吧
这是因为在代码中设置features=MS没有做特殊处理,模型依然把所有特征当成需要预测的变量。您可以在preds的最后一维截取对应您关心的特征。以及在损失函数计算时,只对您关心的特征计算损失函数进行梯度回传。
@Chuan112233 我想问下,如果修改完--inverse 为True,在run.py;还需要做哪些操作;才能像你一样,获得真实的值呢?
@Chuan112233 我想问下,如果修改完--inverse 为True,在run.py;还需要做哪些操作;才能像你一样,获得真实的值呢? 就run里面改就行了,其他不需要,你用它更新后的代码
这是因为在代码中设置features=MS没有做特殊处理,模型依然把所有特征当成需要预测的变量。您可以在preds的最后一维截取对应您关心的特征。以及在损失函数计算时,只对您关心的特征计算损失函数进行梯度回传。
这些具体需要修改哪些位置呢?因为我现在的test 和pred 都会报错
训练的参数是:
data_loader.py 中按照预测的ot,做了修改
现在设置过
然后维度不匹配。
这是因为在代码中设置features=MS没有做特殊处理,模型依然把所有特征当成需要预测的变量。您可以在preds的最后一维截取对应您关心的特征。以及在损失函数计算时,只对您关心的特征计算损失函数进行梯度回传。
这些具体需要修改哪些位置呢?因为我现在的test 和 pred 都会报错
训练的参数是:
data_loader.py 中按照预测的ot,做了修改
现在设置过
然后维度不匹配。
你好,我也遇到了这个问题这个问题解决了?非常期待你的回复
这是因为在代码中设置features=MS没有做特殊处理,模型依然把所有特征当成需要预测的变量。您可以在preds的最后一维截取对应您关心的特征。以及在损失函数计算时,只对您关心的特征计算损失函数进行梯度回传。
这些具体需要修改哪些位置呢?因为我现在的test 和 pred 都会报错
训练的参数是:
data_loader.py 中按照预测的ot,做了修改
现在设置过
然后维度不匹配。
你好,我也遇到了这个问题这个问题解决了?非常期待你的回复
参考这个https://blog.csdn.net/java1314777/article/details/132881996修改;
再加上下面的修改;
可以解决inverse,然后
这几处代码;按照需要进行修改;
这是因为在代码中设置features=MS没有做特殊处理,模型依然把所有特征当成需要预测的变量。您可以在preds的最后一维截取对应您关心的特征。以及在损失函数计算时,只对您关心的特征计算损失函数进行梯度回传。
这些具体需要修改哪些位置呢?因为我现在的test 和 pred 都会报错
训练的参数是:
data_loader.py 中按照预测的ot,做了修改
现在设置过
然后维度不匹配。
你好,我也遇到了这个问题这个问题解决了?非常期待你的回复
参考这个https://blog.csdn.net/java1314777/article/details/132881996修改;
再加上下面的修改;
可以解决inverse,然后
这几处代码;按照需要进行修改;
非常感谢你的回复,这个csdn打不开,我按照你的方法改完又出现了新的问题ValueError: Found array with 0 sample(s) (shape=(0, 1)) while a minimum of 1 is required.我是用的官方给的数据集来测试ms的功能,请问你的代码这样改过之后没问题可以跑了吗?
@ambitious121 是的,可以跑的;
csdn: https://blog.csdn.net/java1314777/article/details/132881996
你肯定是直接点击的;然后就报错了
@ambitious121 是的,可以跑的;
csdn: https://blog.csdn.net/java1314777/article/details/132881996
你肯定是直接点击的;然后就报错了
你好我想在csdn上请教你点问题可以回一下私信吗
你好,我可能没看懂这篇文章代码,我想知道OT列表示什么含义。交通流量预测的话是历史时间步预测未来时间步,我不太理解这里提到的OT列。能解答一下吗?谢谢!
这一列是预测的ot的列的结果吗?





