什么是无监督学习? - MATLAB & Simulink

无监督学习

什么是无监督学习?

无监督学习是一种根据未标注数据进行推断的机器学习方法。无监督学习旨在识别数据中隐藏的模式和关系,无需任何监督或关于结果的先验知识。

无监督学习的工作原理

无监督学习算法发现数据中隐藏的模式、结构和分组,而不需要任何关于结果的先验知识。这些算法依赖未标注数据,即没有预定义标签的数据。

典型的无监督学习过程涉及数据准备、对其应用正确的无监督学习算法,以及最后的解释和评估结果。这种方法特别适用于聚类(目标是将相似的数据点组合在一起)和降维(通过减少特征(维度)的数量来简化数据)等任务。通过分析数据的固有结构,无监督学习可以更好地理解数据集。

无监督学习也可以在有监督学习之前应用,以识别探索性数据分析中的特征并基于分组建立各个类。这是特性工程的一部分,特征工程是将原始数据变换为适合有监督机器学习的特征的过程。

一组不同颜色的形状(未标注数据)输入到无监督学习算法中,产生三个同构组(类)的输出。

使用无监督学习将未标注数据组织成各个组。

无监督学习方法的类型

聚类

聚类是最常见的无监督学习方法,可帮助您理解数据集的自然分组或固有结构。它用于探索性数据分析、模式识别异常检测图像分割等。聚类算法(例如 k 均值或层次聚类)对数据点分组,使得同一组(或簇)中的数据点彼此之间比在其他组中的数据点更相似。

例如,如果一家移动电话公司想优化其蜂窝手机信号塔的方位布局,就可以使用机器学习来估计使用其信号塔的人群数量。一部移动电话同时间只能与一个信号塔通信,所以该团队使用聚类算法设计蜂窝塔的最佳布局,优化其客户群组(也可以称之为客户簇)的信号接收。

具有未标注点的图经过聚类(一种无监督学习),产生数据点的三个着色聚类。

使用聚类找到数据中隐藏的模式。

聚类分为两个主要类别:

  • 硬聚类或互斥聚类,其中每个数据点仅属于一个簇,例如常见的 k 均值方法。
  • 软聚类或重叠聚类,其中每个数据点可以属于多个簇,例如在高斯混合模型中。

常见的聚类算法包括:

  • 层次聚类通过创建聚类树来构建一个多级聚类层次结构。
  • k 均值根据到簇质心的距离将数据划分为 k 个不同簇。
  • 高斯混合模型将簇形成为多元正态密度分量的混合。
  • 基于密度的含噪数据空间聚类 (DBSCAN) 将高密度区中临近的点进行组合,跟踪低密度区中的离群值。它可以处理任意非凸形状。
  • 自组织映射使用学习数据的拓扑和分布的神经网络。
  • 谱聚类将输入数据变换为基于图的表示形式,其中的簇比原始特征空间中的簇分离效果更好。簇的数量可以通过研究图的特征值来估计。
  • 隐马尔可夫模型可用于发现序列中的模式,如生物信息学中的基因和蛋白质。
  • 模糊 c 均值 (FCM) 将数据分成 N 个簇,数据集中的每个数据点在一定程度上都属于每个簇。

聚类用于各种应用,例如图像分割异常检测以及模式识别

显示三个鸢尾花品种的花瓣宽度和长度测量值的二维绘图,以及显示使用 GMM 聚类得到的三个簇的图。

左图:三种鸢尾花品种的几个标本的花瓣测量值的 MATLAB 散点图。右图:使用高斯混合模型 (GMM) 聚类方法将花瓣测量值分割成三个簇。

降维

多元数据通常包含大量变量或特征。这可能会影响运行时间和内存要求。降维方法能够减少特征(维度)的数量,同时保留原始数据的必要信息。使用无监督学习进行降维有助于降低计算负载,提高机器学习算法的速度和效率。

具有许多变量的数据的另一个固有困难是其可视化问题。降维方法可以在不丢失重要信息的情况下简化数据,从而使可视化和分析变得更加容易。

在示例中,我们使用在五种不同活动(坐、站、走、跑和跳舞)期间通过智能手机加速度计传感器采集的 60 个维度的人类活动数据。高维度使得这些数据难以可视化和分析。通过降维,您可以将这些维度减少到两维或三维,而不会丢失大量信息。

一些常见的无监督学习降维方法有:

  • 主成分分析 (PCA) 将数据变换为一组正交分量,以较少的变量获取最大方差。这些新变量称为主成分。每个主成分都是原始变量的一种线性组合。第一个主成分是空间中的单轴。当您将每个观测值投影到该轴上时,生成的值会形成一个新变量,此变量的方差是第一个轴的所有可能选择中的最大值。第二个主成分是空间中的另一个轴,垂直于第一个轴。将观测值投影到此轴上会生成另一个新变量。此变量的方差是这第二个轴的所有可能选择中的最大值。主成分的完整集合与原始变量的集合大小相同,但通常前几个成分占原始数据总方差的 80% 以上。
  • t 分布随机近邻嵌入 (t-SNE) 非常适合可视化高维数据。它以遵守点之间相似性的方式将高维数据点嵌入到低维中。通常,您可以可视化低维点来查看原始高维数据中的自然簇。
  • 因子分析是一种对多元数据进行模型拟合的方法,它通过识别解释变量间观测到的相关性的基础因子来估计变量间的相互依赖关系。在这种无监督学习方法中,已测变量依赖数量较少的未发现(潜在)因子。由于每个因子可能共同影响几个变量,因此称为公因子。每个变量都假定依赖于公因子的线性组合,且系数称为载荷。每个已测变量还包括一个由独立随机变异性引起的成分,称为特定方差,因为它特定于一个变量。
  • 自编码器是经过训练的用于复制其输入数据的神经网络。自编码器可用于不同数据类型,包括图像、时间序列和文本。它们在许多应用中非常有用,例如异常检测文本生成图像生成图像去噪以及数字通信。自编码器通常用于降维。自编码器由两个较小的网络组成:编码器和解码器。在训练过程中,编码器从输入数据中学习一组特征,称为潜在表示。同时,解码器的训练目的是基于这些特征重新构造数据。
自编码器检测到图像(白色背景、黑色圆点图案和红色 r)中的异常(红色 r)。

使用自编码器的基于图像的异常检测。

关联规则

关联规则学习可识别大型数据库中变量之间的有趣关系。例如,在交易数据中,关联规则可用于识别哪些项目最可能被用户一起购买。关联规则挖掘中使用的算法包括:

  • Apriori 算法。这种算法通过执行广度优先搜索来识别数据中的频繁项目集,然后从这些项目集中派生关联规则。
  • 等效类聚类和自下而上的格型遍历 (ECLAT) 算法。这种算法使用深度优先搜索策略来查找频繁项目集。

关联规则在购物篮分析中最常见,但也可用于预测性维护。例如,基于不同传感器的数据,可以使用算法来识别故障模式并创建规则来预测组件故障。

其他应用无监督学习的方法包括半监督学习和无监督特征排名。半监督学习可减少有监督学习中对标注数据的需求。应用于整个数据集的聚类会在标注数据和未标注数据之间建立相似性,并且标签会传播到先前未标注的相似簇成员。无监督特征排名在没有给定预测目标或响应的情况下为特征分配得分。

为什么无监督学习如此重要

无监督学习是机器学习人工智能的主要领域,它在探索和理解数据方面发挥着至关重要的作用。与依赖标注数据来训练模型的有监督学习不同,无监督学习处理未标注数据,这使其在标注数据通常成本高、耗时或不切实际的真实场景中非常有价值。

通过揭示数据中隐藏的模式、结构和关系,无监督学习使企业和研究人员能够获得以前无法获得的有意义的深入信息。无监督学习中的常见任务包括模式识别、探索性数据分析、分割、异常检测和特征约简。

有监督学习和无监督学习的区别

有监督学习涉及基于标注数据集训练模型以执行分类或回归。这意味着每个训练示例都与一个输出标签配对。它使用已知的数据集(称为训练数据集)和已知的输入数据(称为特征)以及已知的响应来训练模型以进行预测。有监督学习的一个示例是根据房间的大小和数量等特征预测房价。常见的机器学习模型线性回归、逻辑回归、k 最近邻 (KNN) 和支持向量机深度学习模型也是用大型标注数据集训练的,它们通常可以直接从数据中学习特征,而无需手动提取特征。

相反,无监督学习处理的是未标注数据。无监督学习算法尝试在没有任何先验知识的情况下学习数据的底层结构。无监督学习的主要目标是发现输入数据中隐藏的模式或内在结构。无监督学习的一个示例是在不知道是什么水果的情况下根据颜色、大小和味道的相似性对水果进行分组。常见的无监督学习算法包括 k 均值层次聚类等聚类方法,以及主成分分析 (PCA) 等降维方法。

由于缺失标注数据,无监督学习结果通常不如有监督学习结果准确。然而,获取标注数据需要人工干预,并且往往相当耗时,在某些情况下甚至无法获得标注数据,例如对于生物数据。真实值标注还可能需要专业知识,尤其是在标注复杂信号而不是常见物体的图像时。

机器学习方法:无监督学习(聚类)和有监督学习(分类和回归)。

有监督学习和无监督学习是机器学习的不同类型。

无监督学习的示例

无监督学习无需预定义标签即可识别隐藏的模式和关系,这种能力使其成为各种应用中不可或缺的工具,包括:

  • 探索性数据分析:无监督学习方法广泛用于探索数据以揭示隐藏的内在结构,并从中提炼深入信息。例如,因子分析可用于分析同一行业内的公司是否经历类似的每周股票价格变化。
  • 异常检测:无监督学习方法,如孤立森林和高斯混合模型 (GMM),用于检测异常。
  • 医学成像:聚类是一种无监督学习方法,对于图像分割非常有用。聚类算法可以应用于医学图像,并基于像素密度、颜色或其他特征对医学图像进行分割。医生可以使用这些信息来识别感兴趣区域,例如区分健康组织和肿瘤,或将大脑图像分割成白质、灰质和脑脊液区域。
  • 基因组学和生物信息学:遗传聚类和序列分析在生物信息学领域也有应用。例如,聚类可用于识别基因表达谱之间的关系。 
  • 推荐系统:奇异值分解 (SVD) 等无监督学习方法用于协作过滤来分解用户-项目交互矩阵。常见的视频流平台使用这种方法向个人用户推荐内容。
  • 自然语言处理 (NLP):自然语言处理中,无监督学习方法用于主题建模、文档聚类和构建 AI 语言模型等任务。

无监督学习在不同领域有不同应用。通过揭示隐藏的模式和关系,无监督学习使工程师和研究人员能够作出明智的决策。随着数据继续呈指数级增长,无监督学习的重要性和影响只会继续扩大。

使用 MATLAB 进行无监督学习

MATLAB® 使您能够创建从数据准备到模型评估和部署的无监督学习管道:

使用 MATLAB 访问和浏览数据,对数据进行预处理,应用无监督学习算法,评估结果以提炼深入信息并共享这些深入信息。

使用 MATLAB 的扩展无监督学习工作流。

数据准备

您可以通过编程方式清洗数据,也可以使用低代码数据清洗器预处理文本数据实时编辑器任务进行交互式数据准备和自动代码生成。

聚类

MATLAB 支持所有常见的聚类算法,如 k 均值、层次聚类、DBSCAN 和 GMM。使用 Fuzzy Logic Toolbox™,您还可以对数据集执行模糊 c 均值聚类。

您也可以使用数据聚类实时编辑器任务以交互方式执行 k 均值和层次聚类。指定聚类算法、簇数和距离度量。该任务计算簇索引并显示聚类数据的可视化。

实时编辑器中数据聚类任务的用户界面,具有生成的二维散点图 (PCA)。

使用数据聚类实时编辑器任务的 k 均值聚类。(参阅 MATLAB 文档。)

降维

MATLAB 支持所有常见的降维方法,包括 PCA、t-SNE 和因子分析。您可以使用内置函数将这些方法应用于您的数据。对于 PCA,您还可以使用降维实时编辑器任务以交互方式执行这些步骤。

实时编辑器中降维任务的用户界面,以及生成的碎石图。

使用实时编辑器任务进行降维。(参阅 MATLAB 文档。)

使用 MATLAB,您还可以使用拉普拉斯分数对用于无监督学习的特征进行排名。

结果评估

您可以使用散点图、树状图轮廓图来可视化簇以评估聚类结果。您还可以通过使用 evalclusters 函数评估数据簇的最佳数量来评估聚类结果。要确定将数据划分为特定数目的簇的良好程度,可以使用不同的评估标准(例如间距或轮廓)来计算索引值。

为了降维,您可以使用散点图、碎石图和双标图来检查结果。使用降维实时编辑器任务,您可以确定解释固定百分比数据(如 95% 或 99%)的方差所需的成分数量。

按活动的着色分组:跑、走、跳舞、坐、站。

使用 t 分布随机近邻嵌入 (t-SNE) 将具有 60 个原始维度的高维数据的散点图降低到二维。(请参阅 MATLAB 代码。)