0. 一个例子
在分类(classification)问题的模型评估中,常用的评测指标有以下7个:
- 准确率(accuracy)
- 精确率(precision)
- 召回率(recall)
- F1-Score
- ROC曲线
- P-R曲线
- AUC面积
下面,通过著名的鸢尾花分类的例子来具体说明。
鸢尾花的特征有4个:
- Sepal Length(花萼长度)
- Sepal Width(花萼宽度)
- Petal Length(花瓣长度)
- Petal Width(花瓣宽度)
鸢尾花的种类有3种:
- Iris Setosa(山鸢尾)
- Iris Versicolour(杂色鸢尾)
- Iris Virginica(维吉尼亚鸢尾)
数据集中共150条数据,每类鸢尾花有50条数据。
选择KNN算法进行分类(欧式距离,K=8),得到模型的分类结果如下表所示:
实际为Iris-versicolor | 实际为Iris-virginica | 实际为Iris-setosa | |
---|---|---|---|
预测为Iris-versicolor | 49 | 4 | 1 |
预测为Iris-virginica | 1 | 46 | 0 |
预测为Iris-setosa | 0 | 0 | 49 |
几个定义:
- TP(True Positive,真正):将正类预测为正类
- TN(True Negative,真负):将负类预测为负类
- FP(False Positive,假正):将负类预测为正类
- FN(False Negative,假负):将正类预测为负类
可以看出,前两个是我们期望出现的情况,后两个是期望不出现的情况。
1. 准确率(Accuracy)
定义:正确分类的样本数与总样本数之比
在上面的例子中,
准确率的概念很好理解,就是分类正确的比例,是一个非常常用的评估指标。但是,准确率高并不代表分类算法就好,当各个类别的样本分布很不均匀时,即使准确率达到99%也没用。
还是用上面的例子,如果Iris Setosa的样本数为98,Iris Versicolour和Iris Virginica的样本数都为1,那么,分类器只需要把结果全部置为Iris Setosa,就可以获得98%的正确率。所以,只靠准确率来评价一个模型的优劣是不全面的。
2.精确率(Precision)
定义:预测为正类的结果中,正确个数的比例
在上面的例子中,每一行的数据可以计算一个精确率:
精确率又称查准率,其意义是判断模型的结果是否“找得对”。
3.召回率(Recall)
定义:实际为正类的样本中,正确判断为正类的比例
在上面的例子中,每一列的数据可以计算一个召回率:
召回率又称查全率,其意义是判断模型的结果是否“找得全”。
4. F1-score
精确率和召回率是一对矛盾的指标,因此需要放到一起综合考虑。F1-score是精确率和召回率的调和平均值。
其中,P就是presicion,R就是recall,公式前面已给出。
故:
上式是当精确率和召回率的权值都为1的情况,也可以加上一个不为1的权值:
当时,召回率有更大影响;
当时,精确率有更大影响。
5.ROC曲线(Receiver Operating Characteristic Curve)
再来2个公式:
- 假正率(False Positive Rate, FPR)
- 真正率(True Positive Rate, TPR)
显然,FPR越低越好,TPR越高越好。
在ROC曲线中,横坐标是FPR,纵坐标是TPR,下图就是例子中versicolor类的ROC曲线:
<center>图1:ROC曲线</center>
6.P-R曲线(Precision-Recall Curve)
在P-R曲线中,横坐标是recall,纵坐标是precision,下图就是例子中versicolor类的P-R曲线:
<center>图2:P-R曲线</center>
7.AUC面积(Area Under ROC Curve)
AUC面积表示ROC曲线下方的面积大小,通过积分就可以计算。AUC越大越好。
由于ROC曲线一般在直线的上方,故AUC一般为0.5~1.0。
以上是7个评估指标的简单理解,后面会对最后3个指标再做详细介绍。
To Be Continued...
欢迎关注我的微信公众号: