K 均值聚类是一种用于数据聚类的无监督学习算法,它将未标记的数据点分组到不同的组或簇中。
它是机器学习中最常用的聚类方法之一。与监督学习不同,该算法使用的训练数据是未标记的,即数据点没有定义的分类结构。
虽然存在多种类型的聚类算法,包括排他性、重叠性、层次性和概率性,但 K 均值聚类算法是排他性或“硬”聚类方法的一个示例。这种分组形式规定一个数据点只能存在于一个集群中。这种类型的集群分析通常用于数据科学中的市场细分、文档聚类、图像分割和图像压缩。K 均值算法因其高效、有效、简单等特点,在聚类分析中被广泛应用。
K 均值是一种基于质心的迭代聚类算法,它根据质心之间的距离将数据集划分为相似的组。质心或簇中心是簇内所有点的平均值或中位数,具体取决于数据的特征。
K 均值聚类是一个迭代过程,用于最小化数据点与其集群质心之间距离的总和。
K 均值聚类算法通过使用数学距离度量(通常为欧几里得距离)将数据点划分至集群。其目标是最小化数据点与其分配集群之间距离的总和。距离质心最近的数据点被分到同一类别。K 值越高或集群数量越多,表示集群越小,细节越多,而 k 值越低,表示集群越大,细节越少。
传统的 K 均值聚类算法需要几个步骤。第一步是初始化 k 个质心,其中 k 指为特定数据集选择的集群数。这种方法采用随机选择或初始质心采样的方法。
下一步包括基于期望最大化机器学习算法的两步迭代过程。1期望步骤根据距离(通常是欧几里得距离)将每个数据点分配给其最近的质心。最大化步骤则计算每个簇中所有点的均值,并重新分配簇中心或质心。这个过程不断重复,直到质心位置达到收敛点或达到最大迭代次数。
K 值聚类算法虽然简单,但对初始条件和异常值十分敏感。优化质心初始化和集群的数量 k 对于获得最有意义的集群至关重要。通过使用评估指标和初始质心采样的方法,来评估和优化算法的聚类组件。
优质集群至少包含两个属性:
这些属性是通过最小化簇内距离和最大化数据集中所有数据点的簇间距离来实现。换句话说,簇之间越紧凑、越孤立,效果越好。K 均值聚类分析算法旨在最小化误差平方和 (SSE)。2计算每个点到其最近质心的欧几里得距离平方的 SSE,可以通过测量每个簇内的总体变化来评估簇分配的质量。
集群评估指标用于检查集群质量,并从不同角度分析聚类结果。这有助于选择最佳集群数量和质心初始化。以下评估指标是衡量聚类内和聚类间距离的常用方法。
K 均值聚类算法旨在选择最小化惯性的质心或簇中心,惯性是一种基于距离试题评估数据集聚类效果的指标。惯性通过测量数据点与其质心之间的距离,对该距离进行平方运算,然后将簇中数据点的平方相加计算得出。这一和或惯性值就是簇内距离。总和越低越好,因为这意味着簇中的数据点更加紧凑或更加相似。3
第二个属性通过 Dunn 指数来衡量。Dunn 指数表示最小簇间距离和最大簇内距离之间的关系。簇间距离较高的簇质量更高,因为这意味着簇彼此之间尽可能不同。4
在使用 K 均值时,优化非常重要,能够获得最佳聚类结果。
由于随机初始化步骤,K 均值算法具有不确定性。这意味着,即使在相同的数据上执行两次算法,集群分配的结果也可能会有所不同。为了获得最佳的聚类结果,正确选择初始质心和最佳集群数量可以提高 K 均值算法的准确性和速度。
每个集群都由一个质心表示,质心是代表集群中心的数据点。K 均值通过最小化集群中数据点及其质心或 K 平均值之间的距离,将相似的数据点分组到集群中。K 均值算法旨在最小化数据点与其分配的集群质心之间的总距离。该算法以迭代方式运行,初始分区选择会对最终的集群结果产生很大影响。
随机初始化可能产生不一致的结果。质心初始化方法可减少这些风险。NUS Computing 的一项研究解释并比较了这些方法,如常用的 K 均值++ 和随机初始化。5
K 均值++ 是一种 K 均值算法,它优化了初始聚类各个质心的选择。由研究人员 Arthur 和 Vassilvitskii 开发的 K 均值++ 改进了最终簇分配的质量。6
使用 K 均值方法进行初始化的第一步是从数据集中选择一个质心。对于每个后续质心,计算每个数据点与其最近的集群中心的距离。根据数据点距离先前选定的最近质心的比例,选择下一个质心。该过程将以迭代方式执行,直到初始化所需数量的集群中心。
这是一篇来自 IBM Developer 的教程,介绍了使用 K 均值++ 方法进行初始化。
理想情况下,K 均值算法会以迭代方式执行,直到达到最佳集群数量。一旦质心达到收敛点,迭代次数就达到上限。
实现最佳簇数量的方法之一是肘部法。肘部法是一种通过图形方法来确定 K 均值聚类算法中最优簇数的技术。它测量每个数据点与其簇中心之间的欧几里得距离,并根据“簇内平方和”(WCSS)变化趋于平缓的位置来选择簇的数量。该值表示每个簇内的总方差,并与簇的数量一起绘制在图表中。7
肘部法的第一步是计算每个簇 (K) 的 WCSS 值。然后,沿 y 轴绘制 WCSS 值,并在 x 轴上绘制簇的数量。随着簇数量的增加,绘图中的点应形成一致的模式。从该模式中,可以生成最佳簇数量的范围。8在决定簇数量时,还需考虑计算成本。簇数量越多,所需的处理能力越高,尤其是对于大型数据集。
这种方法并不一定是最优的,尤其是在处理高维或形状不规则的数据集时。另一种选择最佳簇数的方法是轮廓分析。9
K 均值聚类算法几乎应用于所有领域和行业。它通常适用于维度较少、数据为数值型且易于分割的机器学习数据。
研究人员已将 K 均值聚类与 CNN 和 RNN 等深度学习方法相结合,以提升计算机视觉、NLP 以及其他领域中各种机器学习任务的性能。以下是 K 值聚类应用的常见应用:
客户细分:根据反映相似性的共同特征将公司的客户划分为多个群组。这种策略使公司能够针对特定的集群或客户群开展特定的广告活动。
文档分类:为文档分配到不同的类或类别的过程。许多组织使用此方法来审核内容。查看此 Watson Discover 文档,以构建文档分类器。
图像分割:一种计算机视觉技术,可将数字图像划分为不同的像素集。本研究深入探讨了如何使用 K 均值模型来帮助识别医学图像中的边界。10
推荐引擎:网络上的各种应用程序都使用推荐引擎。主成分分析和 K 均值聚类技术常用于为电子商务企业的产品推荐系统。11
若要进行实践学习,请查看此教程,它介绍了在 Python 中使用 IBM Watson Studio 在 watsonx.ai 上执行 K 均值聚类的基础知识。
本教程使用 scikit-learn (sklearn) 库中的模块来执行 K 均值聚类。该模块包含内置优化技术,可通过其类参数进行操作。模块的类是这样的:
class sklearn.cluster.KMeans(n_clusters=8, *, init='k-means++', n_init='auto', max_iter=300, tol=0.0001, verbose=0, random_state=None, copy_x=True, algorithm='lloyd')12
这些参数包括要形成的集群数量和要生成的质心数量 (n_clusters)。有两种初始化方法可用:K 均值++ 和 random。它还包括用于设置最大迭代次数的属性。每次迭代首先将数据集分区为 n_clustersparameter 的值。
这些库用于生成测试数据集并执行聚类分析:
import pandas as pd import sklearn import matplotlib.pyplot as plt import seaborn as sns import numpy from sklearn.cluster import KMeans from sklearn.datasets import make_blobs from sklearn.decomposition import PCA from sklearn.preprocessing import StandardScaler
K 均值聚类在机器学习应用中常见优点包括:
简单:K 均值聚类法易于理解和实践。它是最受欢迎的无监督机器学习技术。
快速:K 均值聚类采用计算简单的迭代方法设计。与层次聚类相比,K 均值聚类算法更快,前者需要构建树状簇结构,并且计算所有数据点之间的成对距离。
可扩展:K 均值还易于扩展到大规模数据集,并且可以适用于不同形状和大小的簇,是簇分析的理想选择。与其他方法相比,由于其算法计算效率极高,它具有更强的可扩展性,更适合大型数据集。
与 K 均值聚类相关的一些常见挑战包括:
依赖输入参数:K 均值聚类依赖于正确设置的输入参数。初始化适当的质心和聚类数量对于获得有意义的聚类结果至关重要。不当的质心初始化可能会导致运行时间增加且集群分配质量低下。为了获得更好的聚类结果和更快的收敛时间,已经进行了大量的相关研究。
在某些数据集上可能表现欠佳:当数据集包含大小相似的簇,且没有明显的异常值或密度变化时,K 均值的表现出色。当数据集包含许多变化或维度很高时,K 均值的表现不是很差。与某些数据集假设不一致的数据可能会导致 K 均值生成低质量的簇。13例如,大小不均匀的簇可能会使质心偏向较大的簇,从而导致较小簇的偏差和错误分类。为了解决这个问题,可以使用诸如高斯混合节点等概率模型来泛化 K 均值。
显著的异常值影响:异常值对 K 均值聚类的结果有显著影响。不同的聚类应该相距很远,但不要过于分散,以免使数据点出现偏差。在应用 K 均值之前考虑数据假设非常重要。K 均值对异常值特别敏感,因为它通过对聚类的值取平均值来确定质心。这种敏感性使其很容易出现过度拟合的情况,从而将异常值纳入计算。
使用面向 AI 构建器的新一代企业级开发平台 IBM watsonx.ai,可以训练、验证、调整和部署生成式 AI、基础模型和机器学习功能。使用一小部分数据,即可在很短的时间内构建 AI 应用程序。
借助 IBM 业界领先的人工智能专业知识和解决方案组合,让人工智能在您的业务中发挥作用。
通过增加 AI 重塑关键工作流程和运营,最大限度提升体验、实时决策和商业价值。