二、无监督学习

(一)聚类

  1. K-均值聚类(K-Means)

K-means 聚类是一种经典的无监督机器学习算法,用于将数据集划分为 K 个簇(clusters),使得同一簇内的数据点相似度高,不同簇之间的数据点相似度低。

它的核心思想是:最小化簇内数据点到其质心(centroid)的平方距离之和。

  1. K-means 算法步骤:
  1. 初始化:随机选择 K 个初始质心(centroids)。

  2. 分配阶段:将每个数据点分配到最近的质心,形成 K 个簇。

  3. 更新阶段:重新计算每个簇的质心(即簇内所有点的均值)。

  4. 迭代:重复步骤 2 和 3,直到质心不再变化或达到最大迭代次数。

  1. K值选择:
  • 肘部法则:

  • 轮廓系数:

  1. 优缺点:

优点

缺点

简单、高效

需要预先指定 K 值

易于实现

对初始质心敏感(可能陷入局部最优

可扩展性好

噪声和异常值敏感

适用于球形簇

不适合非凸形状或密度差异大的簇

(二)降维

  1. 定义

在保留数据最重要结构的前提下,去除冗余或噪声方向,将数据在更低维的维度上显示。

  1. 目的:

    1. 数据压缩:使用较少的计算机内存或磁盘空间,也让我们加快我们的学习算法。

    2. 可视化:使得复杂多维降至2-3维进行可视化

  2. 常用方法

方法

线性/非线性

保什么

痛点

PCA

线性

最大方差

只能找直线

LDA

线性

类别间距最大

需要标签

t-SNE

非线性

局部相似度

无重建映射

UMAP

非线性

拓扑结构

超参敏感

Autoencoder

非线性

最小重建误差

需调网络

  1. PCA降维

PCA(Principal Component Analysis,主成分分析)是一种最常用的无监督线性降维方法。

它的核心目标是:在损失最少信息(即保留最大方差)的前提下,将高维数据投影到低维空间。这些低维的新特征被称为“主成分”,它们是原始特征的线性组合,且彼此之间互不相关(正交)。

简单来说,PCA就是在寻找一个新的坐标系,这个坐标系的原点就在数据的中心,而坐标轴的方向是按照数据方差最大的方向来确定的。

  • 第一主成分 (PC1):数据方差最大的方向。

  • 第二主成分 (PC2):与PC1正交且方差次大的方向。

  • 以此类推...

  1. 维度选择

选择 k值就是在保留信息和降低维度之间做一个权衡。常用方法有:

  1. 方差解释率(最常用):

    1. 每个特征值 λi的方差解释率为:∑j=1nλjλi

    2. k个主成分的累计方差解释率为:∑j=1nλji=1kλi

    3. 通常我们选择 k,使得累计方差解释率大于一个阈值(例如 0.95 或 0.99),即保留了95%或99%的原始信息。

  2. 碎石图(Scree Plot)

    1. 绘制所有特征值(按从大到小排序)的折线图。

    2. 寻找“拐点”或“肘部”,在这个点之后特征值变得很小且趋于平缓。选择这个点之前的特征值数量作为 k

  1. 优缺点

优点

  • 降低复杂度:减少特征数量,提高模型训练速度。

  • 减少过拟合:去除噪声和不重要的特征。

    • 不如正则化:PCA只是近似地丢弃掉一些特征,它并不考虑任何与结果变量有关的信息,因此可能会丢失非常重要的特征。然而正则化处理会考虑到结果变量,不会丢掉重要的数据。

  • 可视化:将高维数据降至2维或3维,便于可视化观察。

  • 消除相关性:新的主成分特征之间是正交的,解决了多重共线性问题。

缺点:

  • 可解释性差:主成分是原始特征的线性组合,其物理含义通常变得模糊不清。

  • 假设线性:PCA是一种线性变换,对于存在非线性关系的数据效果可能不好(此时可考虑 Kernel PCA 或 t-SNE、UMAP 等方法)。

  • 方差主导:PCA以保留方差为目标,但方差大的方向不一定是最重要(对于分类/预测任务)的方向。

Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐