如何在回归任务中赋予非零值一个更大的带损失函数的权重?

2024-05-01 21:46:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个回归任务:y=f(x),
y中的大部分值为零,因此,如果以均方误差(mse)作为损失函数,则模型将给出所有预测y的极小值
所以,我想给y中的非零值赋予更大的权重
我该怎么办?
我想尝试的一个解决方案是定义一个新的损失函数:

loss = e * mse(y, y_pred)[y!=0] + (1-e) * mse(y, y_pred)[y==0]

e是权重参数,它能工作吗?如何在tensorflow中实现


Tags: 函数模型参数定义tensorflow解决方案误差权重
1条回答
网友
1楼 · 发布于 2024-05-01 21:46:45

如果你想在y张量中得到更大的值,你可以用一个标量变量乘以y张量

y=tf.math.multiply(y,10)

在某些情况下,用mse训练的模型可以预测非常平滑的输出,如果你想要更清晰的输出,你可以使用平均成对误差

loss=tf.losses.mean_pairwise_squared_error(y_pred,y,weights=e)

相关问题 更多 >