周六早晨,你翻开日程本,发现想做的事不止一件:想出门运动、想看场电影、还想约朋友聚餐。这不是单选题,而是一道“多选题”——你可以同时勾选多个选项。机器学习里许多任务同样如此:一篇新闻可以同时属于科技和经济板块,一张照片可以同时包含天空、大海与人物。多标签分类要解决的,正是这种“一次预测多个标签”的问题。 面对这道多选题,有三种经典“答题策略”:Binary Relevance(BR)像把每个选项独立打分互不通气;Classifier Chains(CC)像有先后的决策链,先定出门与否再决定要不要聚餐;Label Powerset(LP)则干脆把所有组合做成“套餐菜单”让你直接选。三种方法各有擅长与短板,选对了,周末计划井井有条;选错了,可能白忙一场。本文会用这个“周末规划”的比喻,带你彻底看懂三种多标签分类方法的原理、复杂度与选型思路。

岗位关联

对 AI 从业者而言,多标签分类是文本多主题标注、图像多目标识别、推荐系统标签预测等场景的底层能力。理解 BR、CC、LP 的取舍,能帮你根据标签数量、相关性和计算资源选出最合适的方案,避免“先跑通再后悔”的返工。

目录
  1. 可视化演示
  2. 多标签问题定义
  3. 标签相关性痛点
  4. Binary Relevance 原理
  5. Classifier Chains 原理
  6. Label Powerset 原理
  7. 复杂度对比
  8. 方法选型建议
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

动态演示多标签分类方法的核心机制,通过架构/数据/状态/性能四种模式展示关键概念与交互流程。

本节配有交互动效(进入视口后自动加载,约 3KB)。

多标签分类方法:多标签分 多标签分类的问题转化思路 Binary Relevanc 核心机制可视化 多标签分类方法整体架构与关键组件

多标签问题定义

周六早晨,你翻开日程本,发现想做的事不止一件:想出门运动、想看场电影、还想约朋友聚餐。这不是单选题,而是一道“多选题”——你可以同时勾选多个选项。传统单标签分类像“今天只干一件事”,逼你在几个选项中挑一个;而多标签分类允许你一次点亮多个标签,这正是它和普通分类最本质的区别。

在机器学习里,大量任务天然是“一题多选”:一篇新闻可以同时属于科技与经济板块,一张照片可以同时包含天空、大海和人物,一个病人的诊断结果可能同时有高血压和糖尿病。多标签分类的输入是样本特征 x,输出是一个长度等于标签总数的向量,向量里的每个位置都回答一个独立的“是/否”问题。

形式化地说,设共有 L 个候选标签,则每个样本的输出可以写成:

y=(y1,y2,…,yL),yj∈{0,1}\displaystyle y = (y_1, y_2, \ldots, y_L), \quad y_j \in \{0, 1\}

1. 标签向量 y:把 L 个标签的结果排成一个向量,就像把周末想做的事挨个列成清单。

y=(y1,y2,…,yL)y = (y_1, y_2, \ldots, y_L)

2. 第 j 个标签 y_j:向量中第 j 个位置对应第 j 个标签,如“运动”“电影”“聚餐”。

yjy_j

3. 取值集合 {0,1}:每个标签只有“有”或“无”两种状态,1 表示这个标签被点亮。

yj∈{0,1}y_j \in \{0, 1\}

理解多标签的输出形式是第一步。它就像一张周末勾选清单:清单上有多少项,输出向量就有多长。明确了“要预测什么”,接下来最关键的难题就浮出水面了——清单上的项目之间,往往藏着看不见的牵连。

标签相关性痛点

规划周末时你会发现,这些活动并不独立:运动完大概率想约朋友聚餐,而如果约了朋友看电影,就未必有时间再去运动。也就是说,“运动”和“聚餐”两个标签之间有着隐性的正向关联。多标签分类最难的地方,恰恰在于处理这种标签之间的“联动”。

如果所有标签完全独立,问题立刻变得简单:把每个标签当成单独的二分类题,挨个解决就行。但现实中标签相关性无处不在:新闻一旦出现“疫情”标签,大概率也带“医疗”;婚礼照片一旦标了“婚礼”,“戒指”出现的概率就会飙升。若无视这些关联,模型就会丢失重要线索。

从概率角度看,联合分布可以写成所有标签条件概率的乘积,只有在独立性假设下才能化简:

P(y1,y2,…,yL∣x)=∏j=1LP(yj∣x)\displaystyle P(y_1, y_2, \ldots, y_L \mid x) = \prod_{j=1}^{L} P(y_j \mid x)

1. 联合概率:等式左边表示给定样本 x 时,整组标签同时出现的概率,对应“整个周末安排成不成立”。

P(y1,y2,…,yL∣x)P(y_1, y_2, \ldots, y_L \mid x)

2. 条件概率:等式右边每个因子表示给定 x 时某个标签单独出现的概率,对应“单看运动是否可行”。

P(yj∣x)P(y_j \mid x)

3. 连乘符号:∏ 把所有标签的独立概率乘起来。只有标签真正独立时,连乘才等于联合概率。

∏j=1L\prod_{j=1}^{L}

BR、CC、LP 三种方法的分水岭就藏在这个公式里:BR 直接采用独立假设,CC 用链式结构逐步引入依赖,LP 则绕开分解、直接对整个组合建模。理解了这一点,接下来三种方法就不再是三个孤立算法,而是面对“标签相关性”这一核心痛点的三种对策。

Binary Relevance 原理

BR 的做法很像“各管各的”的周末规划:你分别决定要不要运动、要不要看电影、要不要聚餐,三个决定之间完全不打电话商量。每个决定都由一个独立的“小管家”负责,他只管自己那件事,不关心其他安排。

Binary Relevance 翻译过来就是“二元关联”,核心思想极其直白:把 L 个标签的多标签问题,拆成 L 个完全独立的二分类问题。第 j 个分类器 h_j 专门负责预测第 j 个标签,训练时只用自己的标签数据,彼此老死不相往来。预测时,把 L 个分类器的结果拼成一个向量即可。

每个子分类器的预测规则可以写成:

y^j=hj(x)=arg⁡max⁡b∈{0,1}Pj(b∣x)\displaystyle \hat{y}_j = h_j(x) = \arg\max_{b \in \{0, 1\}} P_j(b \mid x)

1. 预测标签 ŷ_j:第 j 个分类器给出的最终结果,对应“运动这个小管家拍板:去”。

y^j\hat{y}_j

2. 子分类器 h_j(x):第 j 个专属分类器,输入只有原始特征 x,不接收其他标签的信息。

hj(x)h_j(x)

3. 取最大概率:arg max 表示在 0 和 1 两个候选中,选条件概率更大的那个作为答案。

arg⁡max⁡b∈{0,1}Pj(b∣x)\arg\max_{b \in \{0, 1\}} P_j(b \mid x)

BR 的最大优点是简单、可并行——L 个分类器可以同时训练,互不干扰。但它的软肋也一目了然:既然“小管家们”互不通气,“运动完想聚餐”这种联动信息就完全丢失了。当标签之间存在强关联时,BR 就像各做各决定的家庭成员,看似高效,却可能拼出一个自相矛盾的周末计划。这也是它被称为“忽略相关性基线方法”的原因。

Classifier Chains 原理

CC 的规划方式完全不同:你按顺序做决定,先决定“要不要出门”,再依据这个结果决定“要不要安排聚餐”——因为如果压根不出门,聚餐自然无从谈起。后一个决定会参考前一个决定的结果,决策之间形成了链条。

Classifier Chains(分类器链)正是把这个直觉搬进算法:L 个分类器首尾相接排成一条链,第 j 个分类器的输入,除了原始特征 x,还包括前面所有分类器已经预测出的结果 ŷ₁ 到 ŷⱼ₋₁。这样信息沿着链条流动,后面的标签就能利用前面标签的预测信号。

链中第 j 个分类器的预测公式为:

y^j=hj(x,y^1,y^2,…,y^j−1)\displaystyle \hat{y}_j = h_j(x, \hat{y}_1, \hat{y}_2, \ldots, \hat{y}_{j-1})

1. 前序预测结果:括号里除了 x,还出现了 ŷ₁ 到 ŷⱼ₋₁,即排在 j 前面的标签已经做出的决定。

x,y^1,y^2,…,y^j−1x, \hat{y}_1, \hat{y}_2, \ldots, \hat{y}_{j-1}

2. 链式分类器 h_j:第 j 个分类器同时看原始特征和前序标签,相当于“参考前面决定再拍板”。

hj(x,y^1,…,y^j−1)h_j(x, \hat{y}_1, \ldots, \hat{y}_{j-1})

3. 下标递进关系:j 从 1 到 L 依次增大,每个新分类器都比前一个多看到了一个“已定标签”。

j=1,2,…,Lj = 1, 2, \ldots, L

CC 用“顺序决策”换来了对标签相关性的建模能力:后一个标签能感知前一个标签的状态,相当于把“运动完了想聚餐”这类联动信息融进了链条。但代价也随之而来——链的顺序会影响结果质量,排在前面的标签出错还会顺着链条一路传播,像推倒的多米诺骨牌。因此 CC 的实践者常会尝试多种随机顺序,或训练多条链取平均来对冲误差。

Label Powerset 原理

LP 的思路跳出了“逐个决定”的框架:它不去拆解标签,而是把所有可能的标签组合先列成“套餐菜单”,然后直接从中选一个套餐。就像餐厅把菜品组合成“运动套餐”“观影套餐”“全套休闲套餐”,你不需要逐项点菜,只需要选一个最合心意的套餐即可。

Label Powerset(标签幂集)的做法是:定义一个映射 σ,把每一种标签组合模式转换成一个单一的类别编号。比如“只有运动”编为 1 号,“运动+聚餐”编为 2 号,“全选”编为 3 号…… 然后训练一个普通的多类分类器 h,让它直接预测“这是第几号套餐”。预测出编号后,再用逆映射 σ⁻¹ 还原成标签向量。

这个过程用公式表达为:

y^=σ−1(h(x)),σ:{0,1}L→{1,2,…,2L}\displaystyle \hat{y} = \sigma^{-1}\left( h(x) \right), \quad \sigma: \{0, 1\}^L \to \{1, 2, \ldots, 2^L\}

1. 组合映射 σ:把长度为 L 的 0/1 向量映射成一个整数编号,例如 (1,0,1) 映射为 2 号套餐。

σ:{0,1}L→{1,2,…,2L}\sigma: \{0, 1\}^L \to \{1, 2, \ldots, 2^L\}

2. 多类分类器 h(x):一个普通的单标签多类分类器,直接预测组合编号,相当于“服务员推荐套餐号”。

h(x)h(x)

3. 逆映射 σ⁻¹:把预测出的套餐编号还原回标签向量,相当于“领到套餐后拆开看里面包含什么”。

σ−1(h(x))\sigma^{-1}\left( h(x) \right)

LP 的最大优势是能捕捉全局标签相关性——它直接在组合层面做判断,不存在 BR 那种“信息割裂”,也没有 CC 的“顺序依赖”。但它的致命短板在于组合数量随标签数指数增长:L 个标签最多有 2^L 种组合。标签一多,很多组合在训练集中压根没出现过,分类器面对大量“菜单上没有的套餐”就只能瞎猜。这正是 LP 只适合标签数量较少场景的原因。

复杂度对比

三条路线各有各的成本账。周末规划也一样:独立决定省事但可能相互矛盾,链式规划聪明但必须按顺序来,套餐选择最省心但菜单可能厚得翻不完。把它们从“决策成本”翻译成“算法复杂度”,差异会非常清晰。

从模型数量看,BR 和 CC 都需要训练 L 个分类器,但 BR 的 L 个分类器可以完全并行训练,而 CC 必须串行,因为后一个分类器要等前一个的预测结果出炉。LP 则只需要训练 1 个多类分类器,看起来最省,实际却暗藏危机——它的候选类别数不是 L,而是标签组合的种数。

组合种数的公式是:

Clabels=2L\displaystyle C_{\text{labels}} = 2^L

1. 组合总数 C:所有可能的标签组合数量,对应“套餐菜单的总页数”。

ClabelsC_{\text{labels}}

2. 底数 2:每个标签有 0 和 1 两种状态,L 个标签就是 2 连乘 L 次。

2L2^L

举例感受一下数字的力量:L=10 时组合只有 1024 种,还算可控;但 L=100 时组合数约是 10³⁰,比宇宙中的星星还多。这就导致 LP 在标签较多时面临严重的样本稀疏问题——绝大多数组合根本没有足够训练样本。BR 虽然笨拙,但复杂度随标签数线性增长,工程上最稳妥;CC 介于两者之间,用串行时间换相关性建模能力。这张“成本清单”,是选型时必须先算清的账。

方法选型建议

回到周末规划:如果三个活动八竿子打不着,各自独立决定最省心;如果活动之间有明显联动,可以按顺序一步步定;如果可选套餐很少且模式固定,直接选套餐最高效。多标签方法选型,遵循的正是同样的逻辑——没有绝对最优的方法,只有最匹配场景的选择。

面对真实任务时,可以按三步走。第一步看标签数量:标签很少(比如少于 10 个)且相关性强,LP 能发挥全局建模优势;标签很多,LP 的组合爆炸会让你寸步难行,BR 或 CC 才是安全区。第二步评估相关性强度:用数据统计或业务经验判断标签之间是否存在明显联动,若联动强,优先考虑 CC 这类能建模依赖的方法。第三步审视计算资源:能接受串行训练开销就选 CC,需要大规模并行就选 BR。

实际工程中还有一个常用技巧:先把 BR 当基线跑通全流程,再用 CC 或 LP 做对比实验。只要评估指标(如 F1、准确率、汉明损失)显示提升明显,再切换到更复杂的模型。这个方法特别适合标签量中等、相关性模糊不清的新项目——先用最简单的方法拿到可运行的版本,再根据数据反馈逐步升级。毕竟,周末计划首先要能落地执行,然后才是追求完美。

AI 应用场景

新闻多主题自动标注

阶段:数据处理与特征工程

解决的问题:新闻编辑每天要为海量文章打标签,人工标注速度慢、标准不统一。传统方法把文章强制归为一个分类,丢失了“科技+经济”这类多主题信息。

具体案例:某资讯平台每天抓取上万篇新闻,希望自动打上“科技”“财经”“国际”等标签。团队先用 BR 训练 8 个独立的二分类器,每个分类器负责一个主题标签,模型并行训练,几分钟完成一轮更新。上线后打标效率提升 10 倍,作为基线准确率已接近人工水平的 85%。

电商商品标签预测

阶段:模型训练与调优

解决的问题:商品上架时需要同时标注“女装”“夏季”“打折”等多个标签,标签之间往往有联动(“孕妇装”几乎必然伴随“女装”)。BR 会忽略这种联动导致标签自相矛盾。

具体案例:某电商平台用 CC 构建标签链,先预测“性别定位”,再依次预测“季节”“风格”“促销状态”,前序预测作为后续分类器的输入特征。链式模型将标签组合的准确率提升了 12%,尤其改善了“孕妇装”“童装”这类强关联标签的预测一致性。

医学影像多病灶标注

阶段:模型评估与部署

解决的问题:一张 X 光片可能同时显示多种异常,放射科医生希望模型一次给出全部异常标签。标签组合模式有限(常见异常类型就那十几种),但组合内相关性极强。

具体案例:某医疗影像团队用 LP 方法,把 7 种常见异常的组合编码成类别,训练一个多类分类器直接输出“套餐式”诊断结果。由于组合模式稳定且样本集中,LP 比 BR 的 F1 高出 20%,且不会出现“同时报出矛盾病灶”的低级错误。

Python 演示

python37 行
import numpy as npfrom sklearn.datasets import make_multilabel_classificationfrom sklearn.model_selection import train_test_splitfrom sklearn.linear_model import LogisticRegressionfrom sklearn.multioutput import MultiOutputClassifier, ClassifierChainfrom sklearn.preprocessing import LabelEncoderfrom sklearn.metrics import accuracy_score X, Y = make_multilabel_classification(    n_samples=600, n_features=12, n_classes=3, n_labels=2, random_state=42)X_train, X_test, Y_train, Y_test = train_test_split(    X, Y, test_size=0.3, random_state=42) # 方法一:BR(每个标签一个独立二分类器)br_model = MultiOutputClassifier(LogisticRegression(max_iter=1000))br_model.fit(X_train, Y_train)y_pred_br = br_model.predict(X_test) # 方法二:CC(链式分类器,后一个依赖前一个的预测)cc_model = ClassifierChain(LogisticRegression(max_iter=1000))cc_model.fit(X_train, Y_train)y_pred_cc = cc_model.predict(X_test) # 方法三:LP(把标签组合映射成单类别,训练多类分类器)comb_encoder = LabelEncoder()Y_comb_train = comb_encoder.fit_transform([tuple(row) for row in Y_train])lp_model = LogisticRegression(max_iter=1000)lp_model.fit(X_train, Y_comb_train)y_comb_pred = lp_model.predict(X_test)y_pred_lp = np.array(comb_encoder.inverse_transform(y_comb_pred)) def exact_match(y_true, y_pred):    return accuracy_score(y_true, y_pred) print("BR exact match:", exact_match(Y_test, y_pred_br))print("CC exact match:", exact_match(Y_test, y_pred_cc))print("LP exact match:", exact_match(Y_test, y_pred_lp))
目的:在同一份多标签数据集上跑通 BR、CC、LP 三种方法,比较它们的整体匹配准确率。
  1. make_multilabel_classification(n_classes=3, n_labels=2)生成 3 个标签、每个样本含 2 个标签的模拟数据,n_classes 在这里指标签总数。
  2. MultiOutputClassifier(LogisticRegression(...))sklearn 对 BR 的封装,内部为每个标签各训练一个逻辑回归二分类器。
  3. ClassifierChain(LogisticRegression(...))sklearn 对 CC 的封装,按随机顺序把所有标签串成链式结构。
  4. fit_transform([tuple(row) for row in Y_train])LP 的关键:把每条样本的标签组合转成一个元组,再编码成整数类别编号。
  5. inverse_transform(y_comb_pred)LP 的还原步骤:把预测出的组合编号再解码回完整的标签向量。
  6. accuracy_score(Y_test, ...)只有当整组标签与真实标签完全一致才算预测正确,这比单标签的准确率严格得多。

常见误区

误区我一开始以为多标签分类和多分类是一回事,都是输入一个样本、输出一个类别。直到某篇新闻同时被预测为“科技”和“经济”,才发现模型输出只有一个类别,根本没法表达这种多主题情况。

正解多分类是“多个候选中选一个”,输出是单个类别;多标签是“多个标签独立打勾”,输出是一个 0/1 向量。就像周末规划:多分类逼你只在“运动、电影、聚餐”里选一件,多标签允许你全勾上。两者混淆会导致模型结构设计错误——多分类用 softmax 输出一个类别,多标签每个标签都需要独立的二分类输出。

为何常见:两者中文名字只差两个字,初学者看到“多”字就容易混为一谈,加上很多教程把多分类称为“多类分类”,进一步加剧了混淆。

误区BR 忽略了标签相关性,那它肯定是三种方法里最差的,实战中直接排除它就好。

正解BR 的“差”是有条件的——只有当标签相关性很强时才明显吃亏。如果标签之间基本独立,BR 不仅简单高效,还能并行训练,工程上是最省心的选择。很多工业级系统用 BR 做基线,效果已经足够好。就像周末的活动如果彼此毫无关联,逐个独立决定反而最省时间。

为何常见:教材为了突出 CC 和 LP 的改进动机,会反复强调 BR 的缺陷,读者便容易把“有缺陷”等同于“一无是处”。

误区LP 把组合都变成了类别,那理论上什么组合都能预测,应该是最万能的方法。

正解LP 只能预测训练集中出现过的组合。组合数量 2^L 随标签数爆炸式增长,大量组合在训练集中从未出现过,分类器根本没有机会学习它们。如果你硬要预测一个新组合,模型只能被迫选一个见过的“最像”的类别。就像餐厅菜单上没这道菜,你再怎么点也端不出来。

为何常见:初学者看到“把所有组合映射成类别”这一句话,容易想当然地认为映射是穷举完整的,忽略了训练数据只覆盖了其中一小部分。

误区CC 就是把分类器串起来,顺序怎么排应该都差不多,随便定一个就行。

正解链顺序对 CC 效果影响显著。排在前面的标签出现错误,会顺着链条污染后面所有标签,而且越靠前的标签影响越大。实践中常用的做法是把更可靠、更基础的标签排在前面,或者随机生成多条不同顺序的链取平均结果,来降低顺序敏感性和误差传播。

为何常见:从公式上看 h_j 只是多接收了几个输入,初学者容易忽视“链条错误会累积”这一动态特性,把它当成普通的特征拼接。

面试题

Q1. 关于多标签分类与多分类的区别,下列说法正确的是?

单选题 · easy

  • A.多分类输出多个标签,多标签只输出一个类别
  • B.多标签输出多个 0/1 标签,多分类输出单个类别← 正确答案
  • C.两者输出形式完全相同,只是数据规模不同
  • D.多分类要求标签互斥,多标签也要求标签互斥

答案:B。多分类是“多个候选选一个”,输出单个类别;多标签是“多个标签分别打勾”,输出 0/1 向量。选 B。A 把两者说反了;C 说“完全相同”是错的;D 中多标签恰恰不要求标签互斥。

Q2. Binary Relevance(BR)方法的核心思想是什么?

单选题 · mid

  • A.将所有标签组合成一个整体类别来预测
  • B.把多标签问题拆成多个独立二分类问题← 正确答案
  • C.将标签按顺序串联,后一个依赖前一个
  • D.用聚类算法将相似标签合并后预测

答案:B。BR 为每个标签训练一个独立二分类器,互不通信,对应选项 B。A 是 Label Powerset 的思路,C 是 Classifier Chains 的思路,D 不是 BR 的标准做法。

Q3. BR 方法最主要的缺点是什么?

单选题 · mid

  • A.训练时只能串行,无法并行加速
  • B.忽略了标签之间可能存在的相关性← 正确答案
  • C.输出类别数量随标签数指数增长
  • D.只能处理二值特征,无法处理连续特征

答案:B。BR 把每个标签独立看待,不建模标签之间的依赖关系,因此答案为 B。A 说反了,BR 的 L 个分类器可以并行训练;C 是 Label Powerset 的缺点;D 中 BR 对特征类型没有此类限制。

Q4. 关于 Classifier Chains(CC),下列说法正确的是?

单选题 · mid

  • A.链中每个分类器只使用原始特征 x,不使用其他标签信息
  • B.链中第 j 个分类器会把前 j-1 个预测结果作为额外输入← 正确答案
  • C.CC 不需要指定标签顺序,任意顺序效果完全一致
  • D.CC 训练时所有分类器可以完全并行执行

答案:B。CC 的核心是链式传递信息:第 j 个分类器输入包含 x 和前序预测结果,选 B。A 描述的其实是 BR;C 错误,顺序会影响效果;D 错误,链条必须串行执行。

Q5. Label Powerset(LP)方法在标签数量较大时的主要限制是什么?

单选题 · hard

  • A.每个标签都需要单独训练一个模型,开销太大
  • B.组合数量多达 2^L,绝大多数组合没有足够训练样本← 正确答案
  • C.无法建模标签之间的相关性,只能独立预测
  • D.必须依赖深度学习模型,普通模型无法实现

答案:B。LP 把组合映射成类别,组合数随标签数指数增长,导致样本稀疏、类别覆盖不全,选 B。A 是 BR 的特征;C 错误,LP 恰恰能建模全局相关性;D 错误,LP 不依赖特定模型。

Q6. 若标签数量较少(如 5 个)且标签之间相关性很强,最适合优先考虑哪种方法?

单选题 · mid

  • A.Binary Relevance,因为训练最快
  • B.Classifier Chains,因为可以并行计算
  • C.Label Powerset,因为能建模全局标签组合← 正确答案
  • D.随机选择一个标签当作多分类处理

答案:C。标签少时 LP 的组合爆炸可控,强相关性则能发挥其全局建模优势,选 C。A 的 BR 会丢失相关性;B 的 CC 虽能建模但不如 LP 直接;D 完全违背多标签任务目标。

Q7. 下列哪些属于多标签分类的典型应用场景?

多选题 · easy

  • A.新闻文章同时标注“科技”和“财经”两个主题← 正确答案
  • B.手写数字识别,输出 0 到 9 中的一个数字
  • C.照片同时标注“天空”“大海”“人物”等多类物体← 正确答案
  • D.垃圾邮件判断,输出“是垃圾邮件”或“不是”

答案:AC。A 和 C 都是一次预测多个标签,属于多标签场景。B 是单标签多分类,输出一个数字类别;D 是二分类,只有一个标签位,它们都不属于多标签。

Q8. 关于 BR、CC、LP 三种方法的复杂度特点,下列说法正确的是?

多选题 · mid

  • A.BR 需要训练 L 个分类器,且可以并行训练← 正确答案
  • B.CC 需要训练 L 个分类器,但必须串行执行← 正确答案
  • C.LP 只需要训练 1 个分类器,因此复杂度一定最低
  • D.LP 的候选类别数最多可达 2^L 种← 正确答案

答案:ABD。BR 和 CC 都要训练 L 个分类器,区别在于并行与串行,A、B 正确。LP 虽然只训练 1 个分类器,但其类别数最多 2^L 种,复杂度不一定低,C 错误、D 正确。

Q9. 关于 Classifier Chains 的误差传播问题,下列说法正确的是?

多选题 · mid

  • A.链上靠前的标签出错会污染后续标签的预测← 正确答案
  • B.更换链顺序无法改变误差传播的影响
  • C.训练多条随机顺序的链取平均可缓解该问题← 正确答案
  • D.链越短越不容易出现误差传播← 正确答案

答案:ACD。链条上错误会沿顺序传递,A 正确;换顺序会改变误差传播路径,B 错误;多条链集成是常用缓解手段,C 正确;链越短传递路径越少,D 正确。

Q10. 某任务有 50 个标签且标签间存在中等相关性,训练数据约 1 万条,以下策略合理的有?

多选题 · hard

  • A.使用 BR 作为基线,快速验证流程可行性← 正确答案
  • B.使用 LP 直接训练,因为组合数多可覆盖充分
  • C.使用 CC 并尝试多种随机顺序取平均结果← 正确答案
  • D.完全忽略评估指标,只看训练集是否拟合

答案:AC。标签多时 LP 的组合爆炸会带来严重稀疏问题,故 B 不合理;BR 适合当基线,A 正确;CC 适合中等相关性场景,且多链平均能缓解顺序敏感,C 正确;D 忽略泛化评估,工程上必踩坑。