社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

无监督机器学习算法:综述

CreateAMind • 1 月前 • 124 次点击  
An Unsupervised Machine Learning Algorithms:Comprehensive Review

无监督机器学习算法:综述

https://www.researchgate.net/publication/368983958_An_Unsupervised_Machine_Learning_Algorithms_Comprehensive_Review


摘要:

机器学习(ML)是一种数据驱动的策略,其中计算机从数据中学习而无需人工干预。杰出的机器学习应用被用于各种领域。在机器学习中,有三种类型的学习问题:监督、无监督和半监督学习。无监督学习技术和算法的例子包括 Apriori 算法、ECLAT 算法、频繁模式增长算法、使用 k-means 的聚类、主成分分析。对象基于它们相同的属性被分组。聚类算法被分为两类:层次聚类和划分聚类。在过去的十年中,许多无监督学习技术和算法被创建,其中一些是众所周知且常用的无监督学习算法。无监督学习方法在包括计算机视觉、语音识别、自动驾驶汽车的创造和自然语言处理在内的学科中已经看到了很多成功。无监督学习消除了对标记数据和人工特征工程的要求,使得标准的机器学习方法更加灵活和自动化。无监督学习是本调查报告的主题。

关键词:机器学习,无监督学习,聚类,无监督算法。


以下是几个无监督学习如此重要的原因。

  • 存在大量未标记的数据。

  • 数据标记是一项耗时且需要人工干预的操作。

  • 然而,机器学习可以用来驱动相同的过程,使所有参与者的编码变得更容易。

  • 它可以用来研究未知或未处理的数据。

  • 在处理海量数据集和模式检测时,它非常方便。


A. 文献综述
许多研究人员对无监督学习(UL)技术进行了调查。参考文献 [8] 调查了无监督学习文献。他们的研究包含了 49 项研究。无监督学习模型等同于监督学习(SL)模型,并且模糊 C-均值(Fuzzy C-means)和模糊 SOM(Fuzzy SOMs)在所有无监督学习方法中表现最好。他们的工作集中在用于软件故障预测的无监督学习模型上。参考文献 [4] 使用文献扫描分析了监督学习和无监督学习研究。他们优先考虑了 2015 年至 2018 年间发表的、涉及或使用监督和无监督机器学习方法的研究工作。该调查仅包括 k-means、层次聚类和 PCA。参考文献 [9] 调查了无监督学习多向模型、算法及其在化学计量学、神经学、社交网络分析、文本挖掘和计算机视觉中的应用。他们的调查专门分析了无监督多向数据。参考文献 [10] 调查了文献——本研究调查了时间序列聚类技术。早期研究的独特性和局限性也被探讨,同时还有前瞻性的研究领域。时间序列聚类应用也被列出。这篇文献综述聚焦于时间序列聚类方法。参考文献 [11] 调查了描述聚类技术和方法的无监督和半监督聚类。作者给出了外部和内部聚类有效性度量。他们的工作帮助了研究人员,尽管他们的文献综述仅限于算法和聚类。

B. 动机与贡献
无监督算法被广泛用于完成数据挖掘工作;它们根据学习需求被单独或分组讨论。关于监督算法的文献研究往往很少关注无监督算法。作者分析了 2018 年至 2022 年间的 35 篇论文,发现大多数集中在无监督学习技术上。本综述聚焦于 2018 年至 2022 年间开发的无监督机器学习技术。


2. 无监督学习
在监督学习中,数据科学家向系统提供标记数据,例如标记为猫的猫的照片,以便它可以通过示例进行学习。在无监督学习中,数据科学家仅仅给出照片,而由系统来检查数据并确定它们是否是猫的图像。无监督机器学习需要大量数据 [12]。在大多数情况下,监督学习的工作原理类似,随着添加更多示例,模型变得更加准确。当数据科学家使用数据集来训练算法时,无监督学习过程就开始了。这些数据集不包含标记或分类的数据点。学习算法的目的是在数据集中找到模式,并根据这些模式对数据点进行评分。聚类、关联、异常检测和自编码器问题是四种类型的无监督学习挑战,如图 2 所示。

在猫的照片这个案例中,无监督学习系统可能会学习识别像胡须、长尾巴和可伸缩爪子这样的显著特征。无监督学习就是人类学习识别和分类他们所思考的事物的方式。让我们假设你以前从未吃过番茄酱或辣酱 [13]。如果给你两瓶“未标记”的番茄酱和两瓶“未标记”的辣椒酱,并要求你品尝它们,你将能够辨别出这两者之间的区别。即使你不知道这两种酱料的名字(一种酸,另一种辣),你也能够识别出它的特征。通过更频繁地品尝它们,你可以对味道有更好的感觉。很快,仅通过品尝,你就能够根据食物所含酱料的量对食物进行分类。区分这两种酱料的特定品质以及该组的营养成分可以通过研究风味来发现。为了对它们进行分类,你不需要知道酱料或食物的名称。或者,你可以将一种称为甜酱,另一种称为辣酱。机器使用无监督学习来寻找模式并类似地对数据点进行分类。以同样的方式,监督学习将需要有人在事先告知你酱料的名称和风味 [14], [15]。聚类算法的工作流程如图 3 所示。

A. 无监督学习的类型

1) 聚类

将项目分类成组的实践被称为聚类或聚类分析。聚类可以分为几种形式,包括划分、层次、重叠和概率。数据被划分,以便每条信息可能只属于一个聚类 [16]。排他性池(Exclusive pooling)是它的另一个术语。K-means 体现了划分。在层次聚类中,每个数据点是一个聚类。通过两个最近聚类之间的迭代连接,聚类数量被减少。它用于在重叠的模糊集中组织数据 [17], [18]。图 4 显示了聚类的例子。每个点可以被分配到两个或多个具有不同隶属度的类别。在这种情况下,数据将被配对一个合适的隶属度值,例如 K-Means 聚类。最后,概率分布被用来在概率聚类中生成聚类 [19]。根据它们如何运作,聚类可以分为三个类别,如图 5 所示。

根据它们如何运作,聚类可以分为三个类别,如图 5 所示。

  • 排他性聚类(Exclusive Clustering):顾名思义,完全聚类规定一个数据项或对象只能存在于一个聚类中 [14]。

  • 层次聚类(Hierarchical Clustering):层次聚类 [20] 试图建立聚类的层次结构。凝聚和分裂层次分组是层次集合的两种形式。凝聚使用自底向上的方法,首先将每个数据点视为一个单独的组,然后随着它们在层次结构中向上推进,合并成对的组。凝聚是分裂的对立面。当你向下移动结构时,每个数据点从一个单独的组开始,然后分裂。

  • 重叠聚类(Overlapping Clustering):你可以使用重叠分组将一个数据点分成两个或多个组 [21]。

2) 关联
关联规则学习(ARL)的无监督学习方法被用来揭示海量数据集中变量之间的关联。与特定的机器学习方法不同,ARL 可以接受非数值数据点。简而言之,ARL 关注的是特定变量是如何联系在一起的。例如,购买摩托车的人更有可能购买头盔 [22]。通过形成这些类型的联系,有可能赚钱。假设购买产品 X 的消费者也购买产品 Y,在线商店可以向任何购买产品 X 的人推荐产品 Y。在内部,在这种情况下,使用语句来学习关联规则。这些断言可能会突出显示不同数据集之间的联系。如果/当模式或关系被识别时,会使用支持度和信任度。媒体决定了 if/then 连接在数据库中出现的频率。if/then 关系被确定为合法的次数被称为置信度。关联规则允许购物车分析和在线使用挖掘 [23]。

3) 异常检测
任何发现数据集中异常值的程序都被称为异常检测。这些异常可能暗示不寻常的网络活动、故障传感器或需要在分析前清理的数据。当数据模型超出或偏离通常的模型时,这就是异常。例如,不寻常的网络流量模式表明受损系统正在将敏感数据传输到未经授权的服务器。异常是通过寻找或预测与标准模型不同的数据点来识别或预测的 [24], [25]。入侵检测、保险、欺诈检测和军事监视只是异常检测用途中的一小部分。

4) 自编码器
自编码器是一种无监督学习方法,它使用神经网络来进行表示学习。我们将创建一个具有瓶颈的神经网络架构,迫使网络使用原始输入的压缩知识表示 [26]。如果输入属性不相关,这种压缩和随后的重建将会很复杂。如果数据具有一定的结构(例如,输入属性之间的相关性),这种结构可以通过驱动输入通过网络瓶颈来学习和利用。信息瓶颈的存在是我们网络设计的一个基本特征;没有它,我们的网络可能会通过将输入数据传递通过网络来快速学习存储输入数据 [27]。自编码器算法组件如图 6 所示。


3. 关于机器学习无监督算法的综述
我们全面分析了关于无监督学习方法、算法以及无监督学习中使用的性能度量的文献。本文阐述了各种无监督学习研究的优点和缺点。这项研究将通过识别新的研究领域和填补无监督学习中的研究空白,帮助学术界走向新的方向 [28]。作为本项目的一部分,研究人员将能够比较无监督学习算法的效率和功效。算法被用于实现聚类和关联规则学习。用于应用关联规则的一些最重要的算法包括先验(Apriori)方法、ECLAT 算法和频繁模式增长(FP)算法。像 k-均值聚类和主成分分析(PCA)这样的算法使聚类成为可能,如图 7 所示 [29], [30]。

A. Apriori 算法
Apriori 算法的创建考虑到了数据挖掘。它可以用于从具有许多事务的数据库中提取数据,例如包含超市顾客购买物品列表的数据库。它用于检测顾客在购物车分析中更可能一起购买的商品集合,并识别药物的不良反应 [31]。

Apriori 算法的步骤如下:

  • 步骤 1:确定事务数据库对项目集的支持度,并选择最低程度的支持度和可靠性。

  • 步骤 2:选择任何可用的、支持度值优于最小或指定支持度值的媒体。

  • 步骤 3:在这些子组中找到所有置信度值高于阈值或最小置信度的规则。

  • 步骤 4:按规则的提升度升序排列规则。

1) 优点

  • 这是一个简单的算法。

  • 在大数据集上,该算法的连接和修剪阶段易于实现 [32]。

2) 缺点

  • 与其他算法相比,Apriori 算法速度较慢。

  • 因为它多次检查数据库,整体性能可能会受到影响。

  • Apriori 算法的空间和时间复杂度为 O(2D),这是非常高的。数据库的水平宽度由 D 表示 [33]。

3) 应用

  • 在教育领域,基于特征和专业提取录取学生数据挖掘中的关联规则 [34]。

  • 例如,在医学行业,患者数据库分析。

  • 在林业中,来自森林火灾的数据被用来分析森林火灾的频率和强度。

  • 许多公司采用 Apriori,例如亚马逊在其推荐系统中,以及谷歌在其自动完成功能中。

B. ECLAT 算法
ECLAT(等价类聚类和自底向上格遍历)是一种数据挖掘技术,用于获取元素集挖掘并定位频繁项。因为 Apriori 技术利用水平数据结构,它必须多次扫描数据库以找到频繁出现的对象。另一方面,ECLAT 采用垂直方法,并且通常更快,因为它只需要扫描数据库一次 [35]。


ECLAT 算法的步骤如下:

  • 步骤 1:对于数据库中的每个项,获取事务 ID 的列表。我们在此步骤中扫描整个数据库。包含元素 a 的事务列表是元素 a 的 t 事务 ID 列表。

  • 步骤 2:通过将元素 a 的标题列表与元素 b 的标题列表相交,创建一个新的事务列表,其成员是涉及元素 a 和 b 的事务。

  • 步骤 3:将条件 a 应用于数据库中的其他项,并重复步骤 1。

  • 步骤 4:对剩余的项重复上述过程。

1) 优点

  • Eclat 方法比 Apriori 算法使用更少的内存,因为它使用了深度搜索技术 [36]。

  • Eclat 的方法不需要重复输入扫描来计算单个支持度值。

  • 与扫描原始数据集的 Apriori 不同,Eclat 算法搜索最近创建的数据集。

2) 缺点

  • Eclat 算法使用更多的 RAM 来构建中间事务 ID 集。

3) 应用

  • 例如,在医学行业,患者数据库分析。

  • 在林业中,来自森林火灾的数据被用来分析森林火灾的频率和强度 [36]。

C. 频繁模式增长算法
Apriori 算法已通过频繁模式(FP)增长算法得到改进。该算法以模式或频繁树(FT)结构的形式表示数据库。使用这种常规树提取最常见的模式。Apriori 技术必须搜索数据库 n + 1 次(其中 n 是最扩展模型的长度),但 FP 增长方法需要两次扫描 [37]。频繁模式(FP)增长算法的步骤如下:

  • 步骤 1:第一步是运行数据库扫描,查看是否存在任何项集的出现。这与 Apriori 方法的第一步相同。数据库中一个项目集合的支持计数或频率就是一组事物的频率。

  • 步骤 2:构建 FP 树。从构建树的根开始。单词 null 用于表示根。

  • 步骤 3:重新扫描数据库并遍历所有事务是下一阶段。检查第一个事务以查看它包含哪些项。计数最高的东西先被取,然后是计数最低的项,等等。它表示树分支由按计数降序排列的事务组件集合构建而成。

  • 步骤 4:检查数据库中的下一个事务。对象集按计数升序排列。如果来自该事务的一组组件已经存在于根中,则该事务分支将共享一个公共前缀。这表示标准项集链接到该事务中另一个项集的新节点。

  • 步骤 5:随着事务的进行,项集计数增加。随着基于事务建立和连接新节点,熟悉节点和新节点的计数都增加一。

  • 步骤 6:现在必须提取构建的 FP 树。最低节点以及最弱节点之间的关系首先被评估。最低节点表示频率模型 1 的长度。然后走经由 FP 树的路径。条件模式基指的是这条路径或这些路径。依赖模型基于包含 FP 树中从最低节点(后缀)开始的前缀路径的二级数据库。

  • 步骤 7:计算路径中项集的数量以创建条件 FP 树。悬挂 FP 树考虑通过支持度标准的项目集合。

  • 步骤 8:通过计算路径中项集的数量创建条件 FP 树。悬挂 FP 树考虑通过支持度阈值的物品组。

  • 步骤 9:条件 FP 树生成频繁模式。

1) 优点

  • 与 Apriori 相比,这种方法只需要扫描数据库两次,而 Apriori 在每次迭代时都要检查事务 [38]。

  • 这种方法避免了项匹配,从而加快了过程。

  • 由于数据库被压缩在内存中,提取长和短频繁模式是高效且可扩展的。

2) 缺点

  • FP 树比 Apriori 更庞大且构建更复杂,并且可能相当昂贵。

  • 如果数据库非常庞大,该方法可能无法适应共享内存。

3) 应用

  • 聚类、分类、软件问题识别、推荐和其他问题都可以用频繁模式(FP)增长算法解决 [38]。

D. 使用 K-Means 的聚类
在数据科学中,通常使用几轮 k-means 方法。k-means 聚类算法根据相似性将组件分成组。K-mean 聚类工作流的图形表示如图 9 所示。

字母 k 表示组的数量。因此,如果 k 是 3,将有 3 个分组 [39], [40], [41]。这种聚类算法将未标记的数据集分成具有可比质量的独特聚类,对于每个数据点。诀窍是定位聚类中心,即 K 个中心。每个组将有一个聚类中心。在呈现新数据点后,算法将使用欧几里得距离等度量来识别数据点属于哪个聚类。聚类中心使用 K-mean 聚类技术计算,该技术迭代直到获得最佳聚类中心。组的数量可能是已知的。它的另一个术语是平面聚类算法。在 K-means 中,算法找到的组数由字母“K”表示 [42]。

以下步骤将演示 K-Means 聚类方法的工作原理:

  • 步骤 1:我们必须首先指定此方法应产生的组数(K)。

  • 步骤 2:接下来,选择 K 个随机数据点并将它们分配给其中一个组。简而言之,它根据包含的数据点数量对数据进行排序。

  • 步骤 3:现在,我们将计算聚类中心。

  • 步骤 4:重复步骤 1-3,直到你发现最佳聚类中心,即,将数据点分配到不变的分组。

    • 4.1:首先,计算数据点与聚类中心之间的平方距离总和。

    • 4.2:现在,我们必须将每个数据点分配到与其他数据点(聚类中心)最近的组。

    • 4.3:最后,通过对聚类中所有数据点求平均值,计算各组的聚类中心。

1) 优点

  • 它简单易懂且易于实践。

  • 如果我们有大量的变量,K-mean 会比层次聚类更快。

  • 当聚类中心被重新计算时,实例的聚类可能会被修改。

  • K-mean 聚类提供比层次聚类更小的组。

2) 缺点

  • 不可能确定聚类的数量或 k 的值。

  • 网络中的组数(k 值)和其他初始输入受输出的强烈影响。

  • 数据输入的顺序显著影响最终结果。

  • 它对大小的变化相当敏感。如果我们使用归一化或标准来缩放数据,结果将显著不同——最终结果 [42]。

  • 如果嵌套具有复杂的几何形状,则不建议进行嵌套。

3) 应用

  • 市场细分

  • 文档分组和图片分割

  • 图像压缩

  • 客户细分

  • 动态数据趋势分析

E. 主成分分析(PCA)
PCA 是一种降维方法,它通过将许多变量转换为仍然保留“大型集”中大部分数据信息的较小群组,来降低大数据集的维度。在降低数据集中变量数量的同时,精度损失是不可避免的,但降低维度的答案是牺牲一些准确性来换取简单性。因为较小的数据集更容易研究和可视化,并且没有不必要的变量需要分析,所以数据分析对于机器学习算法来说更容易和更快 [43]。K-mean 聚类工作流的图形表示如图 9 所示。


总而言之,PCA 的目标是在数据集中减少变量的数量,同时保留尽可能多的信息。

以下步骤将演示 PCA 方法的工作原理:

  • 步骤 1:获取数据集

  • 步骤 2:在结构中进行数据表示。

  • 步骤 3:数据的标准化

  • 步骤 4:计算 Z 的协方差。

  • 步骤 5:计算特征值和特征向量。

  • 步骤 6:对特征向量进行分类。

  • 步骤 7:计算新特征或主成分。

  • 步骤 8:从新数据集中移除不太重要或不相关的特征。

1) 优点

  • PCA 通过降低输入的维度,帮助我们更好地泛化机器学习模型。这有助于我们克服“维度灾难” [44]。

  • 计算简单。PCA 基于线性代数,计算机可以快速求解。

  • 其他机器学习算法将被加速。机器学习算法在关键组件上训练,而不是在原始数据集上训练,并且收敛更快。

  • 减少了与高维数据相关的挑战。在处理高维数据时,基于回归的算法很容易过度适应。我们通过利用 PCA 预先最小化训练数据集的大小,来避免预测算法的过拟合。

2) 缺点

  • 关键组件的可解释性低。主成分是原始数据特征的线性组合,但它们不容易理解。例如,在计算主成分后,识别数据集最相关的属性是具有挑战性的。

  • 降维与信息损失之间的权衡。降维是有益的,但它是需要代价的。信息损失是 PCA 不可避免的一个方面 [44]。

3) 应用

  • PCA 主要用于人工智能应用,如计算机视觉、图像压缩和降维方法。

  • 如果数据足够庞大,它也可以用来寻找隐藏模型。金融、数据挖掘、心理学和更多领域采用 PCA [45]。


4. 比较分析

所以,这里是对最流行的无监督分类算法的比较。已经创建了几种策略,其中一些已在前面的章节中讨论过。基于现有事实和理论研究,表 1 比较了各种经常使用的无监督算法。这种比较表明,没有哪一种单一的学习算法能击败其他算法。


5. 结论

无监督学习是众多类型的机器学习之一。在无监督学习中,模型在未标记的数据集上训练。分组、关联、异常检测和自动编码器也包括在内。在过去十年中,各种无监督学习技术被提出。无监督学习有许多应用,从入侵检测到信息检索、疾病诊断和蛋白质序列搜索。这篇文献综述聚焦于无监督学习方法、算法以及用于评估无监督学习模型性能的众多评估指标。它还概述了每项研究的优点和缺点。这份调查报告将帮助学术界确定使用哪种无监督学习算法或方法来解决特定问题。此外,哪些研究领域需要更多关注。本研究范围仅限于常用的无监督学习技术。只有过去五年内的研究才应被强调。未来我们可能会操作更多的算法和方法来改进目标定位。



原文链接:https://www.researchgate.net/publication/368983958_An_Unsupervised_Machine_Learning_Algorithms_Comprehensive_Review

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/201277