向诸位朋友请教 auc_precision_recall 相关的问题

诸位朋友们大家好,这是一位网友在 Telegram 上的提问,但是我还没有办法为他解答,不知道大家能否指导和解答一下?

does any one have experience on training binary classifier with skewed dataset?
what’s the relationship between tensorflow auc_precision_recall plot and a standard precision-recall plot?
image
let’s say a tensorflow auc_precision_recall like this.
does the highest value is the optimal one?

感谢大家!


dong,发表于 2018-4-24 09:29:57

这是受试者曲线的一个方面的反映,即 recall 是将正样本中的样本预测为对时所占比例,越高,只能说明模型对正样本预测精准度提高,而并非模型整体精度提高。这是相对而言的,我在做信贷风险预测的模型,所以我的重点关注只在如何提升将违约样本的预测精准度提高。所以这曲线只能反映一方面的精准度,也许提升的过程中牺牲了负样本预测精准度。说的有点啰嗦,希望对你有用。


M 丶 Sulayman,发表于 2018-4-24 17:36:27

非常感谢你的解答!


dong(提问者),发表于 2018-4-24 20:40:42

我知道这是同样的数据的不同表现形式,即同样的数据我们可以画出一个 AUC 曲线图,也可以画出一个 precision recall 的曲线图。
这个问题里面的图片是来自 tensorboard 的一个曲线图,这个图片的 y 轴值是 0~1 的区间,而 x 轴是训练次数。
那么,我的问题是:比如当训练次数 x 为 300k 的时候,所对应的一个 y 值假如为 0.02,那么怎么理解这个 y 值 0.02?这个 0.02 和一个标准 precision recall 曲线图 (标准 precision recall 曲线图中:y 轴为 0~1 的 precision 值,x 轴为 0~1 的 recall 值) 中的值有关系吗?如果有关系,那么是和标准 precision recall 曲线图的 y 轴值意义相同 (即此 0.02 为 precision 值)?还是和标准 precision recall 曲线图 x 轴意义相同 (即此 0.02 为 recall 值)?


rz828,发表于 2018-4-24 21:20:39

赞一个,这个问题不错,我昨天也在考虑,这个 Y 轴所代表的含义是否直接对应于我们所说的混淆矩阵相关计算公式所得的 recall 还是什么。因为跑出来的数值实在有点低啊,我都怀疑这 Y 轴是不是代表的 1- recall 或者损失什么的,我还没用过 TF 的 AUC 的相关计算。


M 丶 Sulayman,发表于 2018-4-25 09:50:15

按道理说,这个 tensorboard 的 auc_precision_recall 曲线图上的任意一点 (x,y)=(1, 0.5009) 的意义应该是:在训练 step=1 时所得到的 标准 Precision-Recall 曲线图的面积值,即大家所说的 PR-AUC。但是我有点不能理解的是:为什么在训练 step 为 1 的时候,我就能得到一个 0.5 的值,这个值我觉得太大了。我已经把这个问题发在 Stack Overflow 上去了,你也可以去看看我关于这个问题更详细的说明,下面是链接:tensorflow - How to understand auc_precision_recall curve in tensorboard? - Stack Overflow


rz828,发表于 2018-4-26 11:13

一条 precision recall 的曲线对应的是一个模型,曲线上的点对应同一模型应用不同阀值,而这样一条曲线给出一个 AUC 值,这个值是评价模型好坏的参考之一。在模型训练过程中,每一次训练都给出了一个备选的模型,而这样的一个模型就对应了一条 PR 曲线和一个 AUC_PR 值。再以训练次数为 x 轴,就画出了楼主 tensorboard 中的曲线。这个图中的一个 y 值对应的是相应 x 训练步骤时那个模型的好坏,它与 PR 曲线中数值的关系在于它是对那个模型的 PR 曲线的一种” 总结 “,而整条 tensorboard 曲线反映了随着训练进程,模型好坏的变化(再强调一下,只是评价模型好坏的参考之一)。说到” 理解 “、” 含义 “,据我所知,AUC_PR 值似乎没有特别直观的类似 AUC_ROC 那样的概率解释,我所说的或者是能说的只是一种定性的理解。


yunhai_luo,发表于 2018-4-25 17:02:50

非常感觉你的说明!我最开始就是这么理解的,但是让我对这个理解产生怀疑的原因是我的训练结果真的很奇怪。关于我的疑问的更详细内容我已经发到 Stack Overflow 上去了,链接:tensorflow - How to understand auc_precision_recall curve in tensorboard? - Stack Overflow 我的疑问是:1. https://i.stack.imgur.com/j6QMN.jpg 这种曲线图怎么理解(就是我在 Stack Overflow 上所说的 figure A)?2. https://i.stack.imgur.com/CfTaT.jpg 这个曲线图又应该怎么理解(这个就是 figure B)?


rz828,发表于 2018-4-26 11:23