基本介绍
逻辑回归与分类阈值
在逻辑回归模型中,输出的是样本属于某类别的概率。通常我们通过设定一个阈值来决定如何将概率转化为明确的类别。例如,在研究老鼠是否肥胖的例子中,假设我们有一组老鼠的数据,通过逻辑回归模型,可以得出每只老鼠为“肥胖”或“非肥胖”的概率。
数据:老鼠的体重(x轴)和肥胖情况(y轴)。 逻辑回归曲线:拟合后,根据体重可以预测老鼠肥胖的概率。 阈值:如果将阈值设定为0.5,那么概率大于0.5的老鼠将被分类为肥胖,概率小于等于0.5的老鼠被分类为非肥胖。
通过设定阈值0.5,分类结果如上。我们可以通过改变阈值来探索不同的分类效果。
混淆矩阵与性能指标
真阳性(TP):真实为肥胖且被正确分类为肥胖的样本。 假阳性(FP):真实为非肥胖但被错误分类为肥胖的样本。 真阴性(TN):真实为非肥胖且被正确分类为非肥胖的样本。 假阴性(FN):真实为肥胖但被错误分类为非肥胖的样本。
模型正确分类了2只肥胖的老鼠(TP=2),错误分类了1只非肥胖的老鼠为肥胖(FP=1)。 模型正确分类了1只非肥胖的老鼠(TN=1),没有错误分类肥胖的老鼠为非肥胖(FN=0)。
灵敏度(Sensitivity)/ 真阳性率(True Positive Rate, TPR):TP / (TP + FN),表示在所有实际肥胖的样本中,模型正确分类了多少。 假阳性率(False Positive Rate, FPR):FP / (FP + TN),表示在所有实际非肥胖的样本中,模型错误分类为肥胖的比例。
真阳性率 TPR = 2 / (2 + 0) = 1 假阳性率 FPR = 1 / (1 + 1) = 0.5
ROC 曲线
ROC 曲线通过展示不同阈值下的真阳性率(TPR)和假阳性率(FPR)的变化情况,帮助我们更好地理解模型在不同决策阈值下的表现。ROC 曲线的纵轴是真阳性率(Sensitivity/TPR),横轴是假阳性率(FPR)。
绘制 ROC 曲线步骤:
选择阈值:从较低的阈值开始,逐步提高。 计算每个阈值下的 TPR 和 FPR。 在 ROC 图上绘制点:将每个阈值对应的 TPR 和 FPR 在图上绘制为一个点。 连接这些点:形成 ROC 曲线。
ROC 曲线绘制的例子
曲线越靠近图的左上角,说明模型的分类性能越好。 曲线越接近对角线,模型的分类效果越差,因为对角线代表随机猜测的分类结果。
AUC (曲线下面积)
AUC 是 ROC 曲线下的面积,用于衡量模型的整体性能。AUC 的取值范围是 0 到 1,AUC 越接近 1,说明模型的分类能力越强。
AUC 解读示例
AUC = 1:完美分类,模型的性能非常好。 AUC = 0.5:模型没有任何分类能力,相当于随机猜测。 AUC < 0.5:模型表现比随机猜测还差。
比如,若红色曲线的 AUC 是 0.9,而蓝色曲线的 AUC 是 0.7,则红色曲线对应的模型性能要优于蓝色曲线对应的模型。
Precision
在一些样本不均衡的情况下,例如少数类占比非常低,ROC 曲线可能无法很好地反映模型性能。这时,可以用精确率(Precision)来替代假阳性率(FPR)。
精确率公式:
例子:罕见疾病检测
在罕见疾病的检测中,健康人群占比可能远高于患病人群。这时,精确率比假阳性率更加重要,因为我们关注的是模型预测为患病的那些人中,真正患病的人占多大比例。