这是我第一次来这里。我不知道我的标题是否明确。
我正尝试将深度学习(FCN)应用到具有高度不平衡(0: 48887, 1:8862)
的二进制分类问题。
我想最大化以下功能:(#true_positive*165 - #false_positive*203) / #cases to predict
。
对于班级失衡,我尝试了class_weight
,我认为解决此问题的方法将是更改损失函数,但我不确定。我将非常感谢任何有关如何解决此任务的建议。谢谢!
答案 0 :(得分:0)
将此作为损失:
def customLoss(true, pred):
true_positive = true * pred
false_positive = (1-true) * pred
#returning negative because Keras will minimize this instead of maximize
return - (true_positive - false_positive)
样本的平均值(按情况除以进行预测)稍后会自动生成。
针对不平衡的建议:将每个学期除以其预期总数:
def balancedLoss(true, pred):
negatives = 1-true
true_positive = (true * pred) + K.epsilon()
false_positive = (negatives * pred) + K.epsilon()
total_positive = K.sum(true) + K.epsilon()
total_negative = K.sum(negatives) + K.epsilon()
return (false_positive / total_negative) - (true_positive / total_positive)
此建议需要大批量。