机器学习复习收官Day12


type: note

title: 机器学习阶段收官(C1--C3 总结)

date: 2026-09-03

description: C1--C3 学完 + 11 个编程作业完成,机器学习阶段收官。每算法含适用场景 + 公式,末尾速查大表格汇总(无代码),含通用关键点与 11 作业成果。


2026-09-03 · 机器学习阶段收官

一、模型地图(输入 → 输出 → 目标函数)

| 模型 | 输入 | 输出 | 目标函数 |

| -------- | ------------- | ------------- | ------------------- |

| 线性回归 | 特征 | 一个**数** | MSE |

| 逻辑回归 | 特征 | 一个**概率** | 交叉熵 |

| 神经网络 | 特征 | 多层预测 | MSE / 交叉熵 |

| 决策树 | 特征 | 叶子类别 | 信息增益 |

| K-means | 特征 | 簇 | 簇内距离最小 |

| 异常检测 | 特征 | 概率 p(x) | 低于阈值判异常 |

| 协同过滤 | 用户 × 物品 | 评分 | 预测误差 |

| 内容过滤 | 用户向量·物品 | 评分 | 点积误差 |

| DQN | 状态 | 每动作的 Q 值 | Bellman 误差(MSE) |


二、每个算法:适用场景 + 公式(展开)

线性回归(C1)· 适用:预测一个**具体数**(房价、温度,关系大致线性)

f_{w,b}(\\vec{x}) = \\vec{w}\\cdot\\vec{x} + b

J(w,b) = \\frac{1}{2m}\\sum_{i=1}\^{m}\\big(f_{w,b}(\\vec{x}\^{(i)}) - y\^{(i)}\\big)\^2

w_j := w_j - \\alpha\\frac{\\partial J}{\\partial w_j}

b := b - \\alpha\\frac{\\partial J}{\\partial b}

```python

线性回归梯度下降(误差反向修正 w、b,注意没有 sigmoid)

for _ in range(num_iters):

f = np.dot(X, w) + b # 预测

dw = (1/m) * np.dot(X.T, f - y)

db = (1/m) * np.sum(f - y)

w -= alpha * dw

b -= alpha * db

```

逻辑回归(C1)· 适用:判别**是/否**,输出**概率**(垃圾邮件、猫)

f_{w,b}(\\vec{x}) = \\frac{1}{1+e\^{-(\\vec{w}\\cdot\\vec{x}+b)}}

L\\big(f_{w,b}(\\vec{x}),y\\big) = -y\\log f_{w,b}(\\vec{x}) - (1-y)\\log\\big(1-f_{w,b}(\\vec{x})\\big)

\\vec{w}\\cdot\\vec{x} + b = 0

神经网络(C2)· 适用:**复杂非线性**(图像、特征多,线性搞不定)

z\^{\[l\]} = W\^{\[l\]}a\^{\[l-1\]} + b\^{\[l\]}

a\^{\[l\]} = g\\big(z\^{\[l\]}\\big)

> g:隐藏层常用 relu;输出层按任务用 sigmoid(二分类)/ softmax(多类)/ linear(回归)。

```python

前向传播(TensorFlow 建网络)

model = Sequential([

Input(shape=(8,)),

Dense(64, activation="relu"),

Dense(64, activation="relu"),

Dense(4, activation="linear"),

])

model.compile(optimizer=Adam(learning_rate=1e-3), loss="mse")

```

决策树 / 树集成(C2)· 适用:**要可解释、特征偏离散**(风控、医疗)

H = -p_1\\log_2 p_1 - (1-p_1)\\log_2(1-p_1)

Gain = H(\\text{parent}) - \\big(w\^{\\text{left}}H\^{\\text{left}} + w\^{\\text{right}}H\^{\\text{right}}\\big)

> 单树易过拟合 → 随机森林(bagging,多树投票)/ XGBoost(boosting,接龙补错)。

K-means(C3)· 适用:**无标签,想把数据分堆**(客户分层、图压缩)

簇中心 = 簇内点的平均;迭代「分配 → 更新中心」。

异常检测(C3)· 适用:**找"不正常"的点**(欺诈、故障、监控)

p(x) = \\prod_{j=1}\^{n}\\frac{1}{\\sqrt{2\\pi\\sigma_j\^2}}\\,e\^{-\\frac{(x_j-\\mu_j)\^2}{2\\sigma_j\^2}}

p(x) \< \\epsilon \\Rightarrow \\text{异常}

协同过滤(C3)· 适用:**只有评分、没物品特征**,靠相似用户/物

用户 × 物品评分矩阵预测。

内容过滤(C3)· 适用:**有用户/物品特征**,做匹配

\\hat{y} = u \\cdot v

DQN(C3)· 适用:**有动作 + 奖励的试错环境**(游戏、机器人、控制)

y = r + \\gamma\\max_{a'}Q(s',a')\\,(1-\\text{done})

```python

DQN 损失:Bellman 目标 vs 预测

max_qsa = tf.reduce_max(target_q_network(next_states), axis=-1)

y_targets = rewards + gamma * max_qsa * (1 - done_vals)

loss = MSE(y_targets, q_values)

```


三、通用关键点(几乎所有模型共用)

归一化 / 特征缩放

x_j = \\frac{x_j-\\mu_j}{\\sigma_j}

各特征量级差太多 → 梯度下降走不稳;拉到同一量级就走匀。

> ⚠️ Adam(优化器,自动调学习率)与归一化是两回事,不能互相代替。

正则化(L2,防过拟合)

J_{reg} = J + \\frac{\\lambda}{2m}\\sum_{j}w_j\^2

λ 越大 → 越压制大权重 → 越防过拟合。

Softmax(多分类归一化为占比)

p_i = \\frac{e\^{z_i}}{\\sum_{j=1}\^{K}e\^{z_j}}

\\sum_i p_i = 1

二分类用 sigmoid,多分类用 softmax。

偏差方差权衡(共同核心)

> **高偏差 = 没学会**(训练差、验证差)→ 加复杂度。最不努力之人。

> **高方差 = 背题了**(训练好、验证差)→ 加数据 / 正则化 / 减小模型。最假努力之人。

选型判断

回归算数 / 分类概率 / 复杂非线性用网络 / 要可解释用树 / 无标签用聚类 / 找异常用检测 / 推荐打分 / 控制用强化。**数据少别硬上大网络;能用简单就别复杂,先诊断再改。**


四、复习周 11 个编程作业成果

| 天 | 作业 | 复习对应 | 状态 |

| --- | ----------------- | ---------------- | :--: |

| D1 | C1 线性回归 | 梯度下降、向量化 | ✅ |

| D2 | C1 逻辑回归 | 逻辑回归、正则化 | ✅ |

| D3 | C2 咖啡烘焙 | 神经网络、前向 | ✅ |

| D4 | C2 多分类 Softmax | 激活、多分类 | ✅ |

| D5 | C2 偏差方差诊断 | 偏差方差、正则 | ✅ |

| D6 | C2 决策树 | 决策树、树集成 | ✅ |

| D7 | C3 K-means | 聚类 | ✅ |

| D8 | C3 异常检测 | 异常检测 | ✅ |

| D9 | C3 协同过滤 | 协同过滤 | ✅ |

| D10 | C3 推荐系统 NN | 内容过滤 | ✅ |

| D11 | C3 强化学习 | RL、月球着陆器 | ✅ |


五、速查大表格(无代码)

| 算法 | 适用场景 | 核心公式 |

| ----------- | ------------------ | ---------------------------------------------------------------------------------------------------------------------------------- |

| 线性回归 | 预测一个数 | f_{w,b}(\\vec{x})=\\vec{w}\\cdot\\vec{x}+b<br>J=\\frac{1}{2m}\\sum_{i}\\big(f_{w,b}(x\^{(i)})-y\^{(i)}\\big)\^2 |

| 逻辑回归 | 判别是/否(概率) | f_{w,b}(\\vec{x})=\\frac{1}{1+e\^{-(\\vec{w}\\cdot\\vec{x}+b)}}<br>L=-\\big\[y\\log f_{w,b}(\\vec{x})+(1-y)\\log(1-f_{w,b}(\\vec{x}))\\big\] |

| 神经网络 | 复杂非线性 | z\^{\[l\]}=W\^{\[l\]}a\^{\[l-1\]}+b\^{\[l\]}<br>a\^{\[l\]}=g(z\^{\[l\]}) |

| 决策树/集成 | 要可解释、特征离散 | H=-p_1\\log_2p_1-(1-p_1)\\log_2(1-p_1)<br>Gain=H(p)-\\sum_j w\^{j}H\^{j} |

| K-means | 无标签分堆 | 簇中心 = 簇内平均 |

| 异常检测 | 找不正常点 | p(x)=\\prod_{j=1}\^{n}\\frac{1}{\\sqrt{2\\pi\\sigma_j\^2}}e\^{-\\frac{(x_j-\\mu_j)\^2}{2\\sigma_j\^2}}<br>p(x)\<\\epsilon ⇒ 异常 |

| 协同过滤 | 只有评分、看相似 | 用户×物品矩阵 |

| 内容过滤 | 有画像、做匹配 | \\hat{y}=u\\cdot v |

| DQN | 动作+奖励试错 | y=r+\\gamma\\max_{a'}Q(s',a')(1-\\text{done}) |

相关推荐
xzal121 小时前
Python之filter()和map()的区别(仅供学习参考)
笔记·python
DO_Community1 小时前
Baseten vs DigitalOcean、RunPod:7 个 AI 模型部署平台横向对比
人工智能·llm·aigc·agent·ai编程
AI人工智能集结号1 小时前
中英文实体一致性:官网、媒体和产品页面中的跨语言关系越清楚,越容易正确归一
人工智能·媒体
盼小辉丶1 小时前
PyTorch强化学习实战——基于图像-文本融合的自动化网页导航
人工智能·pytorch·深度学习·自动化·强化学习
Mr数据杨1 小时前
乌克兰新闻来源分类实战 从文本分类到媒体识别建模
人工智能·数据分析·kaggle竞赛
Mid_search1 小时前
Dueling Network
人工智能·深度学习·强化学习·dueling network
大唐荣华1 小时前
模型训练显卡选型深度指南:价格、数量、性能与自建租赁抉择
人工智能·机器人·模型训练·具身智能·avida·navida
随遇而安zx1 小时前
【地基篇】---JVM 类加载 源码解析(基于 Java 8)
java·jvm·python