欢迎来到机器学习:非监督式学习!
你好!欢迎来到 CS2 课程中最现代化且令人兴奋的章节之一。到目前为止,你可能已经学过许多旨在预测特定结果的模型(例如预测保单持有人是否会提出索赔),这就是所谓的“监督式学习”(Supervised Learning)。
在本章中,我们将探讨非监督式学习(Unsupervised Learning)。你可以把它想象成“侦探工作”。我们手头有一堆数据,但没有特定的“标签”(labels)或“目标答案”。我们的目标是找出隐藏的规律、将相似的项目分组,并简化复杂的信息。对于处理“大数据”的现代精算师来说,这是一项至关重要的工具。
如果刚开始觉得这些概念有点抽象,别担心!我们会将其拆解为简单的步骤,并辅以大量的类比来帮助你理解!
1. 理解非监督式学习
在非监督式学习中,我们提供给电脑输入数据 \( (X) \),但没有输出标签 \( (Y) \)。机器会自行探索数据,以找出潜在结构(latent substructures,即隐藏规律)。
我们为什么要使用它?
1. 降维(Dimension Reduction): 将包含 100 个变量的数据简化为仅 3 或 4 个重要的变量。
2. 聚类(Clustering): 将行为相似的客户或风险进行分组。
3. 异常侦测(Anomaly Detection): 找出那些“格格不入”的数据点,这可能代表欺诈或异常风险。
2. 主成分分析 (PCA)
试想你正在尝试描述一个人。你可以列出他们的身高、体重、手臂长度、腿长和鞋码。这些变量太多了!然而,这些变量大多与“体型”有关。PCA 可以帮助我们将这些相关的变量组合成一个单一的“主成分”,称为整体体型(Overall Size)。
什么是 PCA?
PCA 是一种用于降维的技术。它将一组大型的相关变量转换为一组较小的、互不相关的变量,称为主成分(Principal Components, PCs)。
运作方式(步骤说明):
1. 标准化数据: 由于 PCA 对测量尺度(例如米与厘米)非常敏感,我们通常会先对数据进行缩放,使每个变量的平均值为 0,变异数为 1。
2. 找出第一个主成分(\( PC_1 \)): 这是原始变量的一个线性组合,它捕获了数据中最大可能的变异数。
3. 找出第二个主成分(\( PC_2 \)): 这是另一个线性组合,与第一个主成分正交(即呈直角),并捕获剩余变异数中最大的一部分。
4. 重复: 我们继续这个过程,直到获得与原始变量数量相同的主成分为止。
背后的数学原理
主成分可以表示为:
\( PC_1 = \phi_{1,1}X_1 + \phi_{2,1}X_2 + ... + \phi_{p,1}X_p \)
其中:
- \( X \) 是我们的原始变量。
- \( \phi \) (phi) 是载荷(loadings)。它们告诉我们每个原始变量在该主成分中所占的权重。
快速复习:PCA 的关键特征
- 第一个主成分总是解释最多的变异数。
- 每个后续的主成分都与之前的主成分互不相关。
- 我们通常只保留前几个能解释例如 80% 或 90% 总变异的主成分。
常见错误: 忘记对数据进行缩放!如果一个变量的单位是百万,而另一个是小数,PCA 会错误地认为“百万”那个变量才是唯一重要的。
重点总结: PCA 通过将许多变量压缩成少数几个“超级变量”,在保留尽可能多信息(变异数)的同时简化数据。
3. K-means 聚类
如果说 PCA 是关于变量的,那么聚类就是关于观测值(数据中的每一行)。K-means 聚类旨在将数据划分为 \( K \) 个截然不同且互不重叠的组别。
类比说明
想象你有一袋混合的硬币。你想把它们分成 3 堆(即 \( K=3 \))。你首先在桌面上挑选三个位置,将每个硬币放到离它最近的那堆中。接着,你将每堆的中心移动到刚刚归类好的硬币群组的中间。你重复这个过程,直到这些堆的位置不再变动为止!
演算法步骤:
1. 选择 K: 决定你想要多少个集群(例如 \( K=3 \))。
2. 初始化: 随机指定每个 \( K \) 集群的“质心”(centroid,即中心点)。
3. 分配: 查看每个数据点,并将其分配到距离最近的质心所属的集群(通常使用欧几里得距离)。
4. 更新: 计算每个集群中所有点的新平均值(中心)。这将成为新的质心。
5. 迭代: 重复步骤 3 和 4,直到分配结果不再改变。
如何选择“K”?
我们使用肘部法则(Elbow Method)。我们对不同的 \( K \) 值(1, 2, 3, 4...)运行演算法,并绘制“集群内总变异”。随着 \( K \) 的增加,这种变异会下降。我们寻找图表中像“手肘”或“弯曲处”的点,这表示再增加集群数对解释数据的帮助已不大。
你知道吗? K-means 是一种迭代演算法。由于它从随机的质心开始,如果你运行两次,可能会得到略有不同的结果。精算师通常会多次运行该算法,然后选择最好的结果!
重点总结: K-means 通过最小化点与其集群中心之间的距离,找出相似数据点的“团块”。
4. 潜在结构与异常侦测
现在我们知道了这些工具,我们该如何利用它们来寻找“潜在结构”或“异常值”呢?
识别潜在结构
“潜在结构”只是一个高级说法,意指隐藏的群体。
例子: 你有汽车保险投保人的数据。你运行 K-means 并发现两个明显的集群。一个集群拥有高里程数和市区驾驶习惯;另一个则拥有低里程数和乡郊驾驶习惯。这个“结构”就是驾驶环境,而这在你原本的数据中并没有被明确标记出来!
侦测异常
异常值(Anomalies)即离群值。我们可以利用上述两种工具找到它们:
1. 透过聚类: 如果一个数据点距离任何集群中心都非常远,它就是一个异常值。
2. 透过 PCA: 如果我们使用 PCA 将数据降维到二维,而某个点远离其他数据点组成的“云团”,那么它就是一个异常值。
精算例子: 在欺诈侦测中,落入一个极小且孤立集群的索赔,或者具有极不寻常 PCA 分数的索赔,可能会被标记出来进行人工调查。
5. 总结与比较
最后我们用一个快速比较表来厘清重点:
| 特征 | 主成分分析 (PCA) | K-means 聚类 |
|---|---|---|
| 主要目标 | 减少变量的数量(降维)。 | 对观测值进行分组(聚类)。 |
| 核心概念 | 最大化变异数。 | 最小化组内距离。 |
| 输出结果 | 新的变量(PCs),即线性组合。 | 每个数据点的标签/群组。 |
| 记忆口诀 | PCA = Pruning (修剪) 变量。 | K-means = Kumping (即 Clumping/聚合) 数据。 |
考前最后提示:
- PCA: 记住主成分(PCs)是互不相关的。这是常见的考题!
- K-means: 记住这是一种非监督式方法。你不需要告诉模型群组是什么,它会自己找出来。
- 缩放: 务必提到在执行这些技术之前,数据应该进行标准化/缩放。
做得好!你已经掌握了 CS2 中非监督式学习的精髓。继续练习历届试题,看看这些概念在数值题目中是如何呈现的!