【发布时间】:2021-04-17 13:43:42
【问题描述】:
我正在浏览 TensorFlow 的 Classification on imbalanced data。在本教程中,他们使用了Kaggle's Credit Card Fraud Detection。在this 部分,您可以看到训练 示例的数量为182276,验证 示例的数量为45569。为了评估基线模型,他们使用了 Keras 的内置指标 - TruePositive、FalsePositive、TrueNegative、FalseNegative。
但是,如果您查看train the model 部分中的训练日志,您会发现 FP+TP+FN+TN 的总和不等于训练示例的数量。总和也不等于验证数据的验证示例数。
第 1 部分
纪元 1
TP = 64
FP = 25
TN = 139431.9780
FN = 188.3956
TP+FP+TN+FN = 139709.3736
上述总和远未接近 182276。所有后续时期也是如此。为什么会这样?
第 2 部分
随着 epoch 数量的增加,总和进一步减少。例如比较 epoch 2 和 1 的值。 第二纪元
TP - 25
FP - 5.67
TN - 93973.1538
FN - 136.2967
TP+FP+TN+FN = 94135.1205
现在总和进一步减少了 45574。对于低阶的 epoch 也是如此。
- 总和不应该一样吗?
- 如果不是,那为什么它一直在下降?
第三部分
为什么训练和验证中 TP、FP、FN、TN 的值都是浮点数?根据我的理解,这些应该始终是整数。根据Understanding useful metrics 中的解释,这些值表示计数,因此应该是整数。
【问题讨论】:
-
这很奇怪,它们确实需要是整数。所以我自己下载了数据并进行了测试。所有值都是整数。数据集处理可能有问题。你也可以检查这个link
-
您是否尝试过多次运行?还是一样吗?关于其他问题的任何想法?
标签: python tensorflow keras metrics confusion-matrix