Skip to content

IOAI 2024 Help BOBAI

  • 来源:noai-mis/IOAI/IOAI-2024/On-Site-Round/Help_BOBAI
  • 类型:Tabular ML / incremental classification
  • 原始资料:Help_BOBAI.ipynbSolution/Help_BOBAI_Solution.ipynb
  • 题面完整性:notebook 内完整
  • 解法资料完整性:有 reference solution

题面大意

Bob 原本有一个未知语言的 5 类分类器,现在客户要求当天扩展到 7 类,并提供新类别的少量标注数据。任务是在已有 base classifier 的基础上处理新增类别,输出 7 类预测。

数据特点

输入是向量特征,标签原本有 0-4 旧类,新数据包含 5、6 两个新类。reference solution 中读取 train-dev_dataset_with_labels.pt,把 inputs 和 labels 分离,并专门抽取 label > 4 的样本训练 KNN。说明新增类样本少,且旧模型对旧类仍可用。

考点

核心考点是增量学习/新类适配。不能完全抛弃旧分类器,也不能只在新类上训练导致旧类失效。需要判断样本是否属于新类,再在新类中分类;旧类则交给 base classifier。

涉及知识点

  • Incremental classification。
  • KNN / SVM 小样本分类。
  • 置信度阈值与拒识。
  • 旧模型与新模型融合。
  • 类别扩展。

解法思路

基础策略是两阶段:先用旧 base classifier 对输入给出 0-4 类预测和置信度;再训练一个新类检测器判断样本是否更像 5/6 类。若新类检测器触发,则用 KNN/SVM 在 5/6 中分类;否则保留旧模型输出。reference solution 倾向于对新类样本训练 KNN。

可选/多种解法

KNN 新类识别:样本少时简单有效。

One-vs-rest 新类检测器:把 5/6 与旧类区分。

校准融合:比较旧模型置信度和新类距离分数。

特殊技巧

新类检测阈值比新类内部分类更重要。阈值太低会把旧类误报为新类,太高则漏掉新类。可以用训练/验证 split 搜索阈值。特征标准化会显著影响 KNN 距离。

调参优化

调参应先确认评分函数和验证切分,再决定模型复杂度。对于一般表格分类/回归,建议从简单 baseline 开始,依次调缺失值填充策略、类别编码、特征交互、树模型深度、学习率、迭代轮数和正则强度。若训练/测试存在时间或主体分组,应使用相同结构的验证切分,避免随机 CV 过乐观。集成可作为最后一步,先用验证集确定各模型权重,不要直接平均所有模型。

注意事项

标签 5/6 训练时可减 5 做二分类,但输出时必须加回。旧类数据不要丢,否则无法评估新模型对旧类的误伤。题面是未知语言,特征语义不重要,重点在向量空间结构。

推广意义

这题对应真实系统的快速新类上线:已有模型不能重训或时间不足时,用小样本检测器/近邻模块补丁是常见工程方案。