ROC 曲线,作为评价机器学习模型敏感度的一条重要曲线,在分类任务评价机制中应用较多。
但是很多朋友对于 ROC 曲线的理解还是有些模糊,心想着 x 轴是 FPR
, y 轴是 TPR
, 组条曲线有些神秘。
今天,咱们用 4 个样本,使用逻辑回归,分类阈值分别从 0.,0.2,0.4,0.6,0.8,1.0,依次变化,分别求出对应分类阈值的 FRP 和 TPR 值。
这样不就得到 6 个 (FRP,TPR) 点,组个曲线,不就是 ROC 曲线吗!
# 有监督任务,四个样本的实际值:
target = np.array([1,0,1,0])
计算公式:
def TPR(TP,FN):
return TP / (TP + FN)
def FPR(FP,TN):
return FP / (FP + TN)
使用逻辑回归 Logistic regression,得到 4 个样本的概率分布为:[0.8,0.6,0.4,0.2]
当分类阈值参数 alpha 为 0.0 时:
y0 = np.array([1,1,1,1])
p00 = [TPR(2,0),FPR(2,0)]
p00
结果: