AI 学院 · 90 天课程 · 机器学习基础

机器学习基础

传统机器学习全流程:回归、树、SVM、聚类、评估与调优。共 15 天,每天完整收录:学习目标、核心内容、关键概念、实际案例、思考题等。

范围 Day 26–40天数 15内容 完整课程
本模块:机器学习基础(Day 26–40)。每天一个主题,完整讲解 + 案例 + 思考题,按顺序学习。
DAY 26 / 90

机器学习全流程

学习目标

掌握从数据到部署的完整机器学习流程。

---

昨日回顾

Day 25:AI对齐

昨天我们讨论了对齐问题:

  • 规范指定、鲁棒性、可扩展监督
  • Constitutional AI、Debate 等前沿方向

今天进入模块3,系统学习机器学习的工程实践。

---

核心内容

一、ML 全流程概览

1. 问题定义 → 2. 数据收集 → 3. 数据探索(EDA)
      ↓
4. 特征工程 → 5. 模型选择 → 6. 训练
      ↓
7. 评估 → 8. 调优 → 9. 部署 → 10. 监控

二、每个阶段的关键产出

阶段关键产出
问题定义明确业务目标和评估指标
数据收集高质量、有代表性的数据集
EDA数据分布、异常值、相关性分析
特征工程有效的特征表示
模型训练收敛且不过拟合的模型
评估在测试集上的性能报告
部署可服务的模型和监控方案

三、常见陷阱

  • 数据泄露:测试信息混入训练
  • 目标泄露:用了未来的信息预测过去
  • 采样偏差:训练数据不代表真实分布
  • 过度调优:在验证集上反复调参导致过拟合

---

📌 课程进度:Day 26 / 90 | 模块3:机器学习基础

🎓 明天预告Day 27 数据预处理 —— 数据质量决定模型上限!

---

DAY 27 / 90

数据预处理

学习目标

掌握数据清洗、缺失值处理、特征缩放等预处理技术。

---

核心内容

一、为什么预处理很重要?

💡 名言:"Garbage in, garbage out"(垃圾进,垃圾出)

数据质量决定模型上限,算法只是逼近这个上限。

二、常见预处理操作

问题处理方法
缺失值删除、填充(均值/中位数/众数)、插值
异常值删除、截断、对数变换
重复数据去重
不一致格式标准化(日期格式、编码等)
类别不平衡过采样(SMOTE)、欠采样、权重调整

三、特征缩放

# 标准化(Standardization)
x_scaled = (x - mean) / std

# 归一化(Normalization)
x_scaled = (x - min) / (max - min)

为什么需要缩放?

  • 梯度下降收敛更快
  • 防止大数值特征主导
  • 距离计算更合理

---

📌 课程进度:Day 27 / 90

🎓 明天预告Day 28 线性回归 —— 最简单的预测模型!

---

DAY 28 / 90

线性回归

学习目标

理解线性回归的原理、损失函数和梯度下降优化。

---

核心内容

一、模型形式

y = w₁x₁ + w₂x₂ + ... + wₙxₙ + b

💡 直观理解:试图找到一条直线(或超平面),让数据点尽可能靠近这条线。

二、损失函数:均方误差(MSE)

MSE = (1/n) Σ(yᵢ - ŷᵢ)²

目标:找到 w 和 b,使得 MSE 最小。

三、梯度下降

# 参数更新
w = w - learning_rate * gradient

学习率的选择

  • 太大:震荡不收敛
  • 太小:收敛太慢
  • 合适:稳定收敛

---

📌 课程进度:Day 28 / 90

🎓 明天预告Day 29 逻辑回归 —— 解决分类问题!

---

DAY 29 / 90

逻辑回归

学习目标

理解逻辑回归如何将线性输出转换为概率。

---

核心内容

一、Sigmoid 函数

σ(z) = 1 / (1 + e^(-z))

将任意实数映射到 (0, 1) 区间,可解释为概率。

二、决策边界

如果 σ(w·x + b) > 0.5,预测为类别 1
如果 σ(w·x + b) ≤ 0.5,预测为类别 0

三、损失函数:交叉熵

L = -[y·log(ŷ) + (1-y)·log(1-ŷ)]

💡 为什么不用 MSE? 交叉熵对错误预测惩罚更大,梯度更明显。

---

📌 课程进度:Day 29 / 90

🎓 明天预告Day 30 损失函数 —— 模型优化的指南针!

---

DAY 30 / 90

损失函数

学习目标

掌握常见损失函数的特点和适用场景。

---

核心内容

一、损失函数的作用

损失函数衡量模型预测与真实值之间的差距。优化目标:最小化损失函数

二、常见损失函数

损失函数适用场景公式
MSE回归(y - ŷ)²
MAE回归(对异常值鲁棒)\y - ŷ\
交叉熵分类-Σ y·log(ŷ)
Hinge LossSVMmax(0, 1 - y·ŷ)

三、选择原则

  • 回归任务 → MSE/MAE
  • 分类任务 → 交叉熵
  • 需要鲁棒性 → MAE/Huber

---

📌 课程进度:Day 30 / 90

🎓 明天预告Day 31 梯度下降 —— 模型训练的发动机!

---

DAY 31 / 90

梯度下降

学习目标

深入理解梯度下降及其变种:SGD、Momentum、Adam。

---

核心内容

一、梯度下降核心思想

沿着损失函数下降最快的方向(负梯度)更新参数。

w = w - α · ∂L/∂w

二、三种梯度下降

类型更新方式特点
批量 GD用全部数据计算梯度稳定但慢
随机 GD(SGD)每次用一个样本快但噪声大
小批量 GD每次用一批样本平衡速度和稳定性

三、优化器进阶

优化器核心改进
Momentum积累速度,加速收敛
AdaGrad自适应学习率
RMSprop改进 AdaGrad 的衰减问题
AdamMomentum + RMSprop,最常用

💡 实践建议:除非有特殊需求,默认用 Adam。

---

📌 课程进度:Day 31 / 90

🎓 明天预告Day 32 过拟合与欠拟合 —— 模型的两大敌人!

---

DAY 32 / 90

过拟合与欠拟合

学习目标

理解偏差-方差权衡,掌握识别和解决过拟合/欠拟合的方法。

---

核心内容

一、核心概念

问题表现原因
欠拟合(Underfitting)训练集和测试集都差模型太简单
过拟合(Overfitting)训练集好,测试集差模型太复杂
刚刚好(Just Right)两者都好合适的复杂度

二、偏差 vs 方差

总误差 = 偏差² + 方差 + 不可约误差
  • 偏差(Bias):模型假设带来的系统性误差
  • 方差(Variance):对训练数据波动的敏感度

三、解决方案

问题解决方法
欠拟合增加模型复杂度、增加特征、减少正则化
过拟合增加数据、正则化、Dropout、早停

---

📌 课程进度:Day 32 / 90

🎓 明天预告Day 33 正则化 —— 防止模型"死记硬背"!

---

DAY 33 / 90

正则化

学习目标

掌握 L1/L2 正则化、Dropout 等防止过拟合的技术。

---

核心内容

一、L2 正则化(Ridge)

损失 = MSE + λ · Σw²

💡 效果:惩罚大的权重,让权重趋向于小值。模型更简单,泛化更好。

二、L1 正则化(Lasso)

损失 = MSE + λ · Σ\|w\|

💡 效果:产生稀疏权重,自动特征选择。

三、L1 vs L2

特性L1L2
惩罚方式绝对值平方
权重分布稀疏(很多0)均匀小值
用途特征选择防止过拟合

四、Dropout

训练时随机"关闭"一部分神经元,防止共适应。

# PyTorch
nn.Dropout(p=0.5)  # 50% 的神经元被关闭

💡 类比:就像让学生随机缺课,强迫每个学生都能独立完成任务。

---

📌 课程进度:Day 33 / 90

🎓 明天预告Day 34 决策树 —— 像人类一样做决策!

---

DAY 34 / 90

决策树

学习目标

理解决策树的构建原理、信息增益和剪枝策略。

---

核心内容

一、决策树的直觉

💡 类比:就像玩"20个问题"游戏——通过一系列"是/否"问题缩小范围。

示例:判断是否批准贷款 `` 收入 > 5000? ├─ 是 → 信用评分 > 700? │ ├─ 是 → 批准 │ └─ 否 → 人工审核 └─ 否 → 有抵押? ├─ 是 → 批准 └─ 否 → 拒绝 ``

二、信息增益

选择"最有区分度"的特征作为分裂点:

信息增益 = 父节点熵 - 加权子节点熵

熵衡量不确定性,信息增益越大,不确定性减少越多。

三、剪枝

  • 预剪枝:限制树的深度、叶子节点数
  • 后剪枝:先长完整树,再剪掉不重要的分支

---

📌 课程进度:Day 34 / 90

🎓 明天预告Day 35 集成学习 —— 三个臭皮匠,顶个诸葛亮!

---

DAY 35 / 90

集成学习

学习目标

理解 Bagging、Boosting、随机森林和 XGBoost 的原理。

---

核心内容

一、核心思想

💡 "三个臭皮匠,顶个诸葛亮"

通过组合多个弱学习器,获得更强的预测能力。

二、Bagging(并行)

1. 从训练集有放回抽样,生成多个子集
2. 每个子集训练一个模型
3. 预测时:分类投票,回归平均

代表:随机森林(Random Forest)

三、Boosting(串行)

1. 训练第一个模型
2. 增加前一个模型错分样本的权重
3. 训练下一个模型
4. 重复直到满足条件

代表:AdaBoost、XGBoost、LightGBM

四、Bagging vs Boosting

特性BaggingBoosting
训练方式并行串行
降低什么方差偏差
代表随机森林XGBoost
过拟合风险相对较高(需调参)

---

📌 课程进度:Day 35 / 90

🎓 明天预告Day 36 支持向量机(SVM) —— 最大间隔分类器!

---

DAY 36 / 90

支持向量机(SVM)

学习目标

理解 SVM 如何通过"最大化间隔"找到最优分类边界。

---

昨日回顾

Day 35:集成学习

昨天我们学了集成学习:

  • Bagging:并行训练,降低方差(随机森林)
  • Boosting:串行训练,降低偏差(XGBoost)
  • 核心思想:组合多个弱学习器

今天我们将转向另一个经典算法——SVM。

---

核心内容

一、SVM 的直觉理解

想象你是一个裁判,要在两群打架的人中间画一条分界线。

SVM 的想法:不仅要分开,还要让这条线离两边的人都越远越好。

这就是 SVM 的核心思想——最大间隔分类

二、支持向量

支持向量是距离分类边界最近的数据点。它们"支撑"着整个分类边界。

💡 关键:只有支持向量影响分类边界,其他数据点可以忽略。

三、核技巧(Kernel Trick)

当数据不是线性可分时,SVM 使用核函数将数据映射到高维空间。

核函数适用场景
线性核线性可分
多项式核多项式边界
RBF(高斯核)复杂非线性边界
Sigmoid 核神经网络类似

---

📌 课程进度:Day 36 / 90

🎓 明天预告Day 37 K近邻与聚类 —— 基于实例的学习!

---

DAY 37 / 90

K近邻与聚类

学习目标

理解 KNN 和 K-Means 的原理与应用。

---

核心内容

一、KNN(K-Nearest Neighbors)

核心思想:"物以类聚"——找 K 个最近的邻居,看它们属于哪一类。

# KNN 算法
1. 计算待预测点与所有训练点的距离
2. 找出距离最近的 K 个点
3. 投票决定类别(分类)或取平均(回归)

💡 特点:没有训练过程,预测时才计算。是"惰性学习"。

二、K-Means 聚类

核心思想:把数据分成 K 个组,每组内的点尽量靠近。

# K-Means 算法
1. 随机选择 K 个中心点
2. 每个点分配到最近的中心点
3. 重新计算每个组的中心
4. 重复 2-3 直到收敛

如何选择 K?

  • 肘部法则:画图找拐点
  • 轮廓系数:衡量聚类质量

---

📌 课程进度:Day 37 / 90

🎓 明天预告Day 38 降维 —— PCA 与 t-SNE!

---

DAY 38 / 90

降维

学习目标

理解 PCA 和 t-SNE 的原理,掌握数据可视化和特征压缩。

---

核心内容

一、为什么需要降维?

  • 可视化:高维数据无法直接画图
  • 去噪:去除不重要的维度
  • 效率:减少计算和存储
  • 避免维度灾难:高维空间数据稀疏

二、PCA(主成分分析)

核心思想:找到数据方差最大的方向,投影到这些方向上。

1. 数据标准化
2. 计算协方差矩阵
3. 特征值分解
4. 选择前 k 个最大特征值对应的特征向量
5. 数据投影到这些特征向量上

三、t-SNE

核心思想:在高维空间中相似的数据点,在低维空间中也应该靠近。

💡 用途:主要用于可视化,不用于特征工程(因为不保持全局结构)。

---

📌 课程进度:Day 38 / 90

🎓 明天预告Day 39 模型评估指标 —— 准确率够吗?

---

DAY 39 / 90

模型评估指标

学习目标

掌握分类和回归任务的评估指标,理解准确率陷阱。

---

核心内容

一、分类指标

指标公式适用场景
准确率(TP+TN)/总数类别平衡
精确率TP/(TP+FP)重视"不要错杀"
召回率TP/(TP+FN)重视"不要漏掉"
F12·精确率·召回率/(精确率+召回率)综合指标
AUC-ROCROC 曲线下面积排序能力

二、混淆矩阵

           预测正例    预测负例
实际正例     TP          FN
实际负例     FP          TN

三、准确率陷阱

问题:如果 99% 的数据都是负例,模型全部预测负例,准确率也是 99%!

解决:用 F1、AUC 等指标,或调整类别权重。

---

📌 课程进度:Day 39 / 90

🎓 明天预告Day 40 交叉验证与调优 —— 科学评估模型性能!

---

DAY 40 / 90

交叉验证与调优

学习目标

掌握 K 折交叉验证和超参数调优方法。

---

核心内容

一、交叉验证

问题:随机划分训练/测试集,结果可能不稳定。

K 折交叉验证: ```

  1. 将数据分成 K 份
  2. 每次用 K-1 份训练,1 份测试
  3. 重复 K 次,确保每份都做过测试
  4. 取 K 次结果的平均
← AI 世界观深度学习进阶 →