分类任务中的损失函数与评估指标
在分类任务中,损失函数用于训练和优化分类器,同时也是衡量分类误差的代价,因此也被称为代价函数。下面将介绍几种常用的分类损失函数和评估指标。
常用损失函数
几种常用的分类损失函数如下:
1.
0 - 1损失
:在二分类中最常用。其定义为:
- (L_{0 - 1}(\hat{c}, c)=\sum_{i = 1}^{n}I(h(x_{i})\neq c_{i})),其中(I(\omega))是指示函数,若(\omega)为真则值为1,否则为0。
- 含义是:若预测类别与目标类别不同,值为1;否则为0。一般在二分类中,假设误报和漏报代价相同,会自然选择0 - 1损失作为损失函数。但它不可微,不能用于梯度下降等方法。
2.
逻辑损失
:主要用于逻辑回归分类器的训练。
- 逻辑回归假设表示为(\hat{c}=P(h(x)|x)),标记目标输出(c\in C = {0, 1}),逻辑损失函数表达式为:
- (L_{Log}(\hat{c}, c)=-(c\log(h(x))+(1 - c)\log(1 - h(x))))。
- 即(L_{Log}(\hat{c}, c)=\begin{cases}-\log(h(x)), &\text{if } c = 1\-\log(1 - h(x)), &\text{if } c = 0\end{cases})
3.
指数损失
:主要用于AdaBoost的训练。设AdaBoost分类器为(\hat{c}=h_T(x)),标记目标输出(c\in C),其损失函数为:
- (L_{Exp}(\hat{c}, c)=\exp(-c\cdot\hat{c})=\exp(-c\cdot h_T(x)))
4.
合页损失
:是一种特定类型的损失函数,主要用于支持向量机的二分类训练。
- 它考虑了数据点到分类决策边界的距离作为代价,即使输入数据分类正确,但离决策边界距离不够大,也会被视为有损失。
- 对于线性支持向量机分类器,分类函数是超平面(\hat{c}=h(x)=w\cdot x + b)((w)是权重向量,(x)是输入变量,(b)是偏置),目标输出(c\in{-1, +1}),合页损失定义为:
- (L_{Hinge}(\hat{c}, c)=\max(0, 1 - c\cdot h(x)))
- 若(c\cdot h(x)\geq1),则(L_{Hinge}(\hat{c}, c)=0);若(c\cdot h(x)<1),(L_{Hinge}(\hat{c}, c))随(c\cdot h(x))变化线性增加。
5.
交叉熵损失
:也称为对数损失函数,主要用于训练softmax分类器。
- 在信息论中,一组随机变量的熵定义为这些变量可能结果的固有信息或不确定性的平均水平。设离散信息空间为(X),(x\in X),(P(x))是其概率分布,熵的计算公式为:
- (H(P)=E_{x\sim P}[-\log P(x)]=-\sum_{x\in X}P(x)\log P(x))
- 交叉熵基于熵构建,用于计算一组随机变量的两个概率分布(P(x))和(Q(x))之间的差异,表达式为:
- (H(P, Q)=E_{x\sim Q}[-\log P(x)]=-\sum_{x\in X}Q(x)\log P(x))
- 在机器学习中,交叉熵常作为分类的损失函数,表达式为:
- (L_{Cross}(\hat{c}, c)=-\sum_{i = 1}^{n}c_{i}\log h(x_{i}))
- 当(n = 2),可用于训练二分类器;当(n\geq3),可用于训练多分类器。二分类的交叉熵损失实际上等同于逻辑损失函数。
下面用表格总结这些损失函数:
|损失函数名称|主要应用场景|表达式|
| ---- | ---- | ---- |
|0 - 1损失|二分类|(L_{0 - 1}(\hat{c}, c)=\sum_{i = 1}^{n}I(h(x_{i})\neq c_{i}))|
|逻辑损失|逻辑回归分类器训练|(L_{Log}(\hat{c}, c)=-(c\log(h(x))+(1 - c)\log(1 - h(x))))|
|指数损失|AdaBoost训练|(L_{Exp}(\hat{c}, c)=\exp(-c\cdot\hat{c})=\exp(-c\cdot h_T(x)))|
|合页损失|支持向量机二分类训练|(L_{Hinge}(\hat{c}, c)=\max(0, 1 - c\cdot h(x)))|
|交叉熵损失|softmax分类器训练|(L_{Cross}(\hat{c}, c)=-\sum_{i = 1}^{n}c_{i}\log h(x_{i}))|
二分类评估指标相关术语
在介绍评估指标之前,先了解二分类分类器评估中涉及的术语,这些术语可以用混淆矩阵(也叫列联表)来表示,主要有以下几类:
1.
基本类别
:
-
实际
:标记的实际样本。
-
预测
:分类模型的预测结果。
-
正例
:实际样本或预测结果中的正例。
-
负例
:实际样本或预测结果中的负例。
2.
基本术语
:
-
真正例(TP)
:实际样本为正,预测结果也为正。
-
假正例(FP)
:实际样本为负,但预测结果为正。
-
假负例(FN)
:实际样本为正,但预测结果为负。
-
真负例(TN)
:实际样本为负,预测结果也为负。
3.
合成术语
:
-
实际正例(AP)
:由真正例(TP)和假负例(FN)组成。
-
实际负例(AN)
:由假正例(FP)和真负例(TN)组成。
-
预测正例(PP)
:由真正例(TP)和假正例(FP)组成。
-
预测负例(PN)
:由假负例(FN)和真负例(TN)组成。
下面通过一个mermaid流程图来展示这些术语的关系:
graph LR
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px
A(实际样本):::process --> B(正例):::process
A --> C(负例):::process
D(预测结果):::process --> E(正例):::process
D --> F(负例):::process
B & E --> G(真正例TP):::process
C & E --> H(假正例FP):::process
B & F --> I(假负例FN):::process
C & F --> J(真负例TN):::process
G & I --> K(实际正例AP):::process
H & J --> L(实际负例AN):::process
G & H --> M(预测正例PP):::process
I & J --> N(预测负例PN):::process
常用评估指标
下面介绍几种二分类分类器的评估指标:
1.
准确率
:反映分类结果的重要指标,是正确预测在总样本数中的比例。
- 定义为:(Accuracy=\frac{True\ Positive(TP)+True\ Negative(TN)}{Actual\ Positive(AP)+Actual\ Negative(AN)})
- 公式中((TP + TN))是正确预测的正例和负例,((AP + AN))是样本中的实际正例和负例。准确率是最直观的性能评估指标,但对于不平衡数据集,正例和负例比例失衡时,准确率可能会产生误导。例如,一个包含95个负例和5个正例的数据集,若所有值都分类为负例,准确率可达95%,但5个正例都未被检测到。
2.
精确率和召回率
:
-
精确率
:定义为(Precision=\frac{True\ Positive(TP)}{True\ Positive(TP)+False\ Positive(FP)}),即预测为正例的样本中实际为正例的比例,也称为正预测值(PPV)。
-
召回率
:定义为(Recall=\frac{True\ Positive(TP)}{True\ Positive(TP)+False\ Negative(FN)}),即实际正例中被正确预测的比例,也称为真正例率(TPR)。
3.
灵敏度和特异度
:在医学领域使用较多。
-
灵敏度
:等同于召回率,即真正例率(TPR),定义为(Sensitivity = True\ Positive\ Rate(TPR)=\frac{True\ Positive(TP)}{True\ Positive(TP)+False\ Negative(FN)}),用于评估正确识别真正例的比例,如正确识别患有某种疾病的人的百分比。
-
特异度
:定义为真负例与实际负例的比例(后续内容未给出完整公式,但原理是基于前面的术语)。
这些评估指标各有特点,在实际应用中,需要根据具体情况选择合适的指标来评估分类器的性能。例如,在不平衡数据集下,可能更关注精确率、召回率等指标。
分类任务中的损失函数与评估指标
其他评估指标
除了前面介绍的准确率、精确率、召回率、灵敏度和特异度外,还有一些常用的评估指标,下面继续介绍:
1.
F1分数
:是精确率和召回率的调和平均数,它综合考虑了精确率和召回率,能更全面地评估分类器的性能。其计算公式为:
- (F1 = 2\times\frac{Precision\times Recall}{Precision + Recall})
- 当精确率和召回率都较高时,F1分数也会较高。F1分数常用于需要平衡精确率和召回率的场景。
2.
P - R曲线
:即精确率 - 召回率曲线,它以召回率为横轴,精确率为纵轴,展示了在不同阈值下精确率和召回率的变化情况。
- 绘制P - R曲线时,通过不断调整分类器的决策阈值,得到一系列对应的精确率和召回率,然后将这些点连接起来形成曲线。
- 曲线下的面积(AUC - PR)越大,说明分类器的性能越好。P - R曲线可以直观地反映分类器在不同召回率水平下的精确率表现。
3.
ROC曲线
:即受试者工作特征曲线,它以假正例率(FPR)为横轴,真正例率(TPR)为纵轴。
- 假正例率(FPR=\frac{False\ Positive(FP)}{Actual\ Negative(AN)}),真正例率就是前面提到的召回率。
- 绘制ROC曲线的过程与P - R曲线类似,也是通过调整决策阈值得到不同的FPR和TPR值,然后绘制曲线。
- 曲线下的面积(AUC - ROC)通常用于衡量分类器的性能,AUC - ROC值越接近1,说明分类器的性能越好。ROC曲线不受数据集不平衡的影响,能更好地评估分类器在不同类别比例下的性能。
4.
Matthews相关系数
:是一种综合考虑了真正例、假正例、假负例和真负例的评估指标,其取值范围为([-1, 1])。
- 计算公式为:(MCC=\frac{TP\times TN - FP\times FN}{\sqrt{(TP + FP)(TP + FN)(TN + FP)(TN + FN)}})
- 当MCC值为1时,表示分类器完全正确;值为0时,表示分类器的预测结果等同于随机猜测;值为 - 1时,表示分类器的预测结果完全错误。Matthews相关系数在处理不平衡数据集时表现较好。
下面用表格总结这些评估指标:
|评估指标名称|计算公式|特点|
| ---- | ---- | ---- |
|F1分数|(F1 = 2\times\frac{Precision\times Recall}{Precision + Recall})|综合考虑精确率和召回率|
|P - R曲线|以召回率为横轴,精确率为纵轴绘制曲线|展示不同阈值下精确率和召回率变化,AUC - PR越大性能越好|
|ROC曲线|以假正例率为横轴,真正例率为纵轴绘制曲线|不受数据集不平衡影响,AUC - ROC越接近1性能越好|
|Matthews相关系数|(MCC=\frac{TP\times TN - FP\times FN}{\sqrt{(TP + FP)(TP + FN)(TN + FP)(TN + FN)}})|综合考虑各类情况,取值范围([-1, 1])|
选择合适的评估指标
在实际应用中,选择合适的评估指标至关重要,需要根据具体的任务需求和数据集特点来决定。以下是一些常见的情况及对应的指标选择建议:
1.
数据集平衡
:当正例和负例的比例大致相同时,准确率是一个简单直观的评估指标,可以直接反映分类器的整体性能。
2.
关注正例预测
:如果更关注正例的预测情况,如疾病诊断、欺诈检测等场景,精确率和召回率是比较合适的指标。可以根据具体需求,在精确率和召回率之间进行权衡。例如,在欺诈检测中,可能希望召回率尽可能高,以确保尽可能多的欺诈行为被检测到;而在某些对误判成本较高的场景中,可能更注重精确率。
3.
处理不平衡数据集
:对于不平衡数据集,准确率可能会产生误导,此时可以选择F1分数、P - R曲线、ROC曲线或Matthews相关系数等指标。这些指标能够更好地反映分类器在不同类别上的性能。
下面通过一个mermaid流程图来展示选择评估指标的决策过程:
graph LR
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px
A(数据集情况):::process --> B{数据集平衡?}:::process
B -- 是 --> C(选择准确率):::process
B -- 否 --> D{关注正例预测?}:::process
D -- 是 --> E(选择精确率和召回率):::process
D -- 否 --> F(选择F1分数、P - R曲线、ROC曲线或Matthews相关系数):::process
综上所述,在分类任务中,损失函数用于训练和优化分类器,而评估指标用于评估分类器的性能。不同的损失函数和评估指标适用于不同的场景,需要根据具体情况进行选择和应用,以达到最佳的分类效果。
超级会员免费看

被折叠的 条评论
为什么被折叠?



