集群分析

集群分析就是根据对象的特征对其进行分组,因此集群内相似度较高,集群间相似性较低。

什么是聚类?

集群分析就是对象分组,因此,与不同集群间的对象相似性相比,同一集群中对象之间的相似性更高。使用更精细化距离、数据点密度、图形或各种统计分布等标准将其分类为集群。集群分析应用广泛,包括无监督式机器学习、数据挖掘、统计、图形分析、图像处理,以及众多的物理及社会科学应用。

为何选择集群分析?

在对数据应用聚类算法时,数据科学家和其他人员使用聚类观察数据点落入哪些分组(或集群),从而从数据中获取重要见解。根据定义,无监督式学习是一种机器学习,能够在无原有标签并且更大限度减少人为干预的情况下,在数据集中搜索模式。聚类还可用于异常检测,以便查找不属于任何集群的数据点或异常值。

聚类可用于识别数据集中具有两个或多个变量数量的相似对象组。实际上,这些数据可能从营销、生物医学或地理空间数据库等许多其他地方收集。

如何进行集群分析?

需要注意的是,集群分析并非单一算法作业。相反,众多算法通常承担更广泛的分析任务,并且每种算法往往与其他算法大不相同。理想情况下,聚类算法能够创建集群内相似度非常高的集群,这意味着集群内的数据之间极其相似。此外,该算法能够创建集群间相似度更低的集群,这意味着每个集群包含的信息会尽可能与其他集群的大有不同。

因为有许多概念讲述集群应是什么或者应如何定义集群,因此也出现了许多聚类算法。事实上,截止到目前,已公布的聚类算法超过了 100 种。这些算法代表着一种用于机器学习处理无监督式数据的强大技术。设置一种专为特定类型的集群模型而构建和设计的算法,将其用于处理包含不同类型的集群模型的数据集时,通常会以失败而告终。

所有聚类算法中的共同线程是一组数据对象。但是,数据科学家和编程人员使用不同的集群模型,并且每个模型要求不同的算法。聚类或集群集通常被区分为硬聚类(每个对象属于或不属于某个集群)或软聚类(每个对象在某种程度上属于每个集群)。

这与所谓的服务器聚类完全不同,因为一台服务器暂时发生故障时,另一台服务器会接管工作,因此服务器聚类通常是一组服务器协同工作,从而为用户提供更高的可用性并减少宕机时间。

聚类分析方法包括:

  • K-Means 通过将几何点之间的距离均值最小化来查找集群。
  • DBSCAN 使用基于密度的空间聚类。
  • 频谱聚类是一种基于相似度图的算法,将数据点之间的最近邻关系建模为无向图形。
  • 层次聚类将数据分组为多层次的相关图形层次树,从最精细的层次(原始层)开始,一直到最粗略的层次。

聚类用例

随着可用聚类算法数量的不断增加,聚类成为解决一系列业务和组织类型的主要方法,并且其用例各有不同,这已不足为奇。聚类用例涉及生物序列分析、人类遗传聚类、医学影像组织聚类、市场或客户分割、社交网络或搜索结果分组推荐、计算机网络异常检测、自然语言处理文本分组、犯罪集群分析和气候集群分析。下面描述了其中一些示例

  • 网络流量分类。各组织寻求各种方法来了解进入其网站的不同流量类型,特别是对于垃圾内容以及来自机器人的流量的识别。聚类用于将流量源的共同特征分组在一起,然后创建集群,对流量类型进行分类和区分。这样一来,流量阻断更加可靠,同时能够获得推动所需来源流量增长的更佳见解。
  • 营销和销售。营销成功意味着以正确的方式将合适的人员或潜在客户定位为目标受众。聚类算法会可能基于购买可能性,将具有相似特征的人员分组在一起。定义这些群组或集群后,对他们进行测试营销就会变得更加有效,有助于完善信息以了解他们。
  • 文档分析。任何处理大量文档的组织都能在文档生成时进行高效且快速的整理,进而从中受益。这意味着能够理解文档中的深层主题,然后将其与其他文档进行比较。聚类算法会检查文档中的文本,然后将其划分到不同主题的集群中。这样一来,可以根据实际内容快速地整理这些文档。

数据科学家和聚类

如上所述,聚类是一种无监督式机器学习方法。机器学习可以处理庞大的数据量,使数据科学家能够将时间花费在分析已处理的数据和模型上,从而获得切实可行的见解。应用聚类算法时,数据科学家可以看到数据点落入哪些分组,从而利用聚类分析从我们的数据中获得一些有价值的见解。

借助 GPU 加速集群和图形分析

集群分析在各种应用程序中发挥着关键作用,但由于数据量不断增加,其正面临着计算挑战。解决计算难题的极具前景的解决方案之一,即使用 GPU 进行并行计算。

GPU 能够为加速数据密集型分析(特别是图形分析)提供很好的方法,因为它具有大规模并行性,并且显存访问带宽优势显著。GPU 的大规模并行架构包含数千个旨在同时处理多个任务的小核心,非常适合执行“对每个 X 执行 Y”的计算任务。这可应用于大型图形中的顶点或边缘集。

CPU 与 GPU 的区别。

集群分析是一个具有显著并行性的问题,可以通过使用 GPU 进行加速。NVIDIA 图形分析库 (nvGRAPH) 将在未来提供基于最小化平衡切割指标的频谱和层次聚类/分区技术。nvGRAPH 库作为 NVIDIA® CUDA® 工具包的一部分免费提供。如需详细了解图形,请参阅图形分析页面。

GPU 加速的端到端数据科学

基于 CUDA-X AI 创建的 NVIDIA RAPIDS 开源软件库套件使您完全能够在 GPU 上执行端到端数据科学和分析流程。此套件依靠 NVIDIA CUDA® 基元进行低级别计算优化,但通过用户友好型 Python 接口能够实现 GPU 并行化和高带宽显存速度。

RAPIDS cuML 的机器学习算法和数学基元遵循熟悉的类似于 scikit-learn 的 API。单块 GPU 和大型数据中心部署均支持 K-means、XGBoost 等主流算法。针对大型数据集,相较于同等功效的 CPU,这些基于 GPU 的实施方案能够以 10 到 50 倍的速度更快地完成任务。