我的 kaggle 的学习路线
我的目标是系统学习机器学习,并且最终能自己写模型、做实验、理解算法,Kaggle 非常适合作为“实验场”。但有一个关键认识:
Kaggle 不是单纯的机器学习课程,而是“课程 + 数据集 + Notebook + 比赛 + 社区”的综合实践平台。
目前 Kaggle 的比赛专门分出了 Getting Started(入门) 类型,官方明确把它定位为适合新用户的机器学习基础练习;其中 Titanic、House Prices 等就是典型入门项目。(Kaggle)
1. 先理解 Kaggle 到底是什么
可以把 Kaggle 理解成一个:
“机器学习实验室 + GitHub + 在线 Jupyter Notebook + 排行榜”
它主要有几个部分:
| 模块 | 作用 | 新手重要程度 |
|---|---|---|
| Learn | 系统学习 Python、Pandas、ML | ⭐⭐⭐⭐⭐ |
| Competitions | 真正解决机器学习问题 | ⭐⭐⭐⭐⭐ |
| Notebooks / Code | 看别人怎么做 | ⭐⭐⭐⭐⭐ |
| Datasets | 找数据练习 | ⭐⭐⭐⭐ |
| Models | 使用/分享预训练模型 | ⭐⭐⭐ |
| Discussions | 提问、看经验 | ⭐⭐⭐ |
其中 Learn 是最适合刚开始的人。Kaggle 官方目前提供 Python、Pandas、Intro to Machine Learning、Intermediate Machine Learning、Feature Engineering、Data Visualization、Intro to Deep Learning 等课程,而且这些课程免费。(Kaggle)
2. Kaggle 最核心的学习闭环
你以后在 Kaggle 上反复做的其实就是这个循环:
数据
↓
观察数据
↓
清洗数据
↓
特征工程
↓
划分训练集/验证集
↓
训练模型
↓
评价模型
↓
改进模型
↓
提交 Kaggle
↓
得到分数
↓
分析为什么提高/降低
↓
再次实验
这和你现在正在学习的:
数学基础 → AI算法 → 工程实现
其实非常契合。
例如你学习:
梯度
↓
梯度下降
↓
线性回归
↓
逻辑回归
↓
损失函数
↓
训练模型
在 Kaggle 上就可以真正看到:
数学公式
↓
Python
↓
sklearn
↓
训练模型
↓
真实数据
↓
预测
↓
评价指标
所以我比较建议你把 Kaggle 当成“把数学和算法落地的实验场”,而不是把目标设成“冲排行榜”。
3. 新手千万不要一上来就挑战排行榜
这是很多人第一次使用 Kaggle 时容易犯的错误。
看到别人:
Public Score
0.95
0.97
0.99
就开始:
找最高分 Notebook
↓
复制代码
↓
改几个参数
↓
提交
↓
分数提高
↓
继续复制
最后可能得到一个很高的分数,但实际上:
你并没有真正学会机器学习。
对于你现在的学习阶段,我反而建议:
先把一个 Kaggle 项目彻底吃透。
比如 Titanic。
4. 第一站:Titanic
Kaggle 官方自己也把 Titanic 称为最适合新手的比赛之一,并提供了大量教程和 Notebook。(Kaggle)
它的问题非常简单:
根据乘客的信息,预测这个人是否能够生还。
数据大概长这样:
PassengerId
Survived
Pclass
Name
Sex
Age
SibSp
Parch
Ticket
Fare
Cabin
Embarked
例如:
Sex = female
Age = 25
Pclass = 1
Fare = 100
模型输出:
Survived = 1
也就是:
输入特征 X
↓
机器学习模型
↓
预测 y
这就是最基本的监督学习。
5. 第一次做 Titanic,不要追求高分
你第一次应该完成的是下面这条最小流水线:
读取 train.csv
↓
观察数据
↓
选择几个特征
↓
处理缺失值
↓
训练模型
↓
验证模型
↓
预测 test.csv
↓
生成 submission.csv
↓
提交
例如最开始甚至只使用:
Sex
Age
Pclass
然后使用:
Logistic Regression
或者:
Decision Tree
你真正需要搞明白的是:
一个机器学习问题究竟是怎样从 CSV 文件变成模型预测的?
而不是一开始追求:
0.80 → 0.85 → 0.90
6. Kaggle Notebook 是非常重要的东西
Kaggle 最大的优势之一,是你不一定需要在自己的电脑配置 Python 环境。
你可以直接创建 Notebook,在云端运行 Python。
基本就是:
Kaggle
↓
Code / Notebook
↓
Python
↓
Pandas
↓
NumPy
↓
scikit-learn
↓
模型
这对新手特别方便。
而且你可以直接把比赛数据挂载到 Notebook 中。
例如:
import pandas as pd
train = pd.read_csv("/kaggle/input/.../train.csv")
train.head()
然后:
train.info()
再:
train.describe()
于是你开始真正“观察数据”。
7. 第二个非常重要的东西:别人写的 Notebook
Kaggle 有一个非常适合学习的机制:
你可以直接查看其他人公开的 Notebook,然后复制成自己的版本进行实验。
Kaggle 官方的 Learn Guides 也明确建议:看到好的教程 Notebook 后,最好创建自己的副本,然后自己运行、修改代码、做实验,而不是仅仅阅读。(Kaggle)
这实际上非常接近你学习编程时的:
看代码
↓
运行
↓
修改
↓
观察结果
↓
自己重写
而不是:
看代码
↓
“嗯,我懂了”
后者往往是假懂。
8. 我建议你采用“三遍学习法”
比如做 Titanic。
第一遍:跑通
目标:
我知道 Kaggle 项目是怎么跑起来的。
直接找一个质量比较好的 Titanic Tutorial。
理解:
读取数据
↓
预处理
↓
模型
↓
fit()
↓
predict()
↓
submission
不要纠结每一行。
第二遍:自己重写
关掉别人的 Notebook。
自己写:
import pandas as pd
然后一步一步重新完成:
读取
↓
EDA
↓
特征
↓
训练
↓
验证
↓
预测
遇到不会的再回去看。
这一遍非常重要。
第三遍:开始做实验
例如:
实验 1:
Sex
实验 2:
Sex + Age
实验 3:
Sex + Age + Pclass
实验 4:
Sex + Age + Pclass + Fare
实验 5:
Decision Tree
实验 6:
Random Forest
实验 7:
XGBoost
然后记录:
| 实验 | 特征 | 模型 | 验证分数 |
|---|---|---|---|
| 1 | Sex | Logistic Regression | 0.xx |
| 2 | Sex + Age | Logistic Regression | 0.xx |
| 3 | Sex + Age + Pclass | Logistic Regression | 0.xx |
| 4 | 更多特征 | Random Forest | 0.xx |
这时候你就开始真正进入:
机器学习实验思维。
9. 然后进入 Kaggle Learn
我非常建议你同时做 Kaggle 官方课程。
学习顺序可以是:
Python
↓
Pandas
↓
Intro to Machine Learning
↓
Intermediate Machine Learning
↓
Feature Engineering
↓
Data Visualization
其中最关键的是:
Intro to Machine Learning
学习:
什么是机器学习
↓
训练数据
↓
特征
↓
目标变量
↓
模型
↓
预测
↓
模型验证
然后:
Intermediate Machine Learning
开始真正接触:
Missing Values
Categorical Variables
Pipelines
Cross Validation
XGBoost
Data Leakage
这些是实际机器学习项目里非常重要的东西。Kaggle 当前的 Intermediate ML 课程正是围绕这些主题设计的。(Kaggle)
10. 第二个项目:House Prices
完成 Titanic 后,我建议马上做:
这个项目和 Titanic 有一个非常重要的区别:
Titanic
输入:
人的各种特征
输出:
0 / 1
属于:
分类 Classification
House Prices
输入:
房屋面积
房间数量
地段
年份
车库
……
↓
模型
↓
房价
输出是一个连续数值。
属于:
回归 Regression
这时候你就把机器学习最基础的两大任务串起来了:
监督学习
│
├── 分类
│ └── Titanic
│
└── 回归
└── House Prices
而 House Prices 本身也是 Kaggle 的 Getting Started 项目,官方说明它主要用于练习特征工程、随机森林和梯度提升等技术。(Kaggle)
11. 然后再进入真正的机器学习
你的路线可以逐渐变成:
机器学习
│
┌─────────┴─────────┐
↓ ↓
分类 回归
│ │
Titanic House Prices
│ │
└─────────┬─────────┘
↓
Feature Engineering
↓
Cross Validation
↓
XGBoost
↓
Kaggle Playground
↓
更复杂的比赛
到这里,你就已经不是“学 Python”了,而是在真正学习:
机器学习工程流程。
12. Kaggle 真正值得学习的其实是这五种能力
我建议你以后看任何 Kaggle 项目,都不要只看“模型”。
真正应该观察:
① EDA
Exploratory Data Analysis
也就是:
数据到底长什么样?
例如:
df.shape
df.head()
df.info()
df.describe()
再画:
直方图
散点图
箱线图
相关性矩阵
② Data Cleaning
例如:
缺失值
异常值
重复数据
错误类型
③ Feature Engineering
这是 Kaggle 非常重要的一块。
例如:
原始数据:
面积 = 120
房间 = 3
↓
构造:
每间房面积 = 120 / 3
也就是:
原始特征
↓
变换
↓
新特征
↓
模型
这和你之前学习的“特征”概念会真正联系起来。
④ Model
例如:
Linear Regression
Logistic Regression
Decision Tree
Random Forest
Gradient Boosting
XGBoost
LightGBM
CatBoost
Neural Network
你会逐渐发现:
模型本身只是机器学习流水线的一部分。
⑤ Validation
这个非常重要。
比如:
训练集
↓
模型
↓
验证集
↓
评价指标
而不是:
训练集
↓
模型
↓
训练集准确率 99%
↓
“我的模型好厉害”
这涉及你之后一定会学习的:
过拟合、泛化、交叉验证、数据泄漏。
13. 不要把 Kaggle 分数当成学习目标
可以把 Kaggle 分数看成:
实验反馈仪器
而不是考试成绩。
例如你:
Random Forest
score = 0.81
然后改:
Feature Engineering
score = 0.83
这说明:
这个实验可能有帮助。
再改:
XGBoost
score = 0.85
说明:
在当前实验条件下,这个模型表现更好。
于是 Kaggle 就变成了一个:
机器学习实验反馈系统。
这比单纯看书非常有价值。
14. 对你来说,我反而不建议一开始深入深度学习
你现在的学习路线是:
数学基础 → AI算法 → 工程实现 → AI辅助开发
所以我建议不要一上来:
Kaggle
↓
CNN
↓
Transformer
↓
LLM
而是先把传统机器学习真正走一遍:
Python
↓
NumPy
↓
Pandas
↓
数据分析
↓
线性回归
↓
逻辑回归
↓
决策树
↓
随机森林
↓
梯度提升
↓
XGBoost
↓
特征工程
↓
交叉验证
↓
过拟合
↓
数据泄漏
然后再:
神经网络
↓
反向传播
↓
PyTorch
↓
CNN
↓
Attention
↓
Transformer
这样你之前正在学习的梯度、方向导数、矩阵、向量、点积、概率,都会有地方落地。
15. 给你一条具体的 Kaggle 新手路线
如果让我给你设计,我会这样走:
第 0 阶段
熟悉 Kaggle
│
├── 注册
├── Learn
├── Notebook
├── Dataset
├── Competition
└── Submission
↓
第 1 阶段
Python + Pandas
│
├── Python
└── Pandas
↓
第 2 阶段
机器学习基础
│
└── Intro to Machine Learning
↓
第 3 阶段
Titanic
│
├── EDA
├── 特征
├── Logistic Regression
├── Decision Tree
├── Random Forest
└── Submission
↓
第 4 阶段
Intermediate ML
│
├── Missing Values
├── Categorical Variables
├── Pipeline
├── Cross Validation
├── XGBoost
└── Data Leakage
↓
第 5 阶段
House Prices
│
├── Regression
├── Feature Engineering
├── Random Forest
└── Gradient Boosting
↓
第 6 阶段
自己选择 Dataset
│
└── 完成一个独立项目
↓
第 7 阶段
Playground Competition
↓
第 8 阶段
Deep Learning
Kaggle 当前的比赛页面也明确把 Getting Started 和 Playground 分开:前者适合学习机器学习基础,后者则是在此基础上进一步练习。(Kaggle)
16. 最重要的一点:把 Kaggle 和你的数学学习连接起来
我尤其建议你不要把 Kaggle 和你现在的数学学习分成两个完全独立的东西。
例如你现在学习:
方向导数
↓
梯度
↓
梯度下降
↓
最小化损失函数
那么在 Kaggle 中就去观察:
model.fit(X, y)
背后到底发生了什么。
再比如你学习:
向量
↓
点积
↓
余弦相似度
以后学习:
Linear Regression
Logistic Regression
Neural Network
Attention
都会再次遇到:
向量
+
矩阵
+
点积
+
函数
+
导数
+
概率
于是你的学习路线就不是:
数学 ←→ Kaggle ←→ Python ←→ AI
而是逐渐融合成:
数学
↓
算法
↓
Python实现
↓
Kaggle实验
↓
观察真实数据
↓
发现问题
↓
回到数学
↓
进一步理解算法
这才是我认为 Kaggle 对你最大的价值。
你现在就可以这样开始
先不要同时开十几个比赛。第一目标就是:Kaggle → Learn → Python/Pandas → Intro to Machine Learning → Titanic → 完成第一次 submission。 Kaggle 官方也把 Titanic 作为新手的起点,并提供了相应教程。(Kaggle)
如果你愿意,我下一步可以直接按照你的“数学基础 → AI算法 → 工程实现”路线,给你设计一套 Kaggle 30 天机器学习实战路线,具体到每天学什么、做哪个 Kaggle 项目、对应哪部分数学,以及每个项目应该自己写哪些代码。

浙公网安备 33010602011771号