我正在对标签具有正值(时间值)的数据集进行预测。在训练一个简单的线性 pytorch 模型后,尽管训练集中的负值为 0,但我得到了时间的负值。是否有某种方法可以惩罚模型做出负面预测,以便模型能够理解做出正面预测(因为采用 ReLU 对我来说感觉不正确)?
如何强制pytorch模型只预测正值
数据挖掘
神经网络
火炬
2021-09-29 06:44:54
2个回答
如果你知道你的输出是积极的,我认为通过应用 relu 函数或 softplus 在你的神经网络中加强积极性更有意义. 您还可以查看广义模型,该模型将线性回归扩展到要预测的变量仅为正(伽玛回归)或介于 0 和 1 之间(逻辑回归)的情况。如果您要预测分类变量,您还可以执行一次热编码并将回归问题转换为分类。最后但并非最不重要的一点是,正如上一个问题中所建议的,将输出标准化为 0 到 1 并在最后一层进行逻辑回归可能会很有趣。希望这有帮助
我的理解是线性模块本质上是线性回归。因此,如果您说“简单线性”,我假设如果有任何明显的斜率,那么如果您的测试数据超出了训练数据的范围,那么负数是不可避免的。我说了这么多,也许线性模型不是最好的选择。
关于 ReLU,它可能与假设您使用 sigmoid 激活没有太大区别。两者都返回一个介于 0 和 1 之间的值。
您应该考虑的另一件事是是否在 0 和 1 之间标准化您的输入。 HTH
其它你可能感兴趣的问题