我正在尝试将深度学习应用于目标类(500k,31K)之间的高级不平衡的二进制分类问题.我想写一个自定义的损失函数,应该是这样的:最小化(100 - ((predict_smallerclass)/(total_smallerclass))*100)
欣赏有关如何构建此逻辑的任何指示.
我正在尝试用不平衡的数据训练网络.我有A(198个样本),B个(436个样本),C个(710个样本),D个(272个样本),我读过"weighted_cross_entropy_with_logits"但我发现的所有例子都是二进制分类所以我不是很对如何设置这些重量充满信心.
样本总数:1616
A_weight:198/1616 = 0.12?
如果我理解的话,背后的想法是惩罚少数民族阶级的错误,并且更加积极地评价少数民族中的命中,对吧?
我的代码:
weights = tf.constant([0.12, 0.26, 0.43, 0.17])
cost = tf.reduce_mean(tf.nn.weighted_cross_entropy_with_logits(logits=pred, targets=y, pos_weight=weights))
Run Code Online (Sandbox Code Playgroud)
我已经阅读了这个和其他二进制分类的例子,但仍然不是很清楚.
提前致谢.