使用TensorFlow训练不平衡数据

约瑟夫

情况:

我想知道当我的训练数据在两个标签之间的标签分配不平衡时如何最佳地使用TensorFlow。例如,假设MNIST教程已简化为仅区分1和0,其中可供我们使用的所有图像均为1或0。当我们每种图像的大约50%都需要训练和测试时,可以使用提供的TensorFlow教程轻松进行训练。但是,如果数据中90%的图像为0,而只有10%的图像为1,该怎么办?我观察到在这种情况下,TensorFlow例行地将我的整个测试集预测为0,达到了毫无意义的90%的准确性。

我成功使用的一种策略是随机选择要均匀分配0和1的批次进行训练。这种方法可确保我仍然可以使用我的所有训练数据并获得不错的结果,准确性不到90%,但是分类器更加有用。由于在这种情况下精度对我来说是没有用的,因此我选择的度量标准通常是ROC曲线下的面积(AUROC),这会导致结果大大高于0.50。

问题:

(1)我描述的策略是否是接受的或最佳的数据不平衡训练方法,还是有一种可能更好的方法?

(2)由于准确性度量标准在数据不平衡的情况下不那么有用,是否有另一个度量标准可以通过更改成本函数来最大化?我当然可以计算AUROC的后期训练,但是我可以以最大化AUROC的方式进行训练吗?

(3)我还可以对成本函数进行其他更改以改善不平衡数据的结果吗?当前,我正在使用TensorFlow教程中给出的默认建议:

cost = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(pred, y))
optimizer = tf.train.AdamOptimizer(learning_rate=learning_rate).minimize(cost)

我听说可以通过增加对较小标签类进行错误分类的成本来实现,但是我不确定如何执行此操作。

年轻的

(1)可以运用您的策略。我也在处理不平衡数据,我尝试先使用下采样和上采样方法使训练集均匀分布。或使用集成方法来训练具有均匀分布子集的每个分类器。

(2)我还没有任何方法可以最大化AUROC。我的想法是,AUROC是基于真实的肯定和错误的肯定率,这不能说明它在每个实例上的工作情况。因此,它不一定会最大化分离类的能力。

(3)关于通过类实例的比率对成本进行加权,它类似于Tensor流中类不平衡二进制分类器的损失函数和答案。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

初始训练是否适用于不平衡的数据集?(Tensorflow)

来自分类Dev

不平衡训练数据集和回归模型

来自分类Dev

如何通过svmlight中可用的不平衡训练数据集来提供平衡训练的成本?

来自分类Dev

如何通过svmlight中可用的不平衡训练数据集来提供平衡训练的成本?

来自分类Dev

编辑 TensorFlow 源以修复不平衡的数据

来自分类Dev

如何平衡不平衡的面板数据?

来自分类Dev

使用libSVM的SVM中的数据不平衡

来自分类Dev

如何通过训练和交叉验证集正确地分割不平衡数据集

来自分类Dev

从长到宽的不平衡数据帧

来自分类Dev

使用RcppParallel的堆栈不平衡

来自分类Dev

Tensorflow 中的不平衡二元分类

来自分类Dev

重新采样不平衡数据集的数据框

来自分类Dev

R不平衡数据帧数据清理

来自分类Dev

来自不平衡面板数据的R样本

来自分类Dev

根据不平衡数据在ggplot中创建重叠直方图

来自分类Dev

在Spark MLlib中处理不平衡的数据集

来自分类Dev

迷你图数据帧不平衡

来自分类Dev

大型不平衡数据的机器学习模型建议

来自分类Dev

如何确定不平衡数据集的class_weights

来自分类Dev

如何处理R中不平衡的数据集?

来自分类Dev

SAS中不平衡数据集的滚动窗口模型

来自分类Dev

带有不平衡数据的SKlearn SVM RBF

来自分类Dev

迷你图数据帧不平衡

来自分类Dev

数据集不平衡时的连接优化

来自分类Dev

KMeans的不平衡因子?

来自分类Dev

PInvoke使堆栈不平衡

来自分类Dev

如何使图像不平衡?

来自分类Dev

在sklearn中使用RandomForestClassifier进行不平衡分类

来自分类Dev

使用多个提取路径时,JSON格式的提取文档数据选项节点会引发“不平衡对”错误

Related 相关文章

热门标签

归档