一、二分类指标
1、混淆矩阵
image.png- 精度 (TP+TN)/(TP+TN+FP+FN)
- 准确率 (TP)/(TP+FP)
- 召回率 (TP)/(TP+FN)
- f-分数 2(precisionrecall)/(precision+recall)
- 准确率-召回率曲线
- 受试者工作特征(ROC)与AUC
sklearn.metrics - from sklearn.metrics import confusion_matrix
- from sklearn.metrics import f1_score
- from sklearn.metrics import classification_report
- from sklearn.metrics import precision_recall_curve
- from sklearn.metrics import average_precision_score
- from sklearn.metrics import roc_curve
二、多分类指标
- 精度
- 混淆矩阵
- 分类报告
对于多分类问中的不均衡数据集,最常用的指标就是多分类版本的 f-分数。f-分数背后的想法是:对每一个类别计算一个二分类 f-分数,其中该类别是正类,其他所有类别组成反类。然后,使用以下策略对这些按类别 f-分数进行平均:
- “宏”平均:计算未加权的按类别 f-分数。它对所有类别给出相同的权重,无论类别中样本量大小。
- “加权”平均:以每个类别的支持作为权重来计算按类别 f-分数的平均值。分类报告中给出的就是这个值。
- “微”平均:计算所有类别中假正例、假反例和真正例的总数,然后利用这些计数来计算准确率、召回率和 f-分数。
如果对每个样本等同看待,那么推荐使用“微”平均 f-分数;如果你对每个类别等同看待,那么推荐使用“宏”平均 f-分数。
from sklearn.datasets import load_digits
from sklearn.metrics import accuracy_score
from sklearn.metrics import confusion_matrix
from sklearn.metrics import classification_report
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import f1_score
digits=load_digits()
X_train,X_test,y_train,y_test=train_test_split(digits.data,digits.target,random_state=0)
lr=LogisticRegression()
lr.fit(X_train,y_train)
pred=lr.predict(X_test)
print('Accuracy:{:.3f}'.format(accuracy_score(y_test,pred)))
print('Confusion matarix:\n{}'.format(confusion_matrix(y_test,pred)))
print(classification_report(y_test,pred))
print('Micro average f1 score:{:.3f}'.format(f1_score(y_test,pred,average='micro')))
print('Macro average f1 score:{:.3f}'.format(f1_score(y_test,pred,average='macro')))
三、回归指标
R2 是评估回归模型更直观的指标。
网友评论