【发布时间】:2020-08-28 07:44:50
【问题描述】:
我有一个具有 5 个输入特征的模型,输入如下所示:
- 500.0 -- 499.752 -- 499.813 -- 0.061 -- -0.016 -
- 499.91 -- 499.763 -- 499.828 -- 0.064 -- 0.005 -
- 499.83 -- 499.768 -- 499.828 -- 0.06 -- 0.021 -
- 499.91 -- 499.779 -- 499.841 -- 0.062 -- 0.035 -
- 499.95 -- 499.792 -- 499.858 -- 0.066 -- 0.045 -
- 500.0 -- 499.807 -- 499.879 -- 0.073 -- 0.054 -
- 500.0 -- 499.821 -- 499.898 -- 0.077 -- 0.06 -
- 500.0 -- 499.834 -- 499.914 -- 0.079 -- 0.065 -
- 500.0 -- 499.847 -- 499.927 -- 0.08 -- 0.069 -
- 499.96 -- 499.855 -- 499.932 -- 0.077 -- 0.071 -
- 500.0 -- 499.866 -- 499.943 -- 0.077 -- 0.072 -
- 500.0 -- 499.876 -- 499.951 -- 0.076 -- 0.074 -
- 500.0 -- 499.885 -- 499.959 -- 0.074 -- 0.075 -
- 500.0 -- 499.894 -- 499.965 -- 0.072 -- 0.076 -
- 499.99 -- 499.901 -- 499.969 -- 0.068 -- 0.075 -
如您所见,特征 1,2 和 3 围绕 500 移动,特征 4 和 5 围绕零移动。 我有一个单一的 MSE 损失函数,它使模型在所有特征中预测出相似的数字。
一个例子:
Should have predicted:
- 500.0 -- 499.866 -- 499.943 -- 0.077 -- 0.072 -
But predicted:
- 34.875 -- 22.658 -- 42.792 -- -4.824 -- -24.389 -
您可以看到它如何尝试生成所有相似的数字。 当模型变得更准确但损失更高时,您也可以在训练中看到这一点。
我正在寻找一种方法,为特征 1、2 和 3 分别制作 MSE 损失,然后为 4 和 5 制作另一个损失,这样模型实际上可以在特定特征范围内输出。
我还考虑将特征 4 和 5 缩放到与 1、2 和 3 相同的范围,但我不知道这是否也能奏效。
如果有任何其他可能的解决方案,请分享。 谢谢!
【问题讨论】:
标签: python tensorflow keras