文章目录
-
- 引言
- [视角一:方差最大化 ------ 让不同类尽量分开,同类尽量抱团](#视角一:方差最大化 —— 让不同类尽量分开,同类尽量抱团)
- [视角二:概率角度 ------ 对不确定性建模](#视角二:概率角度 —— 对不确定性建模)
- [视角三:损失函数最小化 ------ 真正的统一框架](#视角三:损失函数最小化 —— 真正的统一框架)
- 可视化:三种视角的关系
- 总结
引言
当你面对一堆分类算法------LDA、SVM、逻辑回归、决策树、朴素贝叶斯......会不会觉得它们彼此之间毫无关联?其实不然。无论算法外表多么不同,它们都在回答同一个问题:给定一个样本,它属于哪一类? 而答案的背后,存在着几条贯穿始终的主线。本文将带你从三个层层递进的视角,重新审视这些算法,发现它们内在的统一之美。
视角一:方差最大化 ------ 让不同类尽量分开,同类尽量抱团
这是最直观的思路:如果我们能找到一个变换(阈值、投影、超平面),使得不同类别的数据在该变换下"泾渭分明",而同一类别的数据"紧密团结",那么分类自然就容易了。
代表算法
| 算法 | 具体手段 | 类间差异度量 | 类内差异度量 |
|---|---|---|---|
| OTSU(大津法) | 一维阈值 | 两类灰度均值差 | 类内方差和 |
| LDA | 线性投影 | 类中心距离 | 类内协方差 |
| SVM | 最大间隔超平面 | 支持向量间的间隔 | 不关心 |
| 决策树 | 递归划分 | 子节点纯度提升 | 基尼/熵降低 |
关键洞察:
- LDA 显式地最大化"类间散度 / 类内散度"比值,是这一视角的教科书级代表。
- SVM 虽然不直接优化类内方差,但它通过最大化几何间隔,同样在强化类间的分离度(只是它只看边界上的少数样本)。
- 决策树的分裂准则(如基尼系数)本质上是最小化类内不纯度,间接实现了类间分离。
小结:凡是试图"拉大不同类间距、缩小同类散布"的算法,都可归入此视角。但并非所有算法都同时兼顾两者(如SVM忽略类内)。
视角二:概率角度 ------ 对不确定性建模
另一个完全不同的思路是:既然分类充满不确定性,为什么不直接估计"样本属于某类"的概率呢?这就是概率视角的出发点。
两条路线
概率建模
├── 生成式模型:对 P(x|y) 和 P(y) 建模 → 贝叶斯公式 → P(y|x)
│ ├── 线性判别分析 (LDA) ← 注意!它也属于此视角!
│ ├── 朴素贝叶斯
│ └── 高斯混合模型 (用于聚类)
└── 判别式模型:直接对 P(y|x) 建模
├── 逻辑回归
├── Softmax 回归
└── 条件随机场 (CRF)
有趣的事实:LDA 同时出现在视角一和视角二中,因为它既可以被推导为最大化类间/类内散度比,也可以被推导为假设每类数据服从同协方差高斯分布时的贝叶斯最优分类器。这说明两个视角并非对立,而是在 LDA 处交汇。
概率视角的优势:
- 输出带有置信度,便于风险决策。
- 自然地处理多分类和缺失数据。
- 可以通过贝叶斯框架引入先验知识。
小结:概率视角提供了一个优雅的数学框架,但它要求我们对数据分布做出假设(生成式)或选择合适的链接函数(判别式)。
视角三:损失函数最小化 ------ 真正的统一框架
前面两个视角虽然强大,却无法覆盖所有算法(如 kNN、AdaBoost)。有没有一个更底层的统一语言?答案是:损失函数。
几乎所有分类算法都可以看作是 在假设空间 H H H 中,寻找使某种损失函数 L L L 最小的模型 f f f:
f ^ = arg min f ∈ H ∑ i = 1 n L ( y i , f ( x i ) ) + λ ⋅ Ω ( f ) \hat{f} = \arg\min_{f \in \mathcal{H}} \sum_{i=1}^n L(y_i, f(x_i)) + \lambda \cdot \Omega(f) f^=argf∈Hmini=1∑nL(yi,f(xi))+λ⋅Ω(f)
其中 Ω ( f ) \Omega(f) Ω(f) 是正则化项,防止过拟合。
常见损失函数与对应算法
| 损失函数 | 数学形式 | 对应算法 |
|---|---|---|
| 0-1 损失 | I ( y ≠ y ^ ) I(y \neq \hat{y}) I(y=y^) | 理想但 NP 难 |
| 对数损失(交叉熵) | − log P ( y ∣ x ) -\log P(y \mid x) −logP(y∣x) | 逻辑回归、神经网络 |
| 合页损失 | max ( 0 , 1 − y ⋅ f ( x ) ) \max(0, 1 - y \cdot f(x)) max(0,1−y⋅f(x)) | SVM |
| 指数损失 | e − y f ( x ) e^{-y f(x)} e−yf(x) | AdaBoost |
| 基尼系数 / 信息增益 | 纯度度量 | 决策树 |
为什么这是统一视角?
- 方差最大化视角(LDA)可以转化为特定的损失函数(如最小化类内散度等价于某种二次损失)。
- 概率视角(逻辑回归)直接对应交叉熵损失。
- SVM 的合页损失在数学上等价于最大化间隔加松弛变量。
- 决策树的分裂准则也是损失(不纯度)的局部最小化。
小结:损失函数最小化是分类算法的"终极统一语言"。不同的算法只是选择了不同的损失函数和假设空间。
可视化:三种视角的关系
下面是一个简单的思维导图,帮助你理解它们之间的层次关系:
分类算法
│
┌──────────┼──────────┐
▼ ▼ ▼
方差最大化 概率建模 损失函数最小化
(设计动机) (数学框架) (统一底层)
│ │ │
┌────┴────┐ ┌─┴─┐ ┌──┴──┐
│LDA OTSU│ │NB LR│ │SVM DT│
│SVM DT │ │LDA │ │LR NN │
└────────┘ └────┘ └─────┘
实际上,这三个视角是互补的,而不是互斥的。你可以根据问题的性质和个人偏好,选择最合适的视角来理解和解释算法。
总结
- 方差最大化视角 直观易理解,适合解释 LDA、OTSU、SVM 和决策树的分离动机。
- 概率视角 严谨且富有弹性,适合逻辑回归、朴素贝叶斯等需要输出置信度的场景。
- 损失函数视角 是终极统一框架,几乎能涵盖所有分类算法,并且为算法设计提供了系统的方法论。
下次当你遇到一个新的分类算法时,不妨先问自己三个问题:
- 它是否在追求某种类间/类内方差的平衡?
- 它是否在对概率分布进行显式或隐式建模?
- 它的损失函数是什么?
答案或许会让你惊喜地发现,所有的算法都在用不同的语言讲述同一个故事。
欢迎在评论区分享你对分类算法统一视角的看法,或提出你想了解的算法!