Logistic回归7—分类模型的性能评价指标

1 分类模型评估

∙ \bullet 判断一个分类器对所用样本的分类能力,或者在不同的应用场合时需要有不同的指标。
∙ \bullet Scikit-Learn中,评价指标计算可对每个样本施加权重,权重通过参数sample_weight指定。老师:在样本上施加权重,该样本上的指标乘以权重,可以得到所有样本的平均指标。那么这个平均的用词是否合适呢?

2 分类模型的评价指标

2.1 logistic损失/负log似然损失(log loss):

l o g l o s s ( Y , P ) = − 1 N ∑ i = 0 N ∑ c = 0 C y i c l o g ( p i c ) logloss(\mathbf Y,\mathbf P) = -\frac{1}{N}\sum_{i=0}^{N}\sum_{c=0}^{C}y_{ic}log(p_{ic}) logloss(Y,P)=N1i=0Nc=0Cyiclog(pic)
  1)其中C为类别数, y i \mathbf y_{i} yi为第 i i i个样本标签的OneHot编码向量, p i c p_{ic} pic为模型预测第i个样本为类别c的概率。C为分类数,Y是NC的矩阵,每一行是真值标签的独热编码。P也是NC的矩阵,每一行是模型预测的每个分类的概率。loglos(Y,P)表达形式的数理意义就是,对标签代表分类的预测概率也高也好,负号之外的部分是一个较大值,带负号后就是一个较小的值,也就是负LOG损失,值越小越好。
  2)当C=2时,为两类分类: l o g ( y , p ) = − 1 N ∑ i = 1 N ( y i l o g p i + ( 1 − y i ) l o g ( 1 − p i ) ) log(\mathbf y, \mathbf p) = -\frac{1}{N}\sum_{i=1}^{N}(y_{i}logp_{i} + (1-y_{i})log(1-p_{i})) log(y,p)=N1i=1N(yilogpi+(1yi)log(1pi))       y i ∈ { 0 , 1 } y_{i} \in \{0,1\} yi{0,1}为第i个样本的类别, p i p_{i} pi为模型预测第i个样本的概率。
  正如上边提到的那样,该指标其实就是负log似然损失或Logistic损失。

2.2 0-1损失(zero one loss)

1 N ∑ i = 0 N I ( y ^ i ≠ y i ) \frac{1}{N}\sum_{i=0}^{N}I(\hat y_{i} \neq y_{i}) N1i=0NI(y^i=yi)  其中 I ( . ) I(.) I(.)为示性函数,括号中的条件满足值为1,否则为0。0-1损失可视为错误率。

2.3 合页损失

1 N ∑ i = 0 N m a x ( { 1 − y i y ^ i } ) \frac{1}{N}\sum_{i=0}^{N} max(\{1-y_{i}\hat y_{i}\}) N1i=0Nmax({1yiy^i})  其中 y i ∈ { − 1 , 1 } , y ^ i y_{i} \in \{-1, 1\},\hat y_{i} yi{1,1}y^i为决策函数(样本到决策面的带符号距离)。详情可见SVM部分。
  以上三种指标,即Logistic损失/负log似然损失、0-1损失、合页损失,都是损失类,当然是越小越好。

2.4 正确率(accuracy score):

1 N ∑ i = 0 N I ( y ^ i = y i ) \frac{1}{N}\sum_{i=0}^{N}I(\hat y_{i} = y_{i}) N1i=0NI(y^i=yi). Scikit-Learn中的分类器里,score函数用的就是正确率,GridSearchC V里,缺省指标也是正确率。应该是在应用于于分类器的大前提下吧?正确率和错误率是两个相反的指标。

2.5 混淆矩阵(confusion matrix):

对C类分类问题,混淆矩阵为C * C的矩阵,下图是手写数字识别的混淆矩阵。
在这里插入图片描述
  矩阵的第 i i i行和第 j j j列的元素值,表示将真实类别标签为 i i i类的样本预测为第 j j j类的样本数数目。对角线元素越大越好,因为对角线元素表示预测正确的数目。通过混淆矩阵,可以看到一个特定分类错分为哪个分类的可能性最大,之后也可以对比较敏感的错分施加惩罚。

3 两分类任务中更多评价指标

3.1 Precision、TPR、FPR

∙ \bullet Precision (质)
  精度、准确率:预测结果为真的样本中,真正为真的比例。个人记忆:预测为阳的样本中,真正为阳的那部分;阈值线右边的样本中,红色的部分。 P r e c i s i o n = T P N ^ + Precision = \frac{TP}{\hat N_{+}} Precision=N^+TP
∙ \bullet TPR(True Positive Rate) (量)
  召回率:预测结果召回了多少真正的正样本;个人记忆:所有的阳都被预测为阳,召回率就是1。
  真阳率:有多少真正的正样本被预测为真;个人记忆:实际为阳的样本中,预测为阳的那部分;红色部分中,阈值线右边的那部分。 T P N +   \frac{TP}{N_{+}} \space N+TP 
∙ \bullet FPR(False Positive Rate)
  假阳率:有将多少假的样本被预测为真。个人记忆:实际为阴的样本中,预测为阳的那部分;蓝色部分中,阈值线右边的那部分。 F P N − \frac{FP}{N{-}} NFP
在这里插入图片描述

3.2 F1分数

Precision和Recall的调和平均值
F 1 = 2 ( P r e c i s i o n ∗ R e c a l l ) P r e c i s i o n + R e c a l l F1 = \frac{2(Precision * Recall)}{Precision + Recall} F1=Precision+Recall2(PrecisionRecall)
注意:准确率和召回率是相互影响的。一般情况下,准确率高,召回率就低;反之亦然。不是很理解F1分数的数理意义。

3.3 Matthews相关性系数(MCC)

∙ \bullet Matthews相关性系数用一个值综合混淆矩阵,度量真实值和预测值之间的相关性,定义为:
M C C = T P ∗ T N − F P ∗ F N ( T P + F P ) ( T P + F N ) ( T N + F P ) ( T N + F N ) MCC = \frac{TP*TN - FP * FN}{\sqrt{(TP+FP)(TP+FN)(TN+FP)(TN+FN)}} MCC=(TP+FP)(TP+FN)(TN+FP)(TN+FN) TPTNFPFN
∙ \bullet 分母中任意一对括号内为0,那么整个MCC的值就为0
∙ \bullet MCC的值在[-1,1]之间,1:分类器是完美的,0:分类器是随机的,-1:分类器是最差的,所有预测结果和实际相反。
不明白该指标的数理含义,为什么会达到效果?
在这里插入图片描述
在这里插入图片描述

3.4 Receiver Operating Characteristic(ROC)曲线(受试者工作特征曲线)

∙ \bullet 上面我们讨论给定阈值 τ \tau τ的TPR(真阳率)和FPR(假阳率)
∙ \bullet 如果不是只考虑一个阈值,而是在一系列阈值上运行检测器,并画出TPR和FPR为阈值 τ \tau τ的隐藏式函数,得到ROC曲线。为什么叫隐式函数,是不是说图上并没有体现出 τ \tau τ的值?
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
老师说上图是直方图,但印象中直方图的横纵坐标值的含义,跟此处有细微的差异,那么直方图的准确定义又是什么样的呢?蓝色和红色分隔更开的情况,是属于更好的情况。
∙ \bullet ROC曲线越偏左上角表示分类器越好。
∙ \bullet AUC(Area Under Curve):ROC曲线下的面积,取值在[0.5, 1.0],0.5表示随机猜测分类,1表示完美分类器。
∙ \bullet ROC曲线有个很好的特性:当测试集上的正负样本分布变化时,ROC曲线能够保持不变。在实际的数据集中,经常会出现类别不平衡的现象,即负样本比正样本多很多(或者相反),而测试数据中的正负样本分布也可能随着时间变化。这里的正负样本分布变化,就应该是说正负样本的比值会发生变化吧?应再分析为什么会有这个性质?

3.5 PR曲线

∙ \bullet Precision and Recall(PR曲线):用于稀有事件检测,如目标检测、信息检索、推荐系统。
∙ \bullet 稀有事件检测的负样本非常多( N − N_{-} N很大),因此 F P R = F P N − FPR=\frac{FP}{N_{-}} FPR=NFP会很小,比较TPR和FPR没有太大意义(ROC曲线中只有左边很小一部分有意义),所以只考虑正样本。前边说正负样本分布变化时,ROC曲线保持不变,此处又说只有左边很小一部分有意义,这量个提法应该不冲突。
∙ \bullet 与ROC曲线相似,PR曲线是阈值变化时Precision和Recall组合点划过的轨迹
在这里插入图片描述
∙ \bullet PR曲线越往右上越好。

3.6 AP(Average Precision)

∙ \bullet Precision只考虑了返回结果中相关文档的数目,没有考虑文档之间的顺序。
∙ \bullet 对一个搜索引擎而言,返回的结果是有序的,且越相关的文档越靠前越好,于是有了AP(Average Precision)概念。
∙ \bullet AP:对不同召回率点上的精度进行平均: A P = ∫ 0 1 P ( R ) d R = ∑ k = 0 N P ( k ) R ( k ) AP = \int_0^1P(R)dR = \sum_{k=0}^{N}P(k)R(k) AP=01P(R)dR=k=0NP(k)R(k)即PR曲线下的面积(回忆:AUC为ROC下的面积)
公式看明白了,但这个公式如何体现有序、相关文档靠前、平均等概念呢?

3.6 mAP(Mean Average Precision)

∙ \bullet 平均AP(Mean Average Precision, mAP):多个AP的平均
∙ \bullet 物体检测中经常用mAP评价模型性能:多个物体类别的AP平均。
∙ \bullet 这里有一些mAP的介绍
https://www.zhihu.com/question/53405779

4 Scikit-Learn中分类模型性能评价

∙ \bullet 类似回归模型的性能评价,Scikit-Learn对分类模型性能评价提供3中不同的API:
  1)estimator中score方法:每个学习器都有score方法,提供一个缺省的评估方法(分类器为正确率)
  2)交叉验证中的scoring参数
  3)metrics模块中的方法

5 多类分类与多标签分类

∙ \bullet 多类(Multiclass)分类:相对于两类(binary)分类而言,标签y的取值有多种,如对水果进行分类,水果可能是橙子、苹果或梨,但不同同时是橙子、苹果或梨,每个样本被分配到唯一的一个标签。
∙ \bullet 多标签(Multilabel)分类:给每个样本分配一套目标标签,这些标签互不排斥(类似物体的属性,可以有多种属性),例如与文档相关的主题,可以同时是宗教、政治、金融的。

6 Scikit-Learn中metrics的分类模型评价指标

∙ \bullet 只能应用于两类分类
在这里插入图片描述
∙ \bullet 也可应用于多类分类
在这里插入图片描述
∙ \bullet 可用于多标签
在这里插入图片描述
  损失类,是越小越好。分数类,是越大越好。fbeta中, 若beta为1,就成为了f1_score。两类分类任务应该能用多类分类的指标,多分类任务也应该能用多标签指标,因为他们是特殊和一般(属于)的关系。Scikit-Learn中实现也实现了一些之前没讲到的指标,同时也支持自定义指标。
  更多内容,请参考scikit-learn文档:
  https://scikit-learn.org/stable/modules/model_evaluation.html#classification-metrics

7 Scikit-Learn中scoring参数

在这里插入图片描述

8 将两类分类指标扩展到多类或多标签问题

在这里插入图片描述

  • 23
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值