一、 摘要
通过之前两篇分类评价指标的分享,我们已经基本了解到每个评价指标表达式的意义,那么本次分享我们将通过列举现实中的例子,结合不同的场景,体验不同指标的意义。
MindSpore分类指标之准确率、AUC/ROC详解(一)
MindSpore分类指标之精准率、召回率和F值详解(二)
二、 评价指标汇总
首先展示出我们分类模型中的混淆矩阵,下面各种分类指标公式都将结合混淆矩阵进行表示。
image.png
图1-混淆矩阵
TP、FN、FP、TN的解释:
(1) 若一个实例是正类,并且被预测为正类,即为真正类TP(True Positive )
(2) 若一个实例是正类,但是被预测为负类,即为假负类FN(False Negative )
(3) 若一个实例是负类,但是被预测为正类,即为假正类FP(False Positive )
(4) 若一个实例是负类,并且被预测为负类,即为真负类TN(True Negative )
例子一:假设我们想要炒股,那么我们现在就要开始研究不同公司股价的涨跌情况了。假如我现在有20家不同公司股市信息,经过各种分析,预计未来一段时间有10家公司应该会涨,另外10家应该会跌。那么我们肯定会买进预测为涨的股票,经过一段时间发现,哇挣钱了,买的这10家公司有8家都涨了,自己的身价也水涨船高。预测会跌的10家公司也有9家真的跌了。
准确率:分母表示的是样本总量,分子表示的是在不同类别中被预测正确的样本总数。适用于样本数量均衡的数据集。
结合例子一的事件,准确率值就是(8+9)/(10+10)=85%。表示对这20家公司股票涨跌的预测,有85%是准确的。
image.png
图2-准确率表达式
ROC曲线:对于样本不均衡状态的样本也可以使用。
例子二:在例子一中我们炒股挣钱了,那么再买彩票搏一搏。当然也要先研究一下彩票行情。经过调查发现大约100万注彩票会有一个中奖的。我们预测未来卖出的100万注彩票会有1注中500万,并且预测到中奖号码,花两元钱买下了预测会中奖的那一注彩票。等到开奖发现,真的中了500万,。我们用准确率表示((999999+1)/1000000)=1。
即使我们不经过任何分析,直接说所有彩票都不会中奖,也依然有着(999999/1000000)的准确率。显然这个预测是无效的。
所以我们要考虑到一个样本比例的问题,在例子二中样本比例不均衡,用准确率是不能真实展示预测性能。这里就用到了ROC曲线、AUC面积,这两个指标中考虑到了不同样本的数量问题。
TPRate的意义是所有真实类别为正的样本中,预测类别为正的比例。
FPRate的意义是所有真实类别为负的样本中,预测类别为正的比例。
两个表达式都考虑到了正负样本数,极大的规避了正负样本不均衡带来的影响。把这两个向量当作坐标轴,再通过模型预测过程中真正率和假正率的变化画出ROC曲线,计算曲线与假正率围成的面积,就是AUC值,值域是0到1。并且在完全分类正确时,AUC取值为1。
所以AUC能够代替准确率使用在样本不均衡的模型。
image.png
图3-真正率和假正率表达式
image.png
图4-ROC曲线图
例子三:运气还是那么好,买彩票都中奖了。到市场消费一下。正好遇到一家古董店在举办一个活动。摆出来100件古董,每一件售价1万元,但是只有10件是真品,每一件真品价值5万元,其余赝品不值钱,可挑选购买。买彩票都能中奖的运气,遇到这种机会当然也不能错过,通过各种特征的分析,最后买了20件古董,拿着这20件古董让专家鉴定后居然有7件都是真品。
精准率:结合混淆矩阵和表达式来理解,分母(TP+FP),在分类任务中的意义是预测为正类的样本数量,分子的意义是样本类别实际为正并被预测为正的数量,它们两个的比值我们称为精准率,精准率是针对预测后其中一个类别的评测表达式。单独使用时适用对分类后其中一个类别情况的检测。
那么用例子三这个事件的精准率值是(7/20),表示我认为是“真”品的20件古董中有7件是真的。
image.png
图5-精准率表达式
召回率:在表达式中的分母(TP+FN),结合混淆矩阵可以知道代表的是真实类别为某一个类别的样本数量,分子则是真实类别与预测类别相同的样本数量。单独使用时侧重于查全场景,期望将所有属于一类的样本都召回情况。
结合例子三中场景,召回率值为(7/10),实际的意义是一共有10件真品,有7件被我找出来了。
image.png
图6-召回率表达式
F1值:F1分数是精准率和召回率的谐波平均值,而谐波平均值会给予较低的值更高的权重。因此,当召回率和精准度都很高时,分类器才能得到较高的F1分数。
那么对与例子三中的事件的F1值((20.70.35)/(0.7+0.35))=0.49/1.05。
image.png
图7-F1值表达式
三、 多分类策略介绍
在以上的例子中,我们都是以二分类的问题解释各种分类指标的意义,当然我们工作学习中要解决的问题不只有二分类,还会有多分类情况。在这里我们补充一下多分类都有哪些策略。
例如,要创建一个系统将数字图片分为10类(从0到9),第一种是采用一对多策略(OvA)。这种策略需要训练10个二元分类器,每种数字一个。(0-检测器、1-检测器、2-检测器,等等)。然后当需要对一个图片的数字做检测时,通过获取每个分类器的决策分数,那个检测器的分数高,就分为哪一类。这就是一对多策略。
第二种采用一对一策略(OvO)。这种策略需要训练N*(N-1)/2个分类器。对于数字图片分类问题,要训练多个二元分类器:一个用于区分0和1,一个用于区分0和2,一个用于区分0和3,以此类推。这意味要训练45个二元分类器。当需要对一张图片进行分类时,需要运用45个二元分类器,最后看哪个类别获胜的多,便分类为哪一类。OvO的主要优点在于,每个分类器只需要用到部分训练集对其必须区分的两个类别进行训练。
当然有一些算法在数据规模扩大后,表现会不理想(例如SVM)。因此对于这一类的算法,OvO是一个优先策略。由于在较小训练集上分别训练多个分类器比在大型数据集上训练少数分类器要快得多。但是对大多数二元分类器来说,OvA策略还是更好的选择。
四、 总结
经过这三次的分享,我们为大家介绍了准确率、ROC曲线/AUC面积、精准率、召回率和F1值五种分类指标。每一个指标都不是各种场景通用的,要考虑到我们处理问题的场景。当一个分类指标不能准确表示模型性能的时候,也需要将两个单一的分类指标组合使用。在多分类的场景下,这些分类指标也同样适用。
本次分类指标系列分享已经完结,下个系列将分享卷积神经网络中的图片分类项目,敬请期待!
以上是本人的一些见解,理解有限,欢迎大家指正讨论!
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。