1. 逻辑回归 (Logistic Regression)
本节深入探讨逻辑回归,这是一种名为“回归”的强大分类算法。它不预测数值,而是预测一个事件发生的概率(在0和1之间)。我们将探索它如何从线性回归演变而来,如何处理二分类和多分类问题,以及如何评估其表现。
核心思想
一种名为“回归”的 分类 算法,用于预测事件发生的概率(0到1之间)。
基本原理 (二分类)
1. 线性回归产出一个连续值:$z = w \cdot x + b$。
2. 逻辑回归将此 $z$ 值通过 Sigmoid 函数 $\sigma(z) = \frac{1}{1 + e^{-z}}$ “压扁”到 (0, 1) 区间,使其代表概率 $p$。
3. 决策边界为 $z=0$ (即 $p=0.5$) 的超平面。
可视化: Sigmoid 函数
此图显示了 Sigmoid 函数如何将任何输入值 $z$ 转换为 0 到 1 之间的概率 $p$。注意它如何在 $z=0$ 时穿过 $p=0.5$。
核心数学 (模型学习)
使用**二元交叉熵 (Binary Cross-Entropy)** 作为损失函数,衡量预测的“糟糕程度”。
$L = -[y \cdot \log(p) + (1-y) \cdot \log(1-p)]$
目标是预测正确时损失小,预测错误时损失极大。使用**梯度下降 (GD)** 寻找使总损失最小的 $w$ 和 $b$。
多元逻辑回归 (Multinomial LR)
策略 1: One-vs-Rest (OvR)
拆解成 K 个独立的二分类问题。缺点:概率相加不为1。
策略 2: Softmax 回归 (主流)
使用 Softmax 函数 $p_k = \frac{e^{z_k}}{\sum_{j} e^{z_j}}$ 进行归一化,确保所有概率相加为1。
模型评估
仅看**准确率 (Accuracy)** 在类别不平衡(如99%健康, 1%病人)时有误导性。
混淆矩阵 (Confusion Matrix) 提供了更清晰的视图,它将预测分为四类:
这引出了 **精确率 (Precision)** $\frac{TP}{TP + FP}$ 和 **召回率 (Recall)** $\frac{TP}{TP + FN}$。
优点
- 可解释性强 (权重 $w$ 系数直观)
- 速度快, 计算量小, 适合基线模型
缺点
- 只能处理线性可分 问题
- 模型相对简单, 易 欠拟合
适用场景
- 医疗诊断 (风险预测)
- 金融风控 (信用评分)
- 市场营销 (点击率CTR预测)
2. 决策树 (Decision Tree)
本节探讨决策树,这是一种高度直观的算法,它模仿人类的决策流程。通过提出一系列“是/否”问题,决策树以“分而治之”的策略将数据逐步划分。我们将重点关注它如何选择“最佳问题”以及如何避免“过拟合”。
核心思想
模仿人类决策流程,通过一系列“是/否”问题进行“分而治之”。
基本原理
从**根节点**开始,寻找“最佳问题”(特征)进行划分,使得划分后的分组**不纯度 (Impurity)** 最低。这个过程在**内部节点**重复进行,直到**叶子节点**(纯粹的分组)为止。
可视化: 基尼不纯度 (Gini Impurity)
此图显示了两类问题中,基尼不纯度 $Gini = 1 - (p^2 + (1-p)^2)$ 如何随类别 $p$ 的概率变化。不纯度在 $p=0.5$(50/50 混合)时达到最大值,在 $p=0$ 或 $p=1$(纯粹)时为零。
核心数学 (选择问题)
使用**基尼不纯度 (Gini Impurity)** 衡量“混乱”程度。$Gini = 1 - \sum_{i} (p_i)^2$
通过计算**信息增益** (划分前的不纯度 - 划分后的加权平均不纯度) 来选择最佳划分特征。
核心问题:过拟合 (Overfitting)
根本原因: 树的 “贪心”本质 和 无限生长能力。它会学习到数据中的所有**噪音**和**巧合**,像“死记硬背”的学生。
避免方法: 剪枝 (Pruning)。
预剪枝 (Pre-pruning)
提前停止树的生长。
- 限制最大深度 (max_depth)
- 限制叶节点最小样本数
后剪枝 (Post-pruning)
先让树完全生长,再剪掉“多余”的枝叶。
优缺点
优点
- 直观,易于解释 (白盒)
- 数据预处理要求低
缺点
- 极易过拟合
- 模型不稳定
3. 支持向量机 (SVM)
本节剖析支持向量机 (SVM),一种非常强大的分类器。SVM 的核心思想不是简单地找到一条线来划分数据,而是要找到那条“最宽的街道”(即最大间隔),这使其非常稳健。我们将探讨它的三个核心概念:最大间隔、支持向量和核技巧。
核心思想
寻找“最宽的街道”,即 最大间隔 (Maximum Margin),以实现最**稳健 (Robust)** 的分类。
核心概念 1: 最大间隔 (Margin)
超平面 (Hyperplane): 街道中线 $w \cdot x + b = 0$。
间隔边界 (Margins): 街道的两条边缘 $w \cdot x + b = 1$ 和 $w \cdot x + b = -1$。
间隔越大,模型对新数据的容错率越高。
可视化: 分类数据点
此散点图显示了两类数据点。SVM 的目标不是简单地在它们之间画一条线,而是找到能使它们之间“间隔”最大的那条线(街道)。
核心概念 2: 支持向量
那些正好落在“街道”边缘上、仿佛用身体“支撑”起间隔的数据点。
模型只由支持向量决定。
其他所有非支持向量的点(远离边界)对决策边界没有影响,这使得SVM非常高效。
核心数学 (如何计算)
一个带约束的优化问题:
优化目标: 最小化 $\frac{1}{2} ||w||^2$ (等价于最大化间隔宽度 $\frac{2}{||w||}$)。
约束条件: $y_i (w \cdot x_i + b) \geq 1$。
( `... \geq 1` 强制创造出了间隔, 而非 `... \geq 0` )
核心概念 3: 核技巧 (Kernel Trick)
用于解决**线性不可分**问题(如“甜甜圈”数据)。
原理:“升维打击”
低维空间 (2D)
(线性不可分)
映射到高维空间 (3D)
(线性可分)
“技巧”在于:使用**核函数** $K(a, b)$,可以在低维空间直接计算出高维空间的结果,**节省了海量的计算资源**。
4. K最近邻 (KNN)
本节介绍 K最近邻 (KNN) 算法,这是最直观的机器学习算法之一。它的核心思想是“近朱者赤,近墨者黑”,完全依赖于“邻居投票”来进行分类。我们将探讨 “K” 的含义、算法的特性以及其独特的优缺点。
核心思想
“近朱者赤,近墨者黑”,通过“邻居投票”来进行分类。
算法特性 (懒惰学习者)
KNN 是一种 懒惰学习者 (Lazy Learner)。
“训练”阶段: 什么也不学,只是把所有训练数据**储存**在内存中。
“预测”阶段:
- 计算新点与所有训练点的距离。
- 对距离进行排序。
- 找出 K 个最近的邻居。
- 进行投票。
核心概念: "K" 的选择
"K" (邻居数量) 是一个超参数,它的选择是在“欠拟合”与“过拟合”之间寻找平衡。下图总结了 K 值太小或太大的风险。
K值太小 (如 K=1)
模型对噪音点非常敏感,抗噪能力差。
→ 导致 过拟合 (Overfitting)
K值太大 (如 K=N)
模型过于平滑,忽略局部特征,所有预测都变为数据中最多的类别。
→ 导致 欠拟合 (Underfitting)
优缺点
优点
- 简单直观, 易于理解
- 对非线性问题友好
缺点
- 预测速度慢, 计算成本高
- 对无关特征和尺度敏感
- 维度灾难
5. 梯度下降 (Gradient Descent)
本节介绍梯度下降(GD),它本身不是一个模型,而是驱动许多其他模型(如逻辑回归和神经网络)学习的核心**优化算法**。我们将使用“浓雾下山”的比喻来理解其数学原理,特别是“梯度”和“学习率”的作用。
定位与核心思想
定位: 核心**优化算法**,用于寻找损失函数 $J(w)$ 的最小值。
思想: 模拟“浓雾下山”,一步步迭代找到山谷的最低点(即总误差最小的最优解 $w$)。
数学原理: 梯度 (Gradient)
梯度 $\nabla J(w)$ 是“斜率”在多维空间的推广。
它的物理意义是一个向量,指向当前位置**坡度最陡峭的上升方向**(即**上山**最快的方向)。
核心更新公式
公式解读 (大白话):
$w_{\text{new}} = w_{\text{old}} - \alpha \cdot \nabla J(w_{\text{old}})$
- $w_{\text{old}}$: 我的当前位置
- $\nabla J(w_{\text{old}})$: “上山”最快的方向
- $-$ (减号): 朝着相反方向走 (即“下山”)
- $\alpha$ (学习率): 我这一步迈多大
可视化: 学习率 $\alpha$ 的影响
学习率 $\alpha$ 决定了“下山”的步长。选择合适的 $\alpha$ 至关重要。此示意图展示了不同 $\alpha$ 值对“下山”过程的影响。
`α` 太大 (步子太大)
可能会直接“跨过”最低点,导致在山谷两侧来回震荡,无法收敛。
← → ← →
`α` 太小 (步子太小)
下山速度过慢,训练耗时太长。
↓ . . ↓ . . ↓