Archipelago

Lec 7机器学习算法——降维、PCA、聚类与分类

讲义完成更新于 2026-09-29

Lec 7 机器学习算法——降维、PCA、聚类与分类(Machine Learning Algorithms)

对应 MIT CTL.SC4x · Supply Chain Technology and Systems · 第 7 讲
核心参考:SC4x Key Concept Document (Summer 2019) & MITx MicroMasters SCM 课程大纲

TL;DR

  • 主成分分析(PCA)通过正交变换实现高维特征降维,化解维度灾难并消除多重共线性。
  • K-Means 聚类无监督识别客户群体与物料分类,肘部法则与轮廓系数指导最优簇数选取。
  • 决策树与随机森林(Random Forest)集成算法在物流履约时效预测与供应商违约风险评估中表现卓越。

量纲归一化是距离度量的生命线

在将 K-Means 聚类应用于物料分类(如同时输入 SKU 年出货金额数百万元与出货频次几十次)时,若不进行标准化,欧氏距离计算将被数值庞大的金额特征完全主导,频次特征几乎彻底失效。在调用任何基于距离度量的聚类与降维算法前,必须先执行 Z-Score 标准化(StandardScaler),避免伪相关的失真聚类结果。

1. 本讲的定位

Lec6 建立了机器学习的整体分类和"模型好坏怎么判断"的标准;本讲深入到具体算法:每种模型有不同的性质,各自适合不同类型的任务。核心内容包括:如何在不损失信息的前提下减少特征数量(降维/PCA)、如何在没有标签时把记录分组(聚类)、如何做分类并比较不同分类器的准确性(含敏感性与特异性)。

2. 降维(Dimensionality Reduction)

降维是指减少分析中包含的特征数量这一大类技术的统称,常用于特征很多的分析场景。

  • 试图随意或凭直觉手动减少维度,往往效果很差;
  • 分析结果需要被人理解,因此应当是可处理、可解读的(tractable);
  • 纳入的特征数量越多,所需的样本量也越大;
  • 不应该仅凭直觉决定纳入或剔除某个特征——应该使用专门的降维技术,如主成分分析(PCA);
  • 汇总统计量(summary statistics)本身也是一种降维手段。

3. 主成分分析(PCA, Principal Component Analysis)

PCA 是一种数学方法,用于为分析或可视化目的降低维度。它利用变量之间的相关性,把原始数据变换为新的维度/特征,使得前几个维度就包含了数据集中绝大部分的信息(方差)。PCA 会基于数据的分布,判断哪些变量信息量最大,并计算出数据集内现有变量的、信息量最高的线性组合。PCA 特别适合高维度数据集。

关键性质:

  • 不丢失信息——只是把信息集中到了前几个成分中;
  • 与线性回归的思路本质相同,只是没有因变量:
    • 线性回归的解,恰好就是第一主成分;
    • 排除掉第一主成分所解释的信息后,PCA 再计算出信息量第二大的成分,然后是第三大,依此类推;
  • 这些线性组合构成一组新的变量,可以被用来从新的坐标轴角度观察数据;
  • 各成分按重要性排序,因此除了前几个成分外,其余的都可以舍弃,只保留最重要的信息,且成分数量可以很少;
  • 成分表中的系数,给出了每个原始变量在该成分中所占的比例;
  • 系数的正负号表示在该特定成分中,两个变量是正相关还是负相关;
  • 仅凭系数数值本身很难解读各成分的含义,配合可视化(画图) 通常能大幅提升理解程度。

数学形式:

PC1 = (a·var1 + b·var2 + c·var3 + …)
PC2 = (d·var1 + e·var2 + f·var3 + …)
PC3 = (g·var1 + h·var2 + i·var3 + …)

4. 聚类(Clustering)

聚类是降维思路的另一种体现方式——关注的是每个点与其他点之间距离的远近。核心思路:把数据点划分为若干簇(cluster),使得簇内部点之间的距离,小于簇与簇之间的距离。

  • 聚类有助于识别彼此特征相似的记录群组;
  • 当数据没有标签时,聚类可以先把记录分组,供进一步深入检查;
  • 深入检查每个簇内的记录后,用户可以理解"是什么原因导致这些记录被归为一类",以及"为什么另一些记录被单独分到别的簇"。

4.1 K-means 聚类

k-means 聚类首先要选定簇的数量 k,然后在数据空间中随机放置 k 个簇中心,接着不断重复以下步骤直到收敛:

  1. 每个数据点被归类到离它最近的簇中心所在的簇;
  2. 计算每个簇的质心(centroid);
  3. 把簇中心更新为该质心所在位置。

注意点:

  • k-means 本身不会帮你确定合适的簇数量——这个 k 值需要用户凭直觉或对数据的先验知识来设定;
  • 算法可能因为簇中心的初始随机位置不同,最终收敛到多个不同的解,其中一些解会优于另一些。

5. 分类(Classifications)

  • 聚类和 PCA 让用户看到数据中的模式,这是在没有标签指导下能做到的极限;
  • 有监督学习时,标签会被纳入学习过程:
    • 无监督问的问题:哪些特征最重要或最有意思?
    • 有监督问的问题:哪些特征最能解释这些组别之间的差异?
  • 分类方法:每条记录都归属于某个类别/类;根据记录其他特征的取值,预测一条新记录所属的类别;
  • 回归方法:某个变量依赖于其他一些或全部变量;根据自变量的取值预测因变量的数值。

5.1 分类树(Classification Trees)

分类树通过为特征找到最优切分点来拆分数据,用来按类别切分数据。树状图会展示每个节点的类别构成,以及到达该节点的数据点的相对数量。

剪枝(Tree Pruning):

  • 剪枝会从树中移除与过拟合相关的规则;
  • 剪枝后的新树会漏掉少数原本能被正确分类的点,但只保留有意义的规则,对新数据的泛化能力更强。

5.2 朴素贝叶斯分类器(Naïve Bayes Classifier)

  • 朴素贝叶斯算法对每条记录,独立考虑每个特征的取值,计算该记录落入每个类别的概率;
  • 随后,依据贝叶斯法则(Bayes' rule),把各特征对应的概率组合起来,从而确定每条新记录最可能所属的类别;
  • 几乎完全不受过拟合影响——单个数据点的影响力很小;对数据所做的假设也非常少。

5.3 随机森林(Random Forest)

随机森林是一种集成分类器(ensemble classifier),使用多棵不同的分类树。这些树是基于原始训练集中随机抽样的记录生成的。结果中还附带准确率信息和变量重要性信息。

  • 无需剪枝;
  • 树可以一直生长,直到每个节点只包含极少量观测值;
  • 预测效果优于单棵分类树;
  • 无需调参。

6. 比较预测器的准确性

6.1 交叉验证(Cross-Validation)

  • 模型应该擅长对未标注数据做分类,而不是单纯"复述"已经被分类过的数据;
  • 把数据随机划分为训练集和测试集:
    • 构建树时隐藏测试集;
    • 计算准确率时隐藏训练集;
    • 计算出的准确率代表了模型在未见过的数据上的表现;
  • 有一些技术可以把这个过程重复多次,确保每条记录恰好只被用作一次测试集中的样本,例如 k 折交叉验证(k-folds)。

6.2 模型比较

存在若干标准的性能度量指标,可以运行多个模型并比较这些指标:准确率(Accuracy)、精确率(Precision)、召回率(Recall),以及其他指标。具体应用场景决定了哪些性能指标对特定任务而言最为重要。

7. 敏感性与特异性(Sensitivity and Specificity)

敏感性与特异性是衡量分类测试性能的统计指标:

  • 敏感性(Sensitivity):衡量实际为正的结果中,被正确归类的比例;
  • 特异性(Specificity):衡量实际为负的结果中,被正确归类的比例。

举例:如果需要衡量一项测试"始终能检测出问题"的能力,应关注敏感性;如果需要衡量分类器"不产生假阳性判断"的能力,应关注特异性。

7.1 ROC 曲线

  • ROC(Receiver Operating Characteristic,受试者工作特征)曲线:针对不同的判定阈值(cut-off point),描绘真阳性率(敏感性) vs 假阳性率(100 - 特异性);
  • 曲线上的每一个点,都对应某个特定判定阈值下的一对敏感性/特异性数值;
  • 一个具有完美区分能力的测试(两个分布没有重叠),其 ROC 曲线会经过左上角(100% 敏感性,100% 特异性);
  • ROC 曲线越靠近左上角,测试的整体准确性越高。

7.2 混淆矩阵(Confusion Matrix)

混淆矩阵是一张表,常用来描述机器学习算法在真实值已知的测试数据集上的表现。示例:

Predicted HighPredicted Low
Actual High10020
Actual Low10200

该表告诉我们:

  • 存在两个可能的预测类别:"high" 和 "low"(比如预测用户平均消费水平的"高消费"或"低消费"客户);
  • 分类器总共做出了 330 次预测;
  • 在这 330 次预测中,分类器预测"high" 110 次,预测"low" 220 次;
  • 而实际情况中,样本里有 100 个是高消费者,200 个是低消费者。

8. 本讲小结与学习目标回顾

  • 进一步认识机器学习算法及其使用方式;
  • 熟悉降维技术及其适用场景;
  • 认识何时可以用聚类作为一种降维手段;
  • 复习分类树、随机森林等不同分类方法;
  • 学会如何比较预测器的准确性;
  • 熟悉敏感性和特异性作为二分类测试的指标。

下一讲(Lec 8):数据、数据库、机器学习都讲完了,进入企业系统的世界——从供应链最核心的信息系统骨干ERP 开始。