对于分类问题进行了一个小的总结,并给出python代码方便各位直观的了解其含义。
目录
-
准确率
- 定义:对于给定的测试数据集,分类器正确分类的样本数与总样本数之比。
-
公式:
-
缺点:在正负样本不平衡的情况下,这个指标有很大的缺陷。
-
代码:
## accuracy from sklearn.metrics import accuracy_score y_pred = [0, 1, 0, 1] y_true = [0, 1, 1, 1] print('ACC:',accuracy_score(y_true, y_pred))
ACC: 0.75
-
精确率
- 定义:精确率是检索出相关文档数与检索出的文档总数的比率(正确分类的正例个数占分类为正例的实例个数的比例),衡量的是检索系统的查准率。
- 公式:
- 代码:
from sklearn import metrics y_pred = [0, 1, 0, 0] y_true = [0, 1, 1, 1] print('Precision',metrics.precision_score(y_true, y_pred))
Precision 1.0
-
召回率
- 定义:召回率是指检索出的相关文档数和文档库中所有的相关文档数的比率(正确分类的正例个数占实际正例个数的比例),衡量的是检索系统的查全率。
- 公式:
- 代码:
from sklearn import metrics y_pred = [0, 1, 0, 0] y_true = [0, 1, 1, 1] print('Recall',metrics.recall_score(y_true, y_pred))
Recall 0.3333333333333333
-
F1
- 定义:F1分数(F1-score)是分类问题的一个衡量指标。它是精确率和召回率的调和平均数,最大为1,最小为0。
- 代码:
from sklearn import metrics y_pred = [0, 1, 0, 0] y_true = [0, 1, 1, 1] print('F1-score:',metrics.f1_score(y_true, y_pred))
F1-score: 0.5
-
AUC
-
定义:AUC是一个模型评价指标,只能用于二分类模型的评价. AUC是Area under curve的首字母缩写。 Area under curve是什么呢,从字面理解,就是一条曲线下面区域的面积。
详解:https://www.zhihu.com/question/39840928
-
代码:
import numpy as np from sklearn.metrics import roc_auc_score y_true = np.array([0, 0, 1, 1]) y_scores = np.array([0.1, 0.4, 0.35, 0.8]) print('AUC socre:',roc_auc_score(y_true, y_scores))
AUC socre: 0.75