老师布置了这项作业,写完后来分享下,第一篇帖子,难免有不足之处,请多多涵盖,引用了部分图片和资料(包括但不限于吴恩达老师的机器学习课程),侵删。
ACC,EER,F1 ,AUC的概念ACC(Accuracy):首先要知道什么是TP, FP, TN, FN:
TP (True Positive) : 将实际为正类的样本正确预测为正类的数量
FP (False Positive) : 将实际为正类的样本错误预测为负类的数量
TN (True Negative) : 将实际为负类的样本正确预测为负类的数量
FN (False Negative) : 将实际为负类的样本错误预测为正类的数量
这些指标常用于分析skewed datasets, 即正例和反例与50%、50%相差很远,举例来说,有一个用于检测罕见病的模型,只有少数人患病,当预测为1时表示患病,你训练的几个模型的错误率(error)分别为0.5%,1.2%,1%,此时你就很难判断那个模型的效果最好,所以需要这些指标来评判。
准确率 (ACC) 的定义如下:
ERR(Equal Error Rate):首先要知道什么是FAR(False Acceptance Rate)和FRR(False Rejection Rate):
FAR指将非法用户错误地识别为合法用户的概率,FRR指将合法用户错误地识别为非法用户的概率,二者的公式如下:
而等错误率EER(Equal Error Rate)则是指FAR和ERR相等时的错误率,它代表了系统在错误拒绝和错误接受之间达到的一种平衡状态。通常情况下,EER越低,代表系统设计的越严格,系统的整体性能越好。但是,需要根据不同的应用场景和需求来调整系统的参数,使得FAR和FRR达到一个合理的平衡。
F1 Score:首先要知道Precison(精确率)和Recall(召回率):
精确率指在所有被模型预测为正类的样本中,真正为正类的比例,召回率指在所有实际为正类的样本中,被模型正确预测为正类的比例,二者的公式如下:
继续以上面罕见病的例子,当我们想要在不同情况下判断患者患病时,我们就需要权衡Precision和Recall,不同情况是指当我们想在有十足把握判断患者患病时在做出预测,此时我们需要高Precision和低Recall,当我们错过漏掉任何患者时,我们需要低Precision和高Recall,这可以通过改变判断的阈值来实现,同时可视化在不同阈值下对应的Precision和Recall 的值,来进行人为选择。
但人为判断难免会有误差,难以最好的权衡Precision和Recall,此时F1 Score就可以大展身手了,F1 Score的定义如下:
在数学上,这叫做P和R的调和平均值,不难看出F1 Score的值为0 ~ 1计算出F1 Score后,只需要选择值较高的那个,就能较好的权衡Precision和Recall了。
AUC(Area Under The Curve) and ROC(Reciver Operating Characteristic):首先要知道ROC,ROC曲线是一种二维图形,用于展示分类模型在不同阈值下的性能。它以假正例率(False Positive Rate, FPR)为横坐标,真正例率(True Positive Rate, TPR)为纵坐标:
通常情况下,我们当然希望TPR高而FPR低,但这往往是难以做到的,所以我们需要权衡,这时我们就可以采用可视化的方法作出ROC曲线,来进行选择,是不是有些熟悉?
对,这类似于Precision和Recall的权衡,但与之不同的是,我们没有办法通过一个类似于F1 Score的值来判,此时AUC就可以登场了,AUC指ROC曲线与x轴围成的面积,从数学上来说:
AUC的值越大,曲线面积越大,说明曲线尽可能地往上拱,更有利于我们曲权衡TPR 和FPR。
类别不平衡的条件下 ACC,EER,F1各有什么优缺点理解完上述概念后,我们发现他们似乎都可用于评判skewed dataset,即类别不平衡条件下的分类指标,在类别不平衡条件下,他们的优缺点如下:
Ⅰ.ACC:
优点:简单且易于理解,可以在总体上给予使用者直观的感受,长用于训练过程中及调参。应用广泛。缺点:在类别不平衡条件下,可能会显得没有意义,例如上述的罕见病模型,err过低的情况下,只需简单地将y预测为0即可,这个模型是不优秀的。无法反映模型在不同类别上的表现。
Ⅱ.EER:
优点:能够同时考虑正类和负类,即模型在不同类别上的性能。提供了一个标准化的度量用于判断,这适用于不同生物识别系统上的对比。缺点:只返回了1个阈值点,无法反映模型在不同于阈值下的情况。主要用于生物识别判断,对其它领域可能不太实用需要计算FAR和FRR来找出,过程较为复杂且难以得到准确的值。主要用于二分类,对多分类不适用。
Ⅲ.F1 Score:
优点:能够综合考虑正类和负类并做出一个较好的权衡。可以较好的处理不平衡的数据集,更好的反应模型在少数类上的性能,避免被多数类主导。值为0 ~ 1,可以给判断这直观的感受,便于判断。缺点:过于关注正类样本,而可能忽略了负类样本,但在某些特定的情况中,负类样本同样尤为重要,此时最好不要选用F1 Score。只是一个单一的值,难以反映模型在其它方面的表现,需要结合实际情况和其它参数值来综合判断。对阈值十分敏感,可以通过交叉验证等方式来合理选择。
Ⅳ.AUC:
优点:不受正负类比例的影响,提供一个大体上的结果。可以评估模型在不同于阈值的表现,适用于多阈值的情况。数值上表现直观。鲁棒性好,不易受异常数据的影响。缺点:还是需要人为判断阈值,可能选择不准,难以选择具体的阈值。计算过程较为复杂。
SUM UP:
总的来说,如果你只是想大概的了解模型在总体表现上的性能,且处理的是平衡数据集那么可以选择使用ACC。如果你在设计一个生物识别系统并且需要一个合理的阈值来判断安全认证,可以使用ERR。如果你在处理某一类别数量远远多于另一类的数据集,且负类样本不那么重要,例如罕见病,那么可以使用F1 Score。如果你需要评估模型在不同阈值下的性能,或解决多阈值问题时,可以考虑使用AUC。
更多情况下,我们会考虑使用多个指标来综合判断。