Skip to content

Latest commit

 

History

History
371 lines (277 loc) · 10.6 KB

File metadata and controls

371 lines (277 loc) · 10.6 KB

阶段二:机器学习基础

预计时长:6-8周
目标:掌握传统机器学习算法原理,具备模型训练和评估能力


2.1 机器学习概述(0.5周)

核心概念

概念 说明
监督学习 有标签数据,预测目标变量(分类/回归)
无监督学习 无标签数据,发现数据结构(聚类/降维)
半监督学习 少量标签+大量无标签数据
强化学习 智能体与环境交互,最大化累积奖励

机器学习流程

数据收集 → 数据预处理 → 特征工程 → 模型选择 → 模型训练 → 模型评估 → 模型部署
    │           │            │           │           │           │
    ├── 采集    ├── 清洗      ├── 提取    ├── 算法    ├── 拟合    ├── 指标
    ├── 标注    ├── 缺失值    ├── 选择    ├── 超参    ├── 调参    ├── 验证
    └── 存储    └── 标准化    └── 构造    └── 集成    └── 交叉    └── 测试

2.2 监督学习 - 回归(1周)

2.2.1 线性回归

核心知识点

主题 内容 重要程度
模型形式 y = wx + b ⭐⭐⭐⭐⭐
损失函数 均方误差(MSE) ⭐⭐⭐⭐⭐
求解方法 正规方程、梯度下降 ⭐⭐⭐⭐⭐
正则化 Ridge(L2)、Lasso(L1)、ElasticNet ⭐⭐⭐⭐
多项式回归 特征多项式扩展 ⭐⭐⭐

数学推导要点

损失函数: L(w) = (1/2n) * Σ(y_i - wx_i)²

正规方程解: w = (X^T X)^(-1) X^T y

梯度下降: w := w - α * ∂L/∂w

学习目标

  • 理解线性回归的假设和原理
  • 推导正规方程解
  • 理解正则化防止过拟合的原理
  • 用sklearn和手写两种方式实现

练习任务

  1. 手写实现线性回归(梯度下降)
  2. 使用sklearn完成房价预测
  3. 比较Ridge和Lasso的效果

2.2.2 逻辑回归(虽然名字是回归,但用于分类)

核心知识点

主题 内容 重要程度
Sigmoid函数 σ(z) = 1/(1+e^(-z)) ⭐⭐⭐⭐⭐
概率输出 P(y=1 x) = σ(wx+b)
损失函数 交叉熵损失 ⭐⭐⭐⭐⭐
决策边界 线性决策边界 ⭐⭐⭐⭐
多分类扩展 Softmax回归 ⭐⭐⭐⭐⭐

数学推导要点

二分类交叉熵损失:
L = -1/n * Σ[y_i * log(p_i) + (1-y_i) * log(1-p_i)]

Softmax (多分类):
P(y=k|x) = exp(w_k·x) / Σ_j exp(w_j·x)

学习目标

  • 理解逻辑回归与线性回归的区别
  • 推导交叉熵损失函数
  • 理解Softmax多分类
  • 分析决策边界

练习任务

  1. 手写实现二分类逻辑回归
  2. 实现Softmax多分类
  3. 在MNIST数据集上测试

2.3 监督学习 - 树模型(2周)

2.3.1 决策树

核心知识点

主题 内容 重要程度
信息增益 基于熵的特征选择(ID3) ⭐⭐⭐⭐
信息增益率 改进信息增益(C4.5) ⭐⭐⭐
基尼系数 CART树的分裂准则 ⭐⭐⭐⭐⭐
剪枝 预剪枝、后剪枝 ⭐⭐⭐⭐
回归树 基于MSE的分裂 ⭐⭐⭐⭐

学习目标

  • 理解决策树的构建过程
  • 计算信息增益和基尼系数
  • 理解过拟合和剪枝策略
  • 可视化决策树

2.3.2 集成学习 - Bagging

核心知识点

主题 内容 重要程度
Bagging原理 Bootstrap + Aggregating ⭐⭐⭐⭐⭐
随机森林 特征随机+样本随机 ⭐⭐⭐⭐⭐
特征重要性 基于不纯度或排列 ⭐⭐⭐⭐
OOB评估 袋外样本评估 ⭐⭐⭐

学习目标

  • 理解Bagging降低方差的原理
  • 掌握随机森林的使用
  • 解读特征重要性

2.3.3 集成学习 - Boosting

核心知识点

主题 内容 重要程度
AdaBoost 样本权重调整 ⭐⭐⭐
GBDT 梯度提升决策树 ⭐⭐⭐⭐⭐
XGBoost 正则化+并行优化 ⭐⭐⭐⭐⭐
LightGBM 直方图+leaf-wise ⭐⭐⭐⭐⭐
CatBoost 类别特征处理 ⭐⭐⭐⭐

GBDT核心思想

F_0(x) = 初始预测(如均值)
F_m(x) = F_{m-1}(x) + η * h_m(x)

其中 h_m(x) 拟合当前残差(负梯度)

学习目标

  • 理解Boosting与Bagging的区别
  • 理解GBDT的残差拟合思想
  • 掌握XGBoost/LightGBM的使用和调参
  • 了解各种Boosting方法的差异

练习任务

  1. 手写实现简单决策树
  2. 使用随机森林完成分类任务
  3. 使用XGBoost/LightGBM参加Kaggle竞赛
  4. 调参优化:网格搜索、贝叶斯优化

2.4 监督学习 - 其他算法(1周)

2.4.1 支持向量机(SVM)

核心知识点

主题 内容 重要程度
最大间隔 几何间隔最大化 ⭐⭐⭐⭐
软间隔 允许少量错误分类 ⭐⭐⭐⭐
核技巧 RBF、多项式核 ⭐⭐⭐⭐
SMO算法 对偶问题求解 ⭐⭐⭐

学习目标

  • 理解最大间隔分类器的思想
  • 了解核技巧处理非线性问题
  • 使用sklearn的SVM

2.4.2 朴素贝叶斯

核心知识点

主题 内容 重要程度
贝叶斯定理 P(A B) = P(B
条件独立假设 特征之间相互独立 ⭐⭐⭐⭐⭐
高斯朴素贝叶斯 连续特征 ⭐⭐⭐⭐
多项式朴素贝叶斯 文本分类 ⭐⭐⭐⭐

学习目标

  • 理解贝叶斯分类的原理
  • 理解"朴素"假设的含义和限制
  • 在文本分类任务中应用

2.4.3 K近邻(KNN)

核心知识点

主题 内容 重要程度
距离度量 欧氏距离、曼哈顿距离 ⭐⭐⭐⭐
K值选择 交叉验证 ⭐⭐⭐⭐
KD树 加速搜索 ⭐⭐⭐

2.5 无监督学习(1-2周)

2.5.1 聚类算法

核心知识点

算法 原理 优缺点 重要程度
K-Means 最小化簇内距离 简单高效,需指定K ⭐⭐⭐⭐⭐
K-Means++ 智能初始化 改进收敛 ⭐⭐⭐⭐
DBSCAN 密度聚类 自动发现簇数,处理噪声 ⭐⭐⭐⭐
层次聚类 自底向上/自顶向下 可视化好,计算慢 ⭐⭐⭐

K-Means算法步骤

1. 随机初始化K个质心
2. 将每个样本分配到最近的质心
3. 重新计算每个簇的质心
4. 重复2-3直到收敛

学习目标

  • 手写实现K-Means
  • 理解不同聚类算法的适用场景
  • 使用肘部法则选择K值

2.5.2 降维技术

核心知识点

算法 原理 应用场景 重要程度
PCA 最大方差投影 线性降维、去相关 ⭐⭐⭐⭐⭐
SVD 矩阵分解 推荐系统、压缩 ⭐⭐⭐⭐
t-SNE 保持局部结构 高维可视化 ⭐⭐⭐⭐
UMAP 保持全局+局部 可视化、降维 ⭐⭐⭐⭐

PCA核心步骤

1. 数据中心化
2. 计算协方差矩阵
3. 特征值分解
4. 选择Top-K特征向量
5. 投影到新空间

学习目标

  • 手写实现PCA
  • 理解t-SNE用于可视化
  • 在高维数据上实践降维

2.6 模型评估与优化(2周)

2.6.1 评估指标

分类指标

指标 公式 适用场景
准确率(Accuracy) (TP+TN)/(TP+TN+FP+FN) 类别平衡
精确率(Precision) TP/(TP+FP) 关注假阳性
召回率(Recall) TP/(TP+FN) 关注假阴性
F1-Score 2PR/(P+R) 精确率召回率平衡
AUC-ROC ROC曲线下面积 阈值无关评估

回归指标

指标 公式 说明
MSE mean((y-ŷ)²) 均方误差
RMSE sqrt(MSE) 根均方误差
MAE mean( y-ŷ
1 - SS_res/SS_tot 决定系数

2.6.2 交叉验证

方法 说明 重要程度
Hold-out 简单划分训练/测试集 ⭐⭐⭐
K-Fold K折交叉验证 ⭐⭐⭐⭐⭐
Stratified K-Fold 分层K折(保持类别比例) ⭐⭐⭐⭐⭐
Leave-One-Out 留一法 ⭐⭐
Time Series Split 时间序列专用 ⭐⭐⭐⭐

2.6.3 超参数调优

方法 说明 重要程度
网格搜索 穷举所有组合 ⭐⭐⭐⭐
随机搜索 随机采样 ⭐⭐⭐⭐
贝叶斯优化 基于历史结果智能搜索 ⭐⭐⭐⭐⭐
Optuna 自动化调参框架 ⭐⭐⭐⭐⭐

2.6.4 过拟合与欠拟合

欠拟合(高偏差)          合适             过拟合(高方差)
    │                     │                    │
    │  训练误差高          │ 训练误差低        │ 训练误差很低
    │  验证误差高          │ 验证误差低        │ 验证误差高
    │                     │                    │
    ▼                     ▼                    ▼
  增加模型复杂度       模型合适          减少模型复杂度
  增加特征                               增加数据/正则化

2.6.5 特征工程

技术 说明 重要程度
缺失值处理 删除、填充(均值/众数/模型预测) ⭐⭐⭐⭐⭐
特征缩放 标准化、归一化 ⭐⭐⭐⭐⭐
类别编码 One-hot、Label Encoding、Target Encoding ⭐⭐⭐⭐⭐
特征选择 过滤法、包装法、嵌入法 ⭐⭐⭐⭐
特征构造 多项式特征、交叉特征 ⭐⭐⭐⭐

学习目标

  • 熟练使用各种评估指标
  • 掌握交叉验证方法
  • 使用网格搜索和Optuna调参
  • 识别和处理过拟合/欠拟合
  • 完成完整的特征工程流程

阶段二 Checklist

完成以下任务后,进入阶段三:

  • 线性模型

    • 手写实现线性回归和逻辑回归
    • 理解正则化原理
  • 树模型

    • 理解决策树分裂准则
    • 掌握随机森林和XGBoost
    • 完成一个Kaggle竞赛(表格类)
  • 无监督学习

    • 手写实现K-Means
    • 使用PCA和t-SNE降维可视化
  • 模型评估

    • 熟练使用各种评估指标
    • 掌握交叉验证和超参数调优
    • 完成一个完整的ML Pipeline

下一步

完成本阶段后,进入阶段三:深度学习基础