混淆矩阵
真阳性TP:prediction为1,且标签也为1,预测正确✅
假阳性FP:prediction为1,而标签为0,预测错误❎
真阴性TN:prediction为0,且标签也为0,预测正确✅
假阴性FN:prediction为0,而标签也为1,预测错误❎
矩阵的列为label,行为prediction
准确率 Accuracy
对于给定的测试数据集,分类器正确分类的样本数与总样本数之比. 也就是损失函数是0-1损失时测试数据集上的准确率
精确率 Precision
精确率也叫查准率,accuracy = TP / (TP + FP),准确率是模型预测为1的样本中label确实为1的百分比
精确率在检索系统中表示检出的相关文献与检出的全部文献的百分比,衡量检索的信噪比。
注意是检索出的全部文献!!这就是和准确率(accuracy)的区别所在,准确率是检出的相关文献与全部文献的百分比,假设全部文献为inf,则准确率应该是0,这明显是不恰当的,所以这时应该用精确率来作为评价指标。
召回率
recall = TP / (TP + FN),召回率是所有label为1的样本中被模型预测成1的百分比。
如果有100个标签为1的样本,模型预测了其中1个为1,只看准确率就是100%了,显然只看准确率是不行的,还得看模型从全为1的样本里找出来了多少个,比如找出来了82个,那么召回率就是82%。
查全率在检索系统中:检出的相关文献与全部相关文献的百分比,衡量检索的覆盖率
准确率与召回率的权衡
实际的二分类中,positive-1标签可以代表好也可以代表坏,但一般作为positive-1的指标指的是你更关注的样本表现,比如“是垃圾邮件”“是恶性肿瘤”“将要发生地震”。
要求模型有更高的【召回率】recall,要预测地震或者是检测恶性肿瘤就都得要求模型有较高的召回率,宁可错杀不可放过。
要求模型有更高的【精确率】precision,自动放进回收站里的都得确定是垃圾邮件,千万不能把正常的工作通知邮件丢进去。
ROC
ROC曲线的横坐标为假阳性率false positive rate(FPR):FP / (FP + TN),即实际无病,但根据筛检被判为有病的百分比。
纵坐标为真阳性率true positive rate(TPR):TP / (TP + FN) ,此处即【召回率】recall,即实际有病,但根据筛检被判为有病的百分比。
所以ROC曲线越往左上角,横坐标越小,误判越小,纵坐标越大,正判越大,模型效果越好。
ROC曲线有个很好的特性:当测试集中的正负样本的分布变化的时候,ROC曲线能够保持不变。而Precision-Recall曲线会变化剧烈,故ROC经常被使用。
AUC
AUC(Area Under Curve)被定义为ROC曲线下的面积,完全随机的二分类器的AUC为0.5,虽然在不同的阈值下有不同的FPR和TPR,但相对面积更大,更靠近左上角的曲线代表着一个更加稳健的二分类器。
同时针对每一个分类器的ROC曲线,又能找到一个最佳的概率切分点使得自己关注的指标达到最佳水平。
F1 score
F1兼顾了分类模型的准确率和召回率,可以看作是模型准确率和召回率的调和平均数,最大值是1,最小值是0。