函数的应用
- 主要是对类目分类相关的业务做评测使用
- 主要介绍一下: macro avg 和 weighted avg区别
指标解释
1. macro avg(宏平均)
- 定义:对每个类别的指标(如精确率、召回率、F1-score)取算术平均值,不考虑类别样本数量。
- 计算公式:
macro_avg = (指标_类别1 + 指标_类别2 + ... + 指标_类别N) / N
- 特点:
平等对待每个类别:无论类别样本数量多少,每个类别的权重相同。 - 适用场景:当类别样本量相对平衡时,能更公平地反映模型在所有类别上的表现。
- 缺点:如果类别严重不平衡(某些类别样本极少),宏平均可能被小样本类别的极端值拉高或压低。
- 示例:
假设有 3 个类别:
类别 A:精确率 = 0.9,样本量 = 100
类别 B:精确率 = 0.5,样本量 = 10
类别 C:精确率 = 0.7,样本量 = 10
则 macro avg 精确率 = (0.9 + 0.5 + 0.7) / 3 ≈ 0.7。
2. weighted avg(加权平均)
- 定义:根据每个类别的样本数量对指标进行加权平均,样本量越大的类别权重越高。
- 计算公式:
weighted_avg = (指标_类别1 × 样本量_类别1 + 指标_类别2 × 样本量_类别2 + ... ) / 总样本量
- 特点:
样本量决定权重:大样本类别对最终结果影响更大。 - 适用场景:当类别样本量不平衡时(例如某些类别占大多数),加权平均能反映模型在整体数据上的表现。
- 缺点:可能掩盖小样本类别的性能问题。
- 示例:
沿用上述示例:
类别 A:精确率 = 0.9,样本量 = 100
类别 B:精确率 = 0.5,样本量 = 10
类别 C:精确率 = 0.7,样本量 = 10
总样本量 = 120
则 weighted avg 精确率 = (0.9×100 + 0.5×10 + 0.7×10) / 120 ≈ 0.85.
3. 如何选择?
- 样本平衡时:优先参考 macro avg,因为它平等反映所有类别表现。
- 样本不平衡时:优先参考 weighted avg,因为它更关注模型在多数类上的表现。
- 实际应用:需结合业务目标。例如:
- 医疗诊断(罕见病检测):需关注小样本类别的召回率,此时 macro avg 更有意义。
- 商品推荐(热门商品占多数):weighted avg 更贴近实际业务效果。
4. 示例报告解读
假设分类报告如下:
precision recall f1-score support
class_0 0.90 0.80 0.85 100
class_1 0.50 0.60 0.55 10
class_2 0.70 0.70 0.70 10
accuracy 0.85 120
macro avg 0.70 0.70 0.70 120
weighted avg 0.85 0.85 0.85 120
macro avg:所有类别的指标取平均,结果是 0.70。
weighted avg:大样本类别(class_0)主导结果,结果是 0.85。
5. 总结
指标 核心思想 适用场景
macro avg 平等对待每个类别 类别样本量平衡
weighted avg 根据样本量加权 类别样本量不平衡
根据数据分布和业务需求选择合适的指标!