机器学习|模型评价指标说明和scikit-learn代码实现

目前常用的评价指标有:准确率(Precision)、召回率(Recall)、F值(F-Measure)、ROC曲线、PR曲线,AUC曲线。
1.混淆矩阵
机器学习|模型评价指标说明和scikit-learn代码实现
文章图片

机器学习|模型评价指标说明和scikit-learn代码实现
文章图片

True Positive(真正,TP):将正类预测为正类数
True Negative(真负,TN):将负类预测为负类数
False Positive(假正,FP):将负类预测为正类数→误报 (Type I error)
False Negative(假负,FN):将正类预测为负类数→漏报 (Type II error)
2.准确率(Accuracy)
定义:所有分类结果中被分对的比例。
计算公式为:
机器学习|模型评价指标说明和scikit-learn代码实现
文章图片

通常来说,准确率越高,分类器越好。但有时候准确率高不代表算法就是好。
3.错误率(Error rate)
定义:所有分类结果中被分错的比例。
计算公式为:
机器学习|模型评价指标说明和scikit-learn代码实现
文章图片

即accuracy =1 - error rate
4.精确率(也称为查准率)(precision)
定义:预测为正类的样本中有多少是真正的正类。一种就是把正类预测为正类(TP),另一种就是把负类预测为正类(FP)
计算公式:
机器学习|模型评价指标说明和scikit-learn代码实现
文章图片

精确率越高越好。
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)。
计算公式:
机器学习|模型评价指标说明和scikit-learn代码实现
文章图片

召回率越高越好。
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指标有时候会出现的矛盾的情况,这样就需要综合考虑它们。
计算公式:
机器学习|模型评价指标说明和scikit-learn代码实现
文章图片

当参数=1时,就是最常见的F1-score,即
机器学习|模型评价指标说明和scikit-learn代码实现
文章图片

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表示实际正样本中被预测正确的概率。
机器学习|模型评价指标说明和scikit-learn代码实现
文章图片

FPR表示实际负样本中被错误预测为正样本的概率。
机器学习|模型评价指标说明和scikit-learn代码实现
文章图片

9.ROC(Receiver Operator Curve)、PR(Precision Recall)
ROC和PR曲线都被用于评估机器学习算法对一个给定数据集的分类性能。
ROC:横坐标为FPR,纵坐标为TPR所画出的曲线。
在ROC空间,ROC曲线越凸向左上方向效果越好。
机器学习|模型评价指标说明和scikit-learn代码实现
文章图片

PR:横坐标为Recall,纵坐标为Precision所画出的曲线。
在PR空间,PR曲线是右上凸效果越好。
机器学习|模型评价指标说明和scikit-learn代码实现
文章图片

10.AUC(Area Under Curve)
AUC:ROC曲线下阴影的面积,计算方式即为ROC Curve的微积分值。是衡量学习器优劣的一种性能指标,表示预测正例排在负例前面的概率。
AUC越大,说明分类效果越好,AUC=1是完美分类器。
机器学习|模型评价指标说明和scikit-learn代码实现
文章图片

参考文章:
1.https://blog.csdn.net/quiet_girl/article/details/70830796
2.http://blog.sina.com.cn/s/blog_17b9e19320102x7ru.html
【机器学习|模型评价指标说明和scikit-learn代码实现】如果有不足之处,麻烦提出指正。如觉得有用,麻烦点个赞。

    推荐阅读