我的 Kaggle 竞赛实验归档:记录每个比赛的实验过程、失败教训与方法迁移,而不是只留结果。
- 可公开的 Kaggle 学习/竞赛归档,共 10 个无奖牌或已完赛的比赛
- 每个比赛目录含:README(结果记录 + 深度复盘)+ 迭代代码 + 提交 CSV
- 重点保留实验过程、失败记录、方法迁移——复盘与代码同等重要
- 活跃奖牌赛(kaggriculture / rsna_knee)赛期内不公开,赛后归档到此仓库
- 本仓库不包含任何奖牌赛代码、不虚构排名或成绩
这些比赛按我实际的学习顺序排列,每一阶段解决的问题不同:
Baselines & Controls (Titanic)
↓ 对照线思维、CV 与公开榜脱节、小样本防过拟合
Feature Engineering & Ensembling (House Prices, Spaceship Titanic, S6E8)
↓ domain-aware 特征、异构集成、OOF 混合
Time-Series Forecasting (Store Sales)
↓ lag/rolling 特征、提交正确性、灾难调试
Computer Vision (Digit Recognizer, Solar Filament)
↓ 模型归纳偏置匹配、极小样本 patch pipeline
Pretrained NLP (NLP Disaster Tweets, LLM Classification)
↓ 预训练 > 从零训练小语料、离线权重挂载
Competition / Systems Thinking (kaggriculture — 赛后归档)
↓ 共享市场博弈、对手状态估计、Elo 赛制策略
891 行小样本的经典教训:本地 CV 0.83 与公开榜 ~0.76 脱节后,学会模型分数必须与规则对照线(性别基线)在相同折上比较;最终胜出的不是最复杂的模型,而是 4 特征的最简模型。 → titanic/
时序赛核心:lag/rolling 特征贡献 +0.04 进头部区间,但两次"本地完全看不出来"的灾难分(提交 id 错位 3.50、测试滞后特征 NaN 塌陷 1.76)证明——提交正确性与模型质量是两件事。 → store_sales/
69 万行合成表格:单模型调参到顶后,真正的收益来自异构集成 + 拼接社区公开 OOF 库(74 模型,rank 归一化解决 log-odds 量纲陷阱,嵌套 CV 防过拟合),公开榜 0.97033。 → smartphone_addiction/
| 比赛 | Metric | Best Score | Best Version | Status |
|---|---|---|---|---|
| Titanic | Accuracy | 0.77272 | v4 | Completed |
| Digit Recognizer | Accuracy | 0.98778 | CNN | Completed |
| House Prices | RMSE (log) | 0.12196 | v4 | Completed |
| Spaceship Titanic | Accuracy | 0.80289 | v2 | Completed |
| Store Sales | SMAPE | 0.43884 | v2 | Completed |
| NLP Disaster Tweets | F1 | 0.83174 | v3 | Completed |
| Smartphone S6E8 | AUC | 0.97033 | v6 | Completed |
| LLM Classification | LogLoss | —¹ | v1 | Completed |
| Solar Filament | —¹ | —¹ | U-Net | Completed |
| S6E9 EV Purchase | AUC | —² | —² | In progress |
¹ 练习赛/无最终成绩记录(以方法验证为主,详见各自 README)。 ² 进行中,未提交最终版本。
不同数据规模下我的策略是条件化的,不是放之四海皆准的规则:
- 小样本(千行级):baseline + 规则对照线 + 警惕过拟合(Titanic:CV 0.83 上不了榜,简单模型胜出)
- 中等规模表格:domain-aware 特征工程 + 异构混合(House Prices / Spaceship:特征要还原数据背后的真实结构)
- 大规模表格:异构集成 + OOF 库混合,单模型调参收益趋零(S6E8:+0.004 来自拼 OOF 库而非调参)
- 时间序列:lag/rolling 特征为主,提交正确性检查优先于模型优化(Store Sales)
- 图像:匹配模型归纳偏置(CNN > MLP),极小样本用 patch pipeline(Solar:19 张图)
- NLP:预训练模型微调 > 从零训练小语料(BERT 语义来自预训练语料,7613 条推文只负责微调)
- 练习赛:优先验证可迁移技术,不无限冲榜(LLM 赛是为 RSNA 的 distilbert 分支做预演)
Kaggle/
├── README.md # 本文档(landing page)
├── .gitignore # data/、模型权重、活跃奖赛已排除
├── <competition>/ # 每场比赛一个目录
│ ├── README.md # 结果记录 + 深度复盘(四段式)
│ ├── *.py # 迭代代码(baseline → 各版本)
│ ├── submissions/ # 提交 CSV 存档(保留最佳版本)
│ └── data/ # 原始数据(gitignore,不入库)
每个比赛 README 的统一结构:
- Result — Metric / Best Score / Best Version / Key Finding
- 结果记录 — 简介、项目结构、提交记录表
- 深度复盘 — 心理历程、架构方法演变、失败实验档案、核心经验教训
- 原始比赛
data/不入库(GitHub 单文件限 100MB),需要时从 Kaggle 重新下载 - 大型模型权重 / OOF 资产不入库(如 smartphone_addiction 的
public_oof/) - 环境按比赛分别定义,不提供统一 requirements(各比赛依赖差异大):
- 表格赛(titanic/house_prices/S6E8 等):
kaggleconda 环境,Python 3.11 (numpy/pandas/sklearn/lightgbm/xgboost/catboost/optuna) - CNN 赛(digit_recognizer/solar_filament):另需 torch(CPU 版镜像)
- NLP 赛(nlp_getting_started/llm_classification):另需 transformers, distilbert 微调建议在 Kaggle Notebook + GPU 上跑
- 各比赛 README 的"使用方法"一节写明本赛可复现的命令
- 表格赛(titanic/house_prices/S6E8 等):
- 提交 CSV 保留存档,命令见各比赛 README
kaggriculture(Featured, Simulation)与 rsna_knee(Research, Medical Imaging)
是两个仍在进行的奖牌赛,赛期内代码不公开。赛后(或赛期允许后)归档到本仓库。
Last updated: 2026-09-04