先约定这七天要交付什么
这是一份执行节奏,不是成绩承诺。七天结束时,你应该能拿出任务卡、数据检查记录、一个可运行基线、验证说明、输出文件检查和一页复盘;如果规则允许且所有检查已经完成,可以额外保留一次提交记录。排名、徽章和线上分数都不属于本计划的必达结果。 每天开始前写下可用时间和当天的一个问题,每天结束时保存一个产出。没有足够时间时,宁可只完成最小范围并记下缺口,也不要把多个未经检查的步骤堆在一个 Notebook 里。
| 天数 | 核心问题 | 当天最小产出 | 建议用时 |
|---|---|---|---|
| Day 1 | Kaggle 任务是什么 | 任务卡、术语表 | 40 分钟 |
| Day 2 | 数据长什么样 | 数据字典、质量摘要 | 60 分钟 |
| Day 3 | 模型怎样被检查 | 数据流图、指标说明 | 50 分钟 |
| Day 4 | 如何跑通 Notebook | 可从头执行的最小流程 | 60 分钟 |
| Day 5 | 结果是否值得比较 | 基线、验证记录、输出检查 | 70 分钟 |
| Day 6 | 哪些地方可能不可靠 | 风险清单、代码批注 | 55 分钟 |
| Day 7 | 能否独立重做 | 独立运行、差异和复盘 | 85 分钟 |
Day 1:认识平台和任务
先阅读认识 Kaggle,用自己的话写出 Competition、Dataset、Notebook、Submission、Leaderboard 和 Profile 的作用。随后选一个可合法查看的公开任务,只看官方页面,不急着打开热门 Notebook。
填写这张任务卡:
| 字段 | 你的记录 |
|---|---|
| 目标 | 使用什么输入解决什么问题 |
| 样本 | 一行或一个对象代表什么 |
| 输出 | 预测值、文件或其他规定结果 |
| 指标 | 名称、方向、聚合方式和误解风险 |
| 规则 | 数据、团队、代码、资源和提交限制 |
| 时间 | 官方报名、组队与提交截止日期 |
| 缺口 | 还不懂的术语、字段或工具 |
当天的检查是:你能否不用任务标题复述目标、输入和输出。无法复述就把剩余时间放回 Overview、Data、Evaluation 和 Rules。
Day 2:用 Python 和 Pandas 体检数据
读取训练和测试文件,先输出行列数、列名、类型和前三行,再统计缺失、重复、唯一值和数值范围。不要一开始就画大量图,也不要在没有记录原因的情况下删除列。
可以先运行一个最小检查:
import pandas as pd
frame = pd.read_csv("data/train.csv")
print(frame.shape)
print(frame.dtypes)
print(frame.isna().sum().sort_values(ascending=False).head())
print("duplicate rows:", frame.duplicated().sum())
这是通用示例,路径和字段应替换为当前任务的实际值。为关键字段建立数据字典,标出是否为标识、特征、目标、时间或可能泄漏的信息。当天结束时保存一页“观察—风险—行动”:例如观察到某列缺失很多,风险是填补方式改变分布,行动是先按训练侧统计量处理并在验证中比较。
Day 3:分清特征、目标和验证
今天不追求复杂模型,只画出数据如何流动:输入字段经过哪些处理,模型学习什么,验证使用哪部分数据,最后如何生成输出。把 Feature、Target、Train、Test、Model 和 Validation 各写一句解释。
为当前任务选一个简单的成功标准。分类可以先看一个与类别分布相称的指标,回归可以先看一个容易解释的误差;同时写清数据切分假设。若同一主体有多条记录,应考虑按主体分组;若预测未来,应保证训练时间早于验证时间。
当天的检查是:你能指出哪些字段在预测时点不可用,能说明测试集何时才允许查看,并能解释为什么不能每次直接上传平台看分数。
Day 4:跑通一个 Notebook
进入平台使用说明,按 Rules、Data 和 Notebook 的顺序执行。先确认数据已经挂载、文件路径正确,再完成读取、检查、最小处理、基线训练、预测和输出。每段代码前写一句输入和输出说明,避免只依赖临时状态。
当天只追求闭环可运行。遇到报错时记录:
problem:
symptom: "输出文件行数与样例不一致"
checked: ["预测长度", "索引", "字段顺序"]
next_action: "重新核对官方样例并从干净环境运行"
不要把真实凭据、私人路径或敏感数据放入记录。当天结束时从头重启 Notebook 一次,确认单元格顺序没有隐藏依赖。
Day 5:建立基线并检查输出
选择一个简单、可解释、能重复运行的基线。保存随机种子、数据版本、处理参数、验证指标和运行时间;如果使用交叉验证,记录每折结果及其波动。基线的作用是提供参照,不是证明最终方案优秀。
提交文件先在本地检查,再决定是否使用提交机会:
- 字段名和顺序是否与样例一致;
- 行数是否与待预测数据一致;
- 标识列是否保留且没有重复;
- 类型、缺失值、索引和额外调试列是否符合要求;
- 输出是否来自重新运行后的当前版本。
只有在 Rules 和文件契约都确认后,才把一次平台反馈写入实验表,并同时记录本地验证。若线上结果与本地差异很大,先列出切分、泄漏、预处理和格式的可能原因。
Day 6:复盘代码与公开边界
今天像代码审阅者一样逐段检查:数据是否在正确边界内切分,填补和编码是否只从训练侧学习,随机种子和依赖是否集中记录,失败输入是否有明确报错,公开代码的来源和许可是否清楚。
把发现分成三类:
| 类型 | 例子 | 修复动作 |
|---|---|---|
| 程序错误 | 文件路径不存在、列名拼错 | 缩小输入并补断言 |
| 评估风险 | 同一主体跨训练和验证、未来字段混入 | 重新定义切分或字段 |
| 表达风险 | 把公开方案写成个人原创 | 分层标注来源和贡献 |
挑一个风险实际修正,再重新运行。不要把失败记录删掉;写下症状、版本、排查步骤、判断和影响范围,它会成为第七天比较的基准。
Day 7:独立重做和形成复盘
关闭原 Notebook 或只保留任务卡,从数据读取开始重新实现最小流程。可以参考官方任务定义,但不要逐行依赖上一版代码。比较两次运行的字段、处理、基线指标、运行时间和输出差异;不同之处写出原因假设,暂时无法解释的地方保留为不确定。
最后完成一页复盘:
- 我理解的任务、输入、输出和指标是什么?
- 哪一步最容易出错,实际怎样检查?
- 基线结果和验证波动如何,能支持什么结论?
- 哪一次尝试没有带来改善,为什么暂时保留或放弃?
- 哪些代码、数据和结论来自公开来源,自己具体新增了什么?
- 下一周要验证的一个假设是什么?
如果你准备整理公开作品,可把复盘放进项目 README;若还没有稳定产出,先保存为私人学习记录,不必急着公开。
计划卡与延期规则
每天使用同一条记录格式,能够在时间不足时安全延期:
date: "YYYY-MM-DD"
focus: "今天要回答的问题"
input: "使用的数据或 Notebook 版本"
output: "今天留下的文件、表格或结论"
risk: "尚未确认的规则、数据或评估风险"
next: "下一次最小行动"
某天没有完成时,不把下一天的内容全部压缩到一个时段。先补齐前一天的最小产出,再决定是否减少范围;可以把计划从七天延长,但不跳过数据边界、验证和输出检查。
七天验收清单
- 已完成任务卡,并记录官方页面与关键赛程。
- 能读取数据并说明字段类型、缺失、重复和目标分布。
- 能解释 Feature、Target、Train、Test、Model 和 Validation。
- Notebook 从干净环境可以按顺序运行。
- 有一个简单基线、验证记录和输出文件检查。
- 至少记录并修正一个程序、评估或表达风险。
- 独立重做过一次,并保留差异、失败和下一步假设。
完成七天复盘后,若要整理公开成果,进入Kaggle 主页指南,把事实、证据和个人贡献放到合适的位置。
常见问题
每天只有半小时,还能使用这个计划吗?
可以。按当天的最小产出拆分任务,必要时把七天延长为两周;不要为了赶进度跳过规则、验证和记录。
第七天必须提交到排行榜吗?
不必须。只有在规则、文件格式和本地检查都完成后才考虑提交;能够独立重跑并解释结果本身就是重要产出。
某一天卡住了应该怎么办?
先把问题缩小为读取、处理、验证或输出中的一个环节,保留报错和尝试,使用后续时段修复;不要用复制一整份无法解释的代码掩盖缺口。
七天结束后就算掌握 Kaggle 了吗?
不能这样推断。七天只帮助你完成一次基础闭环,之后还需要针对数据类型、验证策略、模型和项目表达继续练习。
参考依据(官方一手资料)
以上链接仅用于事实核验。学习内容已由向上教育重新组织并在本页完整呈现。
下一步
把知识转成一个能完成的行动
先判断适合当前组队比赛还是历史项目,再决定是否需要个性化适配。