用性能度量(performance measure)来评估学习器(模型)的泛化能力。但是不同的性能度量会对不同的模型有不一样的评判结果。好坏取决于任务需求。
公式方面我就不一一列举了,本文主要学习一下ROC和AUC,并通过一个案例实际绘制一个ROC和AUC。
从案例入手:
这是根据logistic回归做的二分类模型。其中红色的表示没有肥胖症的老鼠,蓝色代表有肥胖症的老鼠。横坐标是体重。此时我们已经有个这些老鼠和其属性值(体重)。
已经根据现有数据D给出模型,纵坐标是患有肥胖症的可能性[0, 1]。但我们并不想知道可能性,我们想要一个判断,即某老鼠是否有病。所以我们通过设置阈值进行判断。
上图设置阈值为0.5,如果体重相应的百分比大于0.5,即有病,反之则无。
我们在测试集中发现,有的分类正确,有的分类错误。如上图。蓝色点是有病的,左边第一个蓝点被错误分类,右边三个蓝点的分类正确;同理,左边三个红点被正确分类,右起第一个红点被错误分类。此时我们引入confusion martix(混淆矩阵)进行分析。
混淆矩阵 1
上面的混淆矩阵是根据阈值在0.5的情况下的分类情况。
1- 真正例True Positive/真阳(预测正,实际正) = 3 (左上)
2- 假正例False Positive/假阳 (预测反,实际正) = 1 (右上)
3- 真反例True Negative/真阴 (预测反,实际反) = 3 (右下)
4- 假反例False Negative/假阴 (预测反,实际正)= 1 (左下)
关于阈值的设定:阈值设定代表了我们对业务的需求,如果我们想要不放过任何一个得病