分类问题中性能评价指标

二分类

分类问题中会出现多种算法,那么自己如何知道算法性能的优劣呢,这就需要评价算法性能好坏的指标,这里介绍几个常用的指标.
1.准确率
评价分类问题的性能的指标一般是分类准确率,其定义是对于给定的数据,分类正确的样本数占总样本数的比例。Accuracy = 预测正确的样本数 / 所有样本数。但是这一指标在不均衡的数据上表现很差。比如说我的样本有990个正样本,10个负样本,我直接把所有样本都预测为正,我的准确率为99%,居然有这么高得准确率,但我的分类方法实际是非常不具有说服力的。
2.精准率和召回率
对于二分类问题常用的评价指标是精确率和召回率。通常以关注的类为正类,其他类为负类,分类器在数据集上的预测或者正确或者不正确,我们有4中情况,在混淆矩阵中表示如下:
分类问题中性能评价指标
精准率 :Precision=TP / (TP+FP),即在所有被预测为正的测试数据中,真正是正的比率。
召回率 :Recall=TP / (TP+FN),即在所有实际为正的测试数据中,真正是正的比率。
为了综合这两个指标并得出量化结果, 又发明了 F1Score 。
F1Score = 2*(Precision * Recall) / (Precision + Recall)
显然上面三个值都是越大越好,但往往在实际当中P和R是矛盾的,很难保证双高。
不同的分类问题,对精确率和召回率的要求也不同。
例如:假币预测,就需要很高的精确率,我需要你给我的预测数据具有很高的准确性。
肿瘤预测就需要很高的召回率。“宁可错杀三千,不可放过一个”。
对于多分类问题这三个性能指标同样可使用。
sklearn中的性能指标
在模型通过 GridSearchCV 进行特征调优的过程中,scoring 参数的选择十分重要。通常模型用的最多的还是 F1 和 ROC-AUC,但是在多分类下,选择 roc_auc 或者 f1 作为分类器的 scoring 标准就会报错,而需要使用 f1_weighted 比较合适。
sklearn库中的cross_val_score中需要对性能指标scoring进行选择:
对于二分类问题多选择f1和roc_auc
多分类常选择f1_weighted
具体的评价指标选择可参考官方文档
参考来源:https://www.codercto.com/a/27311.html
https://www.cnblogs.com/futurehau/p/6109772.html
https://blog.csdn.net/xiaodongxiexie/article/details/71915259
https://www.jianshu.com/p/1963e2774728