多类别分类 VS 多标签分类

发布于 18 天前  1 次阅读


一、多类别分类(multi-class classification)

特点:一个样本,只属于多个类别中的“一个”

  • 类别之间是互斥的
  • 例子:
    • 手写数字识别:0–9,一张图片只能是其中一个数字
    • 情感分类:积极 / 中立 / 消极,一个评论通常只打一个情感标签
  • 模型输出:
    • 通常是一个长度为 C 的概率向量(C 是类别数),比如 [0.1, 0.2, 0.7] 表示第 3 类概率最高
    • 常用激活函数:softmax(保证所有概率加起来=1)
  • 常用损失函数:
    • 交叉熵(Cross Entropy)
  • 评价指标:
    • 准确率(accuracy)、混淆矩阵等

一句话总结:“在这些类别里选一个” 的问题,用多类别分类。

二、多标签分类(multi-label classification)

特点:一个样本,可以同时属于多个类别

  • 类别之间不互斥,可以同时为真
  • 例子:
    • 电影标签:一部电影可以同时是 动作科幻爱情
    • 图像标注:一张图里既有 又有
    • 文本主题:一篇文章可能同时属于 体育科技
  • 模型输出:
    • 通常是一个长度为 C 的向量,每个位置是“该标签为真”的概率,比如 [0.8, 0.1, 0.6] 表示:标签1和标签3很可能存在
    • 常用激活函数:sigmoid(每个标签独立输出概率,互不影响)
  • 常用损失函数:
    • 二元交叉熵(Binary Cross Entropy),相当于对每个标签做一次二分类
  • 评价指标:
    • micro/macro F1、准确率@k、Hamming Loss、对每个标签分别算指标等

一句话总结:“这些标签里,可以选多个(甚至0个)” 的问题,用多标签分类。

核心区别对比

对比点多类别分类(multi-class)多标签分类(multi-label)
每个样本可选类别数只能选 1 个可选 0~多个
类别/标签关系互斥不互斥,可以共存
输出激活函数softmax(整体归一)sigmoid(每个标签独立)
损失函数交叉熵(多分类)二元交叉熵(对每个标签做二分类)
典型任务数字识别、单标签情感分类、单意图分类图像/文本多标签标注、推荐系统的兴趣标签、电影标签等