在使用K-Means算法时,您可能会注意到一个比较突出的要求:您需要在运行算法之前,准确地告知它要找出多少个聚类,即$K$值。这与监督学习不同,在监督学习中,类别数量通常由数据中的标签决定。而在无监督学习中,由于我们没有标签,因此确定最佳分组数量($K$)是这项工作的挑战之一。选择合适的$K$为何重要?如果$K$值过小,算法可能会将不同的数据组合并在一起。如果$K$值过大,它可能会将自然形成的组拆分成更小、意义不大的碎片。找到合适的$K$有助于确保算法发现的聚类能有效反映数据中固有的结构。那么,如何选择一个好的$K$值呢?没有一个单一的完美方法,这通常需要一些尝试和判断。以下是几种适合初学者的常见方法:使用背景知识有时,您可能已经对数据或正在尝试解决的问题有一些了解。例子: 如果您正在对零售业务的客户数据进行聚类,您可能有一个业务目标,就是将客户分为特定数量的组,例如“高消费客户”、“偶尔购物者”和“不活跃用户”。在这种情况下,先前的知识表明$K=3$可能是一个合理的起始点。这并非总是可行,特别是在处理新数据集时,但请务必考虑现有知识能否指导您的选择。可视化检查(适用于低维度数据)如果您的数据只有两到三个特征(维度),您通常可以绘制图表并进行目视检查,以了解存在多少个自然分组。{"layout": {"title": "二维数据的可视化检查", "xaxis": {"title": "特征 1"}, "yaxis": {"title": "特征 2"}, "showlegend": false, "width": 500, "height": 400, "margin": {"l": 40, "r": 20, "t": 50, "b": 40}}, "data": [{"x": [1, 1.5, 1.2, 3, 3.5, 3.2, 5, 5.5, 5.2], "y": [1, 0.8, 1.3, 3, 2.8, 3.3, 1, 1.2, 0.7], "mode": "markers", "type": "scatter", "marker": {"color": "#228be6", "size": 8}}]}这是一个具有两个特征的数据点的简单散点图。从视觉上看,这些点似乎形成了大约三个不同的组。“虽然有用,但这种方法有局限性。大多数数据集的特征数量远远超过能轻松可视化的程度。此外,视觉判断可能带有主观性。”肘部法则这是估算$K$值的最常见的定量方法之一。核心思想是针对不同范围的$K$值(例如,从$K=1$到$K=10$)多次运行K-Means算法。对于每个$K$值,您会计算一个分数,以衡量聚类的表现如何。一个标准分数是簇内平方和 (WCSS),有时也称为惯性。WCSS衡量什么: 它计算每个数据点与其所属簇的中心点(质心)之间的平方距离之和。解读: 更小的WCSS值意味着数据点平均而言更接近其所属簇的中心。这表明聚类更紧密、更紧凑。随着您增加聚类数量($K$),WCSS通常会减小,因为数据点会更接近更多的质心。如果$K$等于数据点数量,WCSS将变为零,但这并不是有用的聚类。肘部法则涉及绘制每个$K$值的WCSS图。然后您需要寻找图上的一个“肘部”点。这是WCSS下降速度开始明显放缓的点,形成一个看起来像手臂肘部的角度。{"layout": {"title": "选择K的肘部法则", "xaxis": {"title": "聚类数量 (K)"}, "yaxis": {"title": "WCSS (惯性)"}, "showlegend": false, "width": 500, "height": 400, "margin": {"l": 60, "r": 20, "t": 50, "b": 40}}, "data": [{"x": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "y": [300, 180, 90, 65, 50, 40, 35, 30, 28, 25], "mode": "lines+markers", "type": "scatter", "marker": {"color": "#1c7ed6"}, "line": {"color": "#1c7ed6"}}]}显示不同聚类数量($K$)的WCSS值的图表。“肘部”出现在$K=3$附近,此时增加更多聚类在减少WCSS方面的收益递减。肘部点对应的$K$值通常被认为是聚类数量的良好候选值。它代表一种平衡:增加更多聚类几乎不会显著减少簇内方差。重要提示: 肘部并非总是清晰明确。有时图表可能会显示平滑曲线,这会使选择变得更模糊。在这种情况下,您可能需要将此方法与其他技术结合使用,或者更多依赖背景知识或分析的具体目标。总结为K-Means选择合适的聚类数量($K$)是无监督学习中的重要一步。尽管像可视化检查(对于低维度数据)和肘部法则这样的方法提供了有价值的指导,但通常没有一个单一的“正确”答案。最佳$K$值取决于您的数据以及您希望通过聚类实现什么。尝试这些方法建议的几个不同$K$值,并评估所得聚类的质量和可解释性,是一种常见做法。