机器学习-分类模型指标


分类问题

有一个判断性别的机器学习模型, 使用它来判断「是否为男性」时, 会出现 4 种情况:

这 4 种情况构成了混淆矩阵:

其中 T/F 描述机器判断结果的正确性, P/N 描述机器判断分类的正负性.

基础分类指标

准确率 Accuracy

准确率为预测正确的结果占总样本的百分比:

可以判断总的正确率, 但是在样本不平衡的情况下, 不能作为指标来衡量结果. 在正样本占 90%, 负样本占 10% 的总样本中, 样本严重不平衡. 这种情况只需将全部样本预测为正即可得到 90% 的准确率, 结果含有水分, 准确率失效.

查准率 Precision

查准率为所有被预测为正的样本中实际为正的样本的概率:

查准率代表对正样本结果中的预测准确程度, 有多少把握预测正确; 而准确率则代表整体的预测准确程度, 包括正样本和负样本.

查全率 Recall

查全率为所有实际为正的样本中被预测为正的样本的概率:

查全率越高, 代表实际用户被预测出来的概率越高.

F1分数 F1$_$Score

Precision 和 Recall 之间的关系用 P-R 曲线来表达:

以逻辑回归举例, 输出是一个 0 到 1 之间的概率数字, 根据这个概率判断用户好坏, 必须定义一个阈值. 为了找到一个最合适的阈值满足我们的要求, 必须遍历 0 到 1 之间所有的阈值, 每个阈值下都对应着一对 Precision 和 Recall, 从而得到了这条曲线.

想要找到二者之间的平衡点, 就需要一个新的指标 F1$_$Score. F1$_$Score 同时考虑了 Precision 和 Recall, 让二者同时达到最高, 公式为:

P-R 曲线的两个指标都聚焦于正样本, 适合评估在相同的类别分布下正例的预测情况.

样本不平衡处理

灵敏度 Sensitivity/特异度 Specificity/真正率 TPR/假正率 FPR

以下指标能无视样本不平衡:

Sensitivity 为实际为正的样本被预测为正的概率, Specificity 为实际为负的样本被预测为负的概率. 由于关心正样本, 所以使用 1 - Specificity, 查看负样本被错误预测为正的概率.

TPR 和 FPR 分别从实际表现的各个结果角度出发, 在实际的正样本和负样本中来观察相关概率, 无论样本是否平衡, 都不会被影响. TPR 只关注正样本中有多少被真正覆盖, FPR 只关注负样本中有多少被错误覆盖的.

从「条件概率」说起

假设 X 为预测值, Y 为真实值, 可以将这些指标按条件概率表示:

如果先以实际结果为条件 (Recall/Sensitivity/Specificity), 就只需考虑一种样本; 而先以预测值为条件 (Precision), 需要同时考虑正样本和负样本. 所以先以实际结果为条件的指标都不受样本不平衡的影响, 相反以预测结果为条件就会受到样本不平衡的影响.

接受者操作特征曲线 ROC

ROC 曲线的横坐标为假正率 FPR, 纵坐标为真正率 TPR:

与 P-R 曲线类似, ROC 曲线也通过遍历所有阈值来绘制:

改变阈值只是改变预测的正负样本数, 即 TPR 和 FPR, 但是曲线本身不变. FPR 表示模型虚报的响应程度, 而 TPR 表示模型预测响应的覆盖程度. TPR 越高, 同时 FPR 越低, 即 ROC 曲线越陡, 那么模型性能越好:

当测试集中的正负样本的分布变化时, TPR 和 FPR 能无视样本不平衡, ROC 曲线聚焦于整体, 保持不变, 使其成为较均衡的评估方法.

曲线下面积 AUC

为了计算 ROC 曲线上的点, 可以使用不同的分类阈值多次评估逻辑回归模型, 但效率非常低. 一种基于排序的高效算法可以提供此类信息, 称为 AUC.

可以断言, AUC 越大, 模型效果越好. 随机判断响应与否, 正负样本覆盖率都是 50%, 表示随机效果, 对应的 ROC 曲线即对角线. 在最坏情况下总有 TPR=FPR, 即 AUC = 0.5; 如果AUC < 0.5, 只要取反预测类别, 便得到了 AUC > 0.5 的分类器.


文章作者: Chengsx
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Chengsx !
  目录