1、准确率accuracy
预测正确的样本数/总样本数,但accuracy对于样本数据不均衡的问题来说不具有说服力,当样本不均衡时,准确率即是很高也不代表分类器效果好
#准确率from sklearn.metrics import accuracy_scorey_true = [2, 1, 0, 1, 2, 0]y_pred = [2, 0, 0, 1, 2, 1]accuracy_score(y_true, y_pred) #总样本数6个,预测正确了4个,正确率:4/6
在介绍下面的评估指标时,先明白以下概念,在多类分类问题中,分类结果一般有4种情况:
(1) 属于类C的样本被正确分类到类C,记这一类样本数为 TP
(2) 不属于类C的样本被错误分类到类C,记这一类样本数为 FP
(3) 属于类别C的样本被错误分类到类C的其他类,记这一类样本数为 TN
(4) 不属于类别C的样本被正确分类到了类别C的其他类,记这一类样本数为 FN
2、精准率precision
预测为正样本中有多少是真正的正样本,精准率看的是预测为某一类的样本中有多少是真正属于这一类的,计算公式:
#精准率from sklearn.metrics import precision_scorey_true = [1, 1, 1, 1, 1, 0]y_pred = [1, 0, 0, 1, 1, 1]#精准率precision: y_pred预测出了四个正例,其中有三个为正例,精准率:3/4=0.75precision_score(y_true, y_pred)
3、召回率recall
样本中的正例有多少被预测正确了,召回率看的是在分类任务中某一类样本是否完全被预测正确,计算公式:
#召回率from sklearn.metrics import recall_scorey_true = [1, 1, 1, 1, 1, 0]y_pred = [1, 0, 0, 1, 1, 1]#召回率recall:总共有五个正例,y_pred预测正确率3个正例,召回率:3/5=0.6recall_score(y_true, y_pred)