竞赛元策略
一、比赛选择策略
1.1 比赛分类与金牌难度
| 比赛类型 | 参赛人数 | 金牌门槛 | 特点 |
|---|---|---|---|
| Featured(Featured) | 2000~5000+ | 前50名 | 主流比赛,竞争激烈,含金量最高 |
| Research | 500~2000 | 前20名 | 学术导向,数据量大,周期长 |
| Playground | 500~1500 | 前30名 | 入门级,适合练手 |
| Code Competition | 1000~3000 | 前40名 | 提交代码而非预测值,工程要求高 |
| Annual(年度赛) | 3000~6000+ | 前100名 | 参赛人数最多,shake-up最大 |
1.2 比赛选择决策
| 维度 | 容易拿牌的比赛 | 难拿牌的比赛 |
|---|---|---|
| 领域 | 冷门领域(推荐系统、时序) | 热门领域(NLP、CV) |
| 数据量 | 大数据量(筛选空间大) | 小数据量(随机性大) |
| 评价指标 | AUC/F1(稳定) | Accuracy/RMSE(敏感) |
| 参赛人数 | <1000人 | >3000人 |
| 赛程 | 3个月(迭代充分) | 1个月(时间不够) |
| 数据类型 | 结构化(确定性高) | 非结构化(随机性大) |
1.3 投入产出比评估
| 维度 | 高ROI | 低ROI |
|---|---|---|
| 领域匹配 | 自己擅长的领域 | 从零学习的领域 |
| 计算资源 | CPU/单GPU即可 | 需要多GPU集群 |
| baseline差距 | baseline分数低(提升空间大) | baseline已接近天花板 |
| 公开信息 | Discussion活跃(可借鉴) | 信息封闭(独自摸索) |
| 时间窗口 | 比赛刚开始1~2周 | 比赛快结束才加入 |
二、比赛时间管理
2.1 标准赛程节奏(3个月)
| 阶段 | 时间 | 核心任务 | 产出 |
|---|---|---|---|
| 第1周 | Day 1~7 | 赛题理解+EDA+Baseline提交 | 可提交的baseline |
| 第2~3周 | Day 8~21 | 数据分析+特征工程+模型选择 | 超越baseline的方案 |
| 第4~6周 | Day 22~42 | 模型优化+训练策略+数据增强 | 稳定CV的单模型 |
| 第7~9周 | Day 43~63 | 模型融合+伪标签+后处理 | 多模型融合方案 |
| 第10~11周 | Day 64~77 | 冲刺提分+规则修正+TTA | 最终提交方案 |
| 第12周 | Day 78~84 | 提交策略+shake-up防范 | 选择最终提交 |
2.2 各阶段时间分配原则
| 原则 | 说明 |
|---|---|
| 前期重速度 | 第1周必须提交,即使分数很低,确认提交流程无误 |
| 中期重迭代 | 每次改动都要在验证集上评估,确认有效再深入 |
| 后期重稳定 | 最后2周不做大改动,只做微调和融合 |
| 每天有产出 | 每天至少跑一个实验,保持节奏感 |
| 记录一切 | 每次实验记录参数、CV分数、LB分数 |
2.3 时间陷阱
| 陷阱 | 表现 | 解决方案 |
|---|---|---|
| 过度EDA | 花2周做EDA还没提交 | EDA 3天内完成,先提交baseline |
| 单模型死磕 | 一个模型调1周不换 | 单模型提升<0.1%就换方向 |
| 盲目堆模型 | 融合20个模型没提升 | 5~8个多样性模型即可 |
| 最后才融合 | 最后3天才开始融合 | 提前2周开始融合实验 |
| 忽视规则 | 最后发现违反规则被取消 | 开赛第一周仔细读规则 |
三、LB Probing与Shake-up防范
3.1 Public/Private分裂机制
| 维度 | 说明 |
|---|---|
| Public LB | 用测试集的一部分(通常30%~40%)评估,比赛期间可见 |
| Private LB | 用测试集的剩余部分评估,比赛结束后才公布 |
| 分裂方式 | 随机分裂 / 按时间分裂 / 按ID分裂 |
| shake-up | Public和Private排名不一致的现象,可能上下浮动几十名 |
3.2 LB Probing技巧
| 技巧 | 说明 |
|---|---|
| 全1提交 | 提交全1预测,探测Public测试集的正样本比例 |
| 全0提交 | 提交全0预测,探测负样本比例 |
| 单样本探测 | 只改一个样本的预测,观察LB变化,推断该样本是否在Public中 |
| 随机提交 | 多次随机提交,估计Public测试集的分布 |
| 分裂推断 | 通过多次提交推断Public/Private的分裂方式(随机/时间/ID) |
3.3 Shake-up防范策略
| 策略 | 说明 |
|---|---|
| 信任CV | CV分数比Public LB更可靠,选择提交时以CV为主 |
| 对抗验证 | 确保验证集与测试集分布一致 |
| 多折一致性 | 5折CV各折分数方差小,说明模型稳定 |
| 避免过拟合Public | 不要针对Public LB反复调参 |
| 选择稳定的提交 | 选择CV和Public LB都高的提交,而非Public最高但CV一般的 |
| 简单模型兜底 | 准备一个简单但稳定的模型作为保底提交 |
3.4 Shake-up常见原因
| 原因 | 说明 | 防范 |
|---|---|---|
| Public/Private分布不同 | 时间分裂导致分布漂移 | 对抗验证 |
| 过拟合Public | 针对Public反复调参 | 以CV为主 |
| 随机性 | 小测试集的随机波动 | 多折验证降低方差 |
| 数据泄露 | 利用了Public特有信息 | 不依赖泄露信息 |
| 伪标签过拟合 | 伪标签偏向Public分布 | 伪标签置信度阈值提高 |
四、团队协作策略
4.1 单人vs组队
| 维度 | 单人 | 组队(2~3人) |
|---|---|---|
| 灵活性 | 高,随时换方向 | 低,需协调 |
| 实验吞吐 | 低,串行 | 高,并行 |
| 融合多样性 | 低,思路单一 | 高,不同视角 |
| 沟通成本 | 无 | 有,需定期同步 |
| 金牌概率 | 中(需全能) | 高(互补优势) |
4.2 团队分工模式
| 模式 | 分工方式 | 适用场景 |
|---|---|---|
| 按阶段分工 | A做特征工程,B做模型训练,C做融合 | 各有所长 |
| 按模型分工 | A训BERT,B训RoBERTa,C训DeBERTa | 模型融合赛 |
| 按实验分工 | A做主实验,B做消融实验,C做EDA | 快速迭代 |
| 按领域分工 | A做NLP部分,B做特征部分 | 跨领域赛题 |
4.3 团队协作要点
| 要点 | 说明 |
|---|---|
| 统一验证集 | 所有人用相同的验证集划分,确保结果可比 |
| 统一代码规范 | 输入输出格式统一,方便模型融合 |
| 每日同步 | 每天15分钟同步进展,避免重复工作 |
| 实验记录共享 | 用共享表格记录每次实验的参数和结果 |
| 提前融合 | 不要最后一天才合并,提前2周开始融合实验 |
五、提交策略
5.1 提交选择原则
| 原则 | 说明 |
|---|---|
| CV优先 | 选择CV分数最高的提交,而非Public LB最高的 |
| CV+LB一致 | 选择CV和LB都高的提交,最稳定 |
| 不同策略分散 | 2次提交选不同策略(如一个融合、一个单模型) |
| 简单模型兜底 | 一次提交用复杂融合,另一次用简单稳定模型 |
5.2 提交时机
| 时机 | 策略 |
|---|---|
| 比赛初期 | 尽早提交,确认流程,建立baseline |
| 比赛中期 | 每次重大改动后提交验证LB |
| 比赛末期 | 减少提交频率,避免过拟合LB |
| 最后1天 | 选择最终2次提交,不再改动 |
5.3 Code Competition提交策略
| 策略 | 说明 |
|---|---|
| 提前测试 | 提交代码前在本地模拟运行,确保无报错 |
| 内存控制 | 推理时用进程隔离释放内存,不同时加载所有模型 |
| 时间控制 | 确保推理时间在限制内,预留20%余量 |
| 模型蒸馏 | 大模型蒸馏到小模型,减少推理时间和内存 |
| 降级方案 | 准备一个轻量模型,主模型超时时自动切换 |
六、竞赛心态管理
| 阶段 | 常见心态问题 | 应对策略 |
|---|---|---|
| 初期 | 看到别人高分焦虑 | 专注自己的baseline,不攀比 |
| 中期 | 提升停滞想放弃 | 换个方向尝试,或休息1天 |
| 后期 | 融合没提升焦虑 | 回归CV分数,减少无效实验 |
| 末期 | shake-up恐惧 | 信任CV,选稳定提交 |
| 赛后 | 没拿牌失落 | 复盘总结,下次改进 |
七、竞赛学习路径
7.1 新手到金牌的进阶路线
| 阶段 | 目标 | 时间 | 行动 |
|---|---|---|---|
| 入门 | 完成一次完整提交 | 1~2周 | Playground赛+baseline |
| 青铜 | Top 50% | 1~2月 | 跟着Top方案复现 |
| 白银 | Top 25% | 2~3月 | 独立完成特征工程+模型选择 |
| 黄金 | Top 10%(金牌) | 3~6月 | 融合策略+竞赛元策略+领域深耕 |
| 大师 | Top 1% | 6~12月 | 多领域精通+创新方法 |
7.2 学习资源
| 资源 | 用途 |
|---|---|
| Kaggle Discussion | 比赛中的方案分享和技巧讨论 |
| Kaggle Notebooks | 可运行的代码和方案 |
| Kaggle Master Grandmaster访谈 | 顶级选手的经验分享 |
| Kaggle Ensembling Guide | 融合策略经典文章 |
| 各领域SOTA论文 | 前沿方法学习 |