【问题标题】:ROC for predictions - how to define class labels用于预测的 ROC - 如何定义类标签
【发布时间】:2016-05-18 19:50:29
【问题描述】:

我有一组来自模型的预测和一组真实的观察值,我想创建一个 ROC。

预测的质量(以绝对误差计)与预测的大小无关。所以我有一组预测 (pred(1), pred(2), ..., pred(n)) 和观察结果 (obs(1), obs(2), ..., obs(n))。

有人告诉我将我的二元分类向量 label(i) 的元素创建为 label(i) = ifelse(|obs(i) - pred(i)|

但我看不出建议的标签是如何有效的,因为更高的 pred() 值不一定会区分我的二元分类,即预测值不能“排名”我的预测质量(即给定的阈值不会自然地划分我的数据)。有人可以告诉我在这里做什么吗?上面给出的建议是否有效?还是 ROC 不适合在这里使用?

【问题讨论】:

  • 谁让你这么做的?这当然不是 ROC 分析……您需要使用相关性度量。
  • 我的直觉说你是对的。一位同事做到了。我可以从您或其他人那里获得更多详细信息,说明为什么基于预测变量进行二值化无效?
  • *同事建议

标签: roc


【解决方案1】:

ROC 分析是为二进制分类定义的,其中观察到的标签可以采用两个值(二进制),并且您的预测是任何类型的数字。 ROC 分析扩展到多类分类,但您的问题表明您的观察是某种连续测量。您可以将它们二值化(类似于label(i) = ifelse(obs(i) > someValue, 1, 0)),但标签依赖于分类是无效的:它们必须是某种独立于您的分类器的真理。

或者,如果您的观察是连续的,您应该使用相关系数或类似度量来评估您的预测质量。

【讨论】:

  • 你确定,基于分类器二值化是无效的?
  • 看起来这张海报做了类似的二值化,你评论过但没有提到它是无效的:stackoverflow.com/a/37268167/3954614
  • @user85727 这不是问题
  • 很公平,但我想要更多细节。
猜你喜欢
  • 2019-10-06
  • 1970-01-01
  • 2014-03-12
  • 2020-03-18
  • 2021-08-02
  • 2019-10-14
  • 2018-07-20
  • 2013-01-26
  • 2021-11-15
相关资源
最近更新 更多