Tensorflow DNNClassifier损失很低,但准确度高,精确度高

时间:2016-09-14 19:49:43

标签: neural-network tensorflow

我正在使用0.10rc0 Tensorflow的contrib.learn.DNNClassifier来学习二进制分类问题。损失从最初的数千下降到0.7左右,但准确率和精确度徘徊在50%左右,而召回率下降到0.0001。使用另一个优化器损失降至70左右,准确度/精度徘徊在50%左右,召回率约为20%。

问题:如果准确性/精确度/召回率仍然很糟糕,损失怎么可能下降?

我可以理解损失函数是否错误,但我使用TF的DNNClassifier,因此他们已经指定了损失函数。我想他们知道他们在那个部门做了什么。以下是一些可能相关的其他事实:

  • 培训数据大小为130万,验证数据大小为30万,每条记录有150个功能
  • 批量大小为50,000
  • 验证集的目标列的平均值为0.517,因此数据在类的正(1)和负(0)样本之间非常均匀地分开
  • 训练和验证数据的损失大约为0.7,所以我认为这不是一个过度拟合的问题,因为它们是相同的(如果这个假设无效,请纠正我)

这是最新的验证步骤输出:

INFO:tensorflow:Validation (step 9280): labels/actual_target_mean = 0.517459, labels/prediction_mean = 0.498576, recall/positive_threshold_0.500000_mean = 0.000114476, recall = 0.000114476, auc = 0.499985, precision/positive_threshold_0.500000_mean = 0.487179, precision = 0.487179, loss = 0.721832, accuracy/threshold_0.500000_mean = 0.482538, global_step = 9280, accuracy/baseline_target_mean = 0.517459, accuracy = 0.482538

我缺少什么?

0 个答案:

没有答案