具有单独成本的成本敏感分类

数据挖掘 机器学习 神经网络 分类 成本函数
2021-09-29 06:22:15

我目前正面临一个问题,我不确定是否没有更简单的解决方案。

我正在尝试使用数据集训练 DNN,以完成对成本敏感的分类任务。关于此类任务的经典文献使用对于任何类型的错误分类都是恒定的成本权重。我的问题需要使用输入的一个维度作为该单一分类的错误分类成本。

我的解决方案是使用 TensorFlow 并将我稍后需要的参数添加到集合中,然后编写一个自定义损失函数,在其中我从集合中获取对成本敏感的损失的值。

所以我的问题是,有人知道任何更简单的解决方案、开源实现等吗?

1个回答

有两种类型的分类成本:每类和每实例。

keras中,例如 cost,我们通过馈入为每个训练样本分配一个sample_weight成本.fit例如,如果我们在第 1、2、3 和 4 行中有 4 个训练样本,误分类成本分别为 2.5、1.5、1.0 和 1.0,则我们输入sample_weight=[2.5, 1.5, 1.0, 1.0].

对于类成本,如果有 0、1 和 2 三个类,错误分类成本分别为 1.0、3.0、1.0,我们提供class_weight=[1.0, 3.0, 1.0].

这是Keras 中的分步分类示例

你应该在这条线上喂你的体重:

model.fit(train_images, train_labels, epochs=5)