从无标签数据中恢复世界结构的学习范式
非监督学习的本质不是“没有标签的监督学习”,而是:
在缺乏外部语义标注的前提下,假设数据本身蕴含某种内在结构,并试图恢复这种结构。
这些“结构”不是算法决定的,而是建模假设决定的。
从稳定、跨算法的视角,可以将非监督学习统一抽象为三类结构学习问题:
| 结构类型 | 学习对象 | 核心问题 |
|---|---|---|
| 共现 / 频率结构 | 事件是否经常同时出现 | 世界中哪些因素彼此相关 |
| 几何 / 拓扑结构 | 数据在空间中如何聚集 | 世界是如何被自然分组的 |
| 概率 / 支持域结构 | 什么是“正常范围” | 世界的常态边界在哪里 |
对应形成三大方法族:
后续所有算法,都是对这些结构假设的不同工程实现。
关联规则挖掘假设:
如果两个事件在数据中经常同时出现,那么它们之间可能存在某种潜在关系。
它不关心因果,只关心统计共现。
描述某个事件组合在整体中的出现频率
[ Support(X,Y)=P(X,Y)=\frac{count(X,Y)}{N} ]
描述在 Y 已发生的条件下,X 发生的可能性
[ Confidence(X\Leftarrow Y)=P(X|Y)=\frac{P(X,Y)}{P(Y)} ]
衡量条件关系是否“超出随机独立假设”
[ Lift(X\rightarrow Y)=\frac{P(Y|X)}{P(Y)} ]
👉 提升度才是真正的“相关性校正指标”
这是:
搜索空间剪枝的数学基础
| 算法 | 核心思想 | 演进动因 |
|---|---|---|
| Apriori | 广度优先 + 候选剪枝 | 频繁扫描数据集 |
| FP-Growth | 压缩表示 + 条件模式基 | 减少扫描次数 |
FP-Growth 的本质不是“更聪明”,而是:
用结构换时间,用内存换扫描成本
所有聚类算法都隐含一个前提:
相似的样本在某种空间或分布中应当彼此接近。
不同算法的差异在于:
| 维度 | 关键问题 |
|---|---|
| 距离 vs 分布 | 是否显式建模概率? |
| 参数依赖 | 是否需要预设 K? |
| 簇形状假设 | 是否只支持凸簇? |
| 噪声鲁棒性 | 是否能识别离群点? |
👉 输出的是层次关系本身
建模假设:
目标函数: [ J=\frac1m\sum_{i=1}^{m}|x^{(i)}-\mu_{c^{(i)}}|^2 ]
算法不变量:
工程代价:
核心思想:
数据来自多个隐含分布的混合
EM 是一个优化框架:
👉 聚类结果是概率归属,而非硬划分
优点:
代价:
异常检测的关键假设是:
正常数据有稳定结构,异常是对该结构的偏离。
因此:
[
p(x)\begin{cases}
<\varepsilon & anomaly
\ge\varepsilon & normal
\end{cases}
]
这是一个支持域判定问题。
假设各特征独立且服从高斯分布:
[ \mu_j=\frac{1}{m}\sum x_j^{(i)},\quad \sigma_j^2=\frac{1}{m}\sum(x_j^{(i)}-\mu_j)^2 ]
联合概率: [ p(\vec{x})=\prod_{j=1}^np(x_j;\mu_j,\sigma_j^2) ]
| 维度 | 异常检测 | 监督分类 |
|---|---|---|
| 建模对象 | 正常分布 | 类边界 |
| 对异常假设 | 未知、多样 | 稳定、可见 |
| 适用场景 | 欺诈、设备监控 | 分类、识别 |
非监督学习的演进不是“算法更新”,而是:
数据规模、维度与分布复杂度的变化
非监督学习 ≠ 算法集合
非监督学习 = 结构学习范式
算法只是:
假设 × 数据 × 计算资源 的交点