我试图用一个条件不对称损失函数和一个回归模型,我遇到了一些问题。我想惩罚错误的方式结果,但方向会根据变量的符号翻转
import numpy as np
def CustomLoss(predict,true):
ix = np.logical_and((predict*true)>0,np.abs(true)>=np.abs(predict))
n = ((predict - true)**2)*2
y = (predict-true)**2
out = np.where(ix,y,n)
return out
# CustomLoss(1,3) = 4
# CustomLoss(1,-1) = 8 ## Bigger loss for wrong way result
# CustomLoss(-2,-4) = 4
# CustomLoss(-2, 0) = 8 ## Bigger loss for wrong way result
我尝试使用scipy optimize,它收敛于一些数据,但不收敛于其他数据。函数仍然是凸的,所以我认为这应该总是收敛的
我通常使用CVXPY,但不知道如何实现成本函数的条件部分
目前没有回答
相关问题 更多 >
编程相关推荐