我的 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)

Kaggle Titanic 入门比赛

它的问题非常简单:

根据乘客的信息,预测这个人是否能够生还。

数据大概长这样:

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 后,我建议马上做:

Kaggle House Prices

这个项目和 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 StartedPlayground 分开:前者适合学习机器学习基础,后者则是在此基础上进一步练习。(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 项目、对应哪部分数学,以及每个项目应该自己写哪些代码。

posted @ 2026-09-12 21:32  立体风  阅读(16)  评论(0)    收藏  举报