HbCompetitionCheckList - 101camp/playground GitHub Wiki
沥川/Woody/Caijun 组队连续刷过 Kaggle以及天池大数据竞赛
过程中发觉重点不在技术实力, 而是各种细节处置上, 太多小问题积累起来, 导致结果不够力.
经验不足
问题是经验是什么? 不足了怎么办?
- 经验是有意识的经历
- 在经历之前有预判
- 在过程中有意收集资料/主动改进
- 经历之后及时总结抽象经验
- ...
- 不足, 当然得补
- 问题是, 补不一定在失败后
- 最赞的补, 就在意识到不时现场就地...
接下来, 还准备批量那针对性刷不同的 AI 比赛, 那么能复用的经验就非常必要立即开始积累了
成员准入
- 团队人数是否过多? (人数过多, 沟通协调成本变高, 且比赛往往有人数限制)
- 团队人数是否过少? (人多力量大, 单刷很累, 且容易思维局限. 一点心得、一份攻略、一段baseline code)
- 成员是否有相关背景?
- 成员参与意愿如何?
- 成员参与动机?
- ...
进入比赛
- 团队名称是否取好? (0. 念得出来 1. 多重自迭释义 2. 短)
- 是否完成团队竞赛报名, 且每个队员完成相关个人资料认证?
- 沟通协调:
- 是否有独立稳定(且免费)团队协作仓库? (推荐: bitbucket)
- 是否将 bitb -> Slack 进行 webhook 关联? Manage webhooks
- 是否有 Slack 专用沟通频道?
- 是否有 对应列表自动收集所有渠道信息?
- 是否有独立稳定(且免费)团队协作仓库? (推荐: bitbucket)
- 工程协同:
-
是否统一开发环境? (重要)
- 是否已生成 .gitnigroe ? (避免推送垃圾到仓库)
- 是否有脚手架目录,约定工程结构? 并第一时间获得全员认同? (参考: atl4dama)
- 是否有开发日程规划?
- 是否 README 驱动?
- 首页 README 是否给出每人重要信息链接?
- 是否确立 Issue 规约?
- 发送消息时, 是否发在 Issue 按照 5W1H 进行描述, 同时在 Slack 中提醒?
- 是否对项目整体进行规划, 且在 Issue 中发布成任务?
- 是否有统一的缩写规约? (缩写规约)
- 注释是否清晰?
- .SQL 是否注明处理表格的流入和流出?
- .ipynb 是否有专门索引页?
- .py 是否有运行帮助(docstring)?
- ...
-
是否统一开发环境? (重要)
比赛策应
- 比赛节奏:
- 是否明确每人可供投入时间情况, 并安排任务? (例如: 特征工程/模型融合/探索未知)
- 是否定期交流?
- 是否定期进行 CodeReview?
- 是否明确竞赛目标, 及相关时间节点?
- 是否有固定文档来记录成绩? (日期, 策略, 成绩, 对应代码, 数据集, 提交人)
- 赛点策略:
-
是否明确赛制? 并提前针对重要任务进行预先测试?
- (非常重要! 最终没拿奖金, 就因为这个. 很多比赛会分 A/B 榜, 决定成绩的往往是 B 榜, 测试时间较短, 需要提前对 B 榜策略进行测试, 不然可能后期调试来不及...)
- 是否迅速提交 Baseline , 并拉通竞赛全流程? (重要, 最好 1-2 天内测试一个简单基础版本)
- Log 信息是否倒序排列? (最新信息在上面)
- 是否加入选手交流群?
-
是否明确赛制? 并提前针对重要任务进行预先测试?
分赛程阶段来总结...
- 是否去重?
- 是否处理缺失值?
- 是否处理不规则格式?
- 是否处理噪声?
- 是否处理异常值?
- 是否进行归一化? (数据量级差距过大, 对树形以外算法有很大影响)
- 是否有人提取常规特征?
- 是否有人专门提取开脑洞特征?
- 是否有人专精模型调参及融合?
- 是否有人优化最佳模型
- 代码是否整理成脚本?
- 是否保存相关截图?
- 是否记录竞赛中发生的故事/转折/尝试/收获?
- 18.3.16 init