Appearance
IOAI 2024 Help BOBAI
- 来源:
noai-mis/IOAI/IOAI-2024/On-Site-Round/Help_BOBAI - 类型:Tabular ML / incremental classification
- 原始资料:
Help_BOBAI.ipynb、Solution/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 做二分类,但输出时必须加回。旧类数据不要丢,否则无法评估新模型对旧类的误伤。题面是未知语言,特征语义不重要,重点在向量空间结构。
推广意义
这题对应真实系统的快速新类上线:已有模型不能重训或时间不足时,用小样本检测器/近邻模块补丁是常见工程方案。