【发布时间】:2022-05-04 20:11:18
【问题描述】:
我对一个数据集进行了预测分析并绘制了 ROC 曲线。
我不太确定曲线的形状。它不需要是波浪曲线。但是看看治疗方法,我们可以决定,这有一个问题。我得到了大约 71% 的准确率,这对我来说没问题。但我担心曲线的形状,它不是波浪形的。例如,如下所示。 (取自网络)
【问题讨论】:
标签: machine-learning roc
我对一个数据集进行了预测分析并绘制了 ROC 曲线。
我不太确定曲线的形状。它不需要是波浪曲线。但是看看治疗方法,我们可以决定,这有一个问题。我得到了大约 71% 的准确率,这对我来说没问题。但我担心曲线的形状,它不是波浪形的。例如,如下所示。 (取自网络)
【问题讨论】:
标签: machine-learning roc
看起来你只绘制了三个点。 ROC 曲线的想法是显示当您调整决策阈值以建立每个点的性能时 FP/TP 比率如何变化。如果没有有关您如何绘制此图或您拥有哪些参数的信息,就很难再说什么了。
一个典型的例子是调整攻击性级别——如果您有一个垃圾邮件扫描器,它会在特定分数下将其分类为垃圾邮件,那么更改分数阈值会如何改变 TP/FP 率?因此,X 轴也将有效地显示阈值设置(但可能以某种方式拉伸),并且每个点的曲线将显示干净集合中有多少样本将是该阈值的 FP,以及垃圾邮件集合中有多少将被正确阻止。
(“拉伸”意味着阈值设置可能不会线性映射到 FP 速率。如果阈值 0.950 和 0.975 之间没有发生任何事情,则根本不会在 x 轴上绘制该间隔。x 轴上的点是TP/FP率变化的阈值;有的阈值可能非常接近,而其他相邻点可能对应阈值的较大跳跃。)
良好的 ROC 曲线在其下方具有较大的区域。一个理想的 ROC 从 0 到 1.00 并保持在那里,但是您不需要该图来帮助您决定如何部署您的解决方案。但实际上,它们会以各种形状出现,从向左上角模糊渐近(非常好)到直对角线(非常糟糕),甚至向右下角渐近(极差;随机判断会更好)。有趣的点是 TP 率增长放缓而 FP 率开始增长更快的“拐点”(这是您应该停止增加阈值的地方)以及任何不规则性,尤其是任何打破单调性的地方。
(在您的网络示例中,在 TP 0.6 附近有一个点,增加阈值只会增加 FP。为什么会这样?样本中是否存在偏差,或者实现中存在问题?可以修复吗? ?)
【讨论】:
看起来您使用分类器的预测类(python 的 sklearn 包中的.predict 函数)而不是预测的类概率(python 的 sklearn 包中的.predict_proba 函数)绘制了点。这意味着当类从 0 切换到 1 时,只有一个阈值发生变化,而不是可以为您提供平滑曲线的值范围。
用你的预测概率替换你的预测类,这应该可以解决你的问题。
【讨论】: