HbCompetitionCheckList - 101camp/playground GitHub Wiki

怼圈大数据竞赛(团队)自查清单

背景

沥川/Woody/Caijun 组队连续刷过 Kaggle以及天池大数据竞赛

现象

过程中发觉重点不在技术实力, 而是各种细节处置上, 太多小问题积累起来, 导致结果不够力.

分析

经验不足

问题是经验是什么? 不足了怎么办?

  • 经验是有意识的经历
    • 在经历之前有预判
    • 在过程中有意收集资料/主动改进
    • 经历之后及时总结抽象经验
    • ...
  • 不足, 当然得补
    • 问题是, 补不一定在失败后
    • 最赞的补, 就在意识到不时现场就地...

初稿

接下来, 还准备批量那针对性刷不同的 AI 比赛, 那么能复用的经验就非常必要立即开始积累了

组队

成员准入

  • 团队人数是否过多? (人数过多, 沟通协调成本变高, 且比赛往往有人数限制)
  • 团队人数是否过少? (人多力量大, 单刷很累, 且容易思维局限. 一点心得、一份攻略、一段baseline code)
  • 成员是否有相关背景?
  • 成员参与意愿如何?
  • 成员参与动机?
  • ...

进入比赛

  • 团队名称是否取好? (0. 念得出来 1. 多重自迭释义 2. 短)
    • 是否完成团队竞赛报名, 且每个队员完成相关个人资料认证?
  • 沟通协调:
    • 是否有独立稳定(且免费)团队协作仓库? (推荐: bitbucket)
    • 是否有 Slack 专用沟通频道?
    • 是否有 对应列表自动收集所有渠道信息?
  • 工程协同:
    • 是否统一开发环境? (重要)
      • 是否已生成 .gitnigroe ? (避免推送垃圾到仓库)
    • 是否有脚手架目录,约定工程结构? 并第一时间获得全员认同? (参考: atl4dama)
    • 是否有开发日程规划?
    • 是否 README 驱动?
      • 首页 README 是否给出每人重要信息链接?
    • 是否确立 Issue 规约?
      • 发送消息时, 是否发在 Issue 按照 5W1H 进行描述, 同时在 Slack 中提醒?
      • 是否对项目整体进行规划, 且在 Issue 中发布成任务?
    • 是否有统一的缩写规约? (缩写规约)
    • 注释是否清晰?
      • .SQL 是否注明处理表格的流入和流出?
      • .ipynb 是否有专门索引页?
      • .py 是否有运行帮助(docstring)?
      • ...

比赛策应

  • 比赛节奏:
    • 是否明确每人可供投入时间情况, 并安排任务? (例如: 特征工程/模型融合/探索未知)
    • 是否定期交流?
    • 是否定期进行 CodeReview?
    • 是否明确竞赛目标, 及相关时间节点?
    • 是否有固定文档来记录成绩? (日期, 策略, 成绩, 对应代码, 数据集, 提交人)
  • 赛点策略:
    • 是否明确赛制? 并提前针对重要任务进行预先测试?
      • (非常重要! 最终没拿奖金, 就因为这个. 很多比赛会分 A/B 榜, 决定成绩的往往是 B 榜, 测试时间较短, 需要提前对 B 榜策略进行测试, 不然可能后期调试来不及...)
    • 是否迅速提交 Baseline , 并拉通竞赛全流程? (重要, 最好 1-2 天内测试一个简单基础版本)
    • Log 信息是否倒序排列? (最新信息在上面)
    • 是否加入选手交流群?

技术应对

分赛程阶段来总结...

数据清洗

  • 是否去重?
  • 是否处理缺失值?
  • 是否处理不规则格式?
  • 是否处理噪声?
  • 是否处理异常值?
  • 是否进行归一化? (数据量级差距过大, 对树形以外算法有很大影响)

特征工程

  • 是否有人提取常规特征?
  • 是否有人专门提取开脑洞特征?

模型调/验/融合

  • 是否有人专精模型调参及融合?
  • 是否有人优化最佳模型

logging

  • 代码是否整理成脚本?
  • 是否保存相关截图?
  • 是否记录竞赛中发生的故事/转折/尝试/收获?

ChangeLog

  • 18.3.16 init
⚠️ **GitHub.com Fallback** ⚠️