我有一组来自模型的预测,以及一组真实的观察值,我想创建一个ROC。
预测的质量(绝对误差项)与预测的大小无关。所以我有一组预测(pred(1),pred(2),...,pred(n))和观察(obs(1),obs(2),...,obs(n))。
有人告诉我创建我的二元分类矢量标签(i)的元素作为标签(i)= ifelse(| obs(i) - pred(i)|< tol,1,0)然后计算AUC(tol是一些重新规定的容忍度)。因此,对于每个预测,如果它接近相应的观察,则相应的标签为1,否则为0。
但是我没有看到建议的标签是如何有效的,因为更高的pred()值不一定会区分我的二进制分类,即预测值不能用于“降低”我预测的质量(即给定的阈值不会自然地划分我的数据)。有人可以帮我解释一下这里有什么用?以上建议是否有效?或者ROC不适合在这里使用?
答案 0 :(得分:0)
ROC分析是针对二元分类定义的,其中观察到的标签可以采用两个值(二进制),并且您的预测是任何类型的数字。 ROC分析扩展到多级分类,但您的问题表明您的观察是某种连续测量。你可以将它们二值化(类似于label(i) = ifelse(obs(i) > someValue, 1, 0)
),但是标签依赖于分类是无效的:它们必须是某种与分类器无关的真理。
或者,如果您的观察结果是连续的,则应使用相关系数或类似度量来评估预测的质量。