目前常用的评价指标有:准确率(Precision)、召回率(Recall)、F值(F-Measure)、ROC曲线、PR曲线,AUC曲线。
1.混淆矩阵
True Positive(真正,TP):将正类预测为正类数
True Negative(真负,TN):将负类预测为负类数
False Positive(假正,FP):将负类预测为正类数→误报 (Type I error)
False Negative(假负,FN):将正类预测为负类数→漏报 (Type II error)
2.准确率(Accuracy)
定义:所有分类结果中被分对的比例。
计算公式为:
通常来说,准确率越高,分类器越好。但有时候准确率高不代表算法就是好。
3.错误率(Error rate)
定义:所有分类结果中被分错的比例。
计算公式为:
即accuracy =1 - error rate
4.精确率(也称为查准率)(precision)
定义:预测为正类的样本中有多少是真正的正类。一种就是把正类预测为正类(TP),另一种就是把负类预测为正类(FP)
计算公式:
精确率越高越好。
Sklearn代码实现:
from sklearn.metrics import precision_score
y_true = [0,1,2,0,1,2]
y_pred = [0,2,1,0,0,1]
precision_score(y_true,y_pred,average='micro')
输出结果:
0.3333333333333333
5.召回率(也称为查全率)(recall)
定义:样本中的正例有多少被预测为正例。一种是把原来的正类预测成正类(TP),另一种就是把原来的正类预测为负类(FN)。
计算公式:
召回率越高越好。
Sklearn代码实现:
from sklearn.metrics import recall_score
y_true = [0,1,2,0,1,2]
y_pred = [0,2,1,0,0,1]
recall_score(y_true,y_pred,average='micro')
输出结果:
0.3333333333333333
6. 综合评价指标(F-Measure)
定义:是Precision和Recall加权调和平均
P和R指标有时候会出现的矛盾的情况,这样就需要综合考虑它们。
计算公式:
当参数=1时,就是最常见的F1-score,即
F1越高越好,说明模型越稳健。
Sklearn代码实现:
from sklearn.metrics import f1_score
y_true = [0,1,2,0,1,2]
y_pred = [0,2,1,0,0,1]
f1_score(y_true,y_pred,average='micro')
输出结果:
0.3333333333333333
7.其他评价指标
计算速度:分类器训练和预测需要的时间
鲁棒性:处理缺失值和异常值的能力。
可扩展性:处理大数据集的能力。
可解释性:分类器预测标准的可理解性。
8. TPR(True Positive Rate)、FPR(False Positive Rate)
TPR表示实际正样本中被预测正确的概率。
FPR表示实际负样本中被错误预测为正样本的概率。
9.ROC(Receiver Operator Curve)、PR(Precision Recall)
ROC和PR曲线都被用于评估机器学习算法对一个给定数据集的分类性能。
ROC:横坐标为FPR,纵坐标为TPR所画出的曲线。
在ROC空间,ROC曲线越凸向左上方向效果越好。
PR:横坐标为Recall,纵坐标为Precision所画出的曲线。
在PR空间,PR曲线是右上凸效果越好。
10.AUC(Area Under Curve)
AUC:ROC曲线下阴影的面积,计算方式即为ROC Curve的微积分值。是衡量学习器优劣的一种性能指标,表示预测正例排在负例前面的概率。
AUC越大,说明分类效果越好,AUC=1是完美分类器。
参考文章:
1.https://blog.csdn.net/quiet_girl/article/details/70830796
2.http://blog.sina.com.cn/s/blog_17b9e19320102x7ru.html
如果有不足之处,麻烦提出指正。如觉得有用,麻烦点个赞。