我有 2 类数据 A 和 C。我想创建一个具有 3 个输出节点的 NN,将数据分类为 A、B 或 C。正确分类 A 或 C 应该具有零成本(非常好)。将 A 归类为 C 或反之亦然应该有很高的成本(非常糟糕)。但是,对于“模糊”的样本,我想将它们分类为 B,这将具有相对较低的成本(比错误分类更好,但仍然不理想)。我是 tensorflow 的新手,对定义成本函数的不同方法不满意。谁能指出我正确的方向?提前致谢
成本函数在张量流中更严重地惩罚某些类型的错误分类
数据挖掘
机器学习
神经网络
分类
张量流
成本函数
2022-02-26 17:48:50
1个回答
您正在谈论具有不同的错误分类成本。
分类包括输出一个连续分数,然后对其进行阈值化以决定离散分类。选择阈值(例如概率>0.5 导致 C)以满足您对敏感性/特异性的要求。
训练算法只关心你的连续得分。这意味着您可以通过简单的二元分类(通常使用-loss)来简化自己,并在训练完成后softmax_cross_entropy_with_logits创建模糊的 B 类,例如 [0,0.4) 是 A,[0.4,0.6] 是 B 和(0.6,1] 是 C。
要准确实现您所说的,更多地惩罚某些错误,那么您想使用weighted_cross_entropy_with_logits。这会将您输出的分数解释为概率,并且您需要做更多工作才能获得合理的阈值,因此不建议将其作为第一步,因为它可能会增加比结果更多的复杂性。
我还建议阅读有关roc 分析的维基百科文章
其它你可能感兴趣的问题