首页 > 人工智能 > 机器学习 > 使用聚类自动分割数据 - KDnuggets
在本文中,我们将介绍一种这样的算法,称为 K-Means 聚类,如何衡量其有效性,以及如何选择你生成的分段集合。
作者:Bilal Mahmood,Bolt。

我们执行的最常见分析之一是在数据中寻找模式。我们可以将客户划分为哪些市场细分?如何在用户网络中找到个体聚类?
使用机器学习可以回答这些问题。即使你不知道要寻找哪些特定分段,或者拥有非结构化数据,你也可以使用各种技术以算法方式发现数据中涌现的模式,并正确地对结果进行分段或分类。
在本文中,我们将介绍一种这样的算法,称为 K-Means 聚类,如何衡量其有效性,以及如何选择你生成的分段集合。

在数据分类中,有两种类型的机器学习可用。
使用监督学习,当你已经知道哪些输入映射到哪些离散分段时,你可以预测结果的分类。但在许多情况下,你实际上不会预先定义这样的标签——你只会得到一组没有任何定义分段的非结构化数据。在这些情况下,你需要使用无监督学习从无标签数据中推断分段。
为清晰起见,让我们以分类 T 恤尺码为例。
如果我们得到如图 1A 所示的数据集,我们将有一组输入宽度(X1)和长度(X2),以及它们对应的 T 恤尺码,比如小号(蓝色)和大号(绿色)。在这种情况下,我们可以使用逻辑回归等监督学习技术来绘制清晰的决策边界,并分离各自的 T 恤类别。
但如果我们得到的是如图 1B 所示的数据集,我们将拥有一组输入:宽度(X1)和长度(X2),但没有对应的 T 恤尺码标签。在这种情况下,我们需要使用无监督学习技术,如 K-Means 聚类,来找到相似的 T 恤集合,并将它们聚类到相应的小号(蓝色圆圈)和大号(绿色圆圈)类别中。
在许多现实世界的应用中,你会遇到如图 2A 所示的情况,因此了解如何真正在非结构化数据中发现结构是很有帮助的。

为了在非结构化数据中发现结构,K-Means 聚类为无监督机器学习提供了一种直接的应用方法。
K-Means 聚类的工作原理正如其名——将数据中的相似观测值分配到一组聚类中。它通过 4 个简单且可重复的步骤运行,其中你迭代地评估一组聚类,这些聚类为每个观测值提供最接近的均值(平均)距离。由此可知,如果一组观测值彼此距离较近,它们很可能属于同一个聚类。
让我们逐步走一遍这个算法。第一步是随机初始化一组“质心”(即上图 2A 中的 X),即聚类的中心。你可以将这些质心设置在任意位置作为起点,但建议将它们初始化在与观测值匹配的随机点集上。然后,你将使用这些质心来对观测值进行分组,按照距离最近的原则为每个观测值分配一个质心(图 2B 中的蓝色和绿色圆圈)。
这将初始化一组聚类,将数据中的观测值分组到距离同一质心最近的簇中。但这些初始聚类不太可能在第一次分配时就完美拟合。因此,下一步是将聚类移动到更接近拟合的位置。具体做法是找到每个当前聚类中观测值的均值或平均值,并将质心移动到该位置(图 2C)。然后,根据与新质心的最近距离,将所有观测值重新分配到新的聚类中(图 2D)。
你可以重复这个聚类分配/求均值/移动质心的过程,直到达到收敛。一旦你找到了一组聚类,其中所有观测值都找到了它们最近的质心,聚类在评估平均距离时将不再移动。那些被分组的观测值将被聚类在一起,使它们在输入上具有相似性(由它们与同一质心的接近程度表明),你就为你的数据找到了合适的聚类拟合。

K-Means 聚类是为数据找到良好聚类拟合的有效方法。但问题仍然存在:你如何决定起始的聚类数量?
当你不知道非结构化数据集的标签或分配时,就需要使用像 K-Means 聚类这样的无监督学习技术。因此,数据本身不会固有地告诉你聚类的正确数量(或标签)。
那么,你如何比较数据的不同聚类数量呢?最简单的方法是衡量聚类的误差,其定义如下:

该函数通过测量观测值(X)与其各自分配到的质心(μ)之间的距离,来评估聚类的误差。对每个相应质心呈现最低距离或最低总体误差的聚类集合,能为你的数据聚类提供最佳拟合。
回到我们关于T恤尺码的例子,我们如何使用这个误差函数来确定正确的聚类数量?一种方法是上面图3中所示的“肘部法则”。通过绘制数据误差相对于你初始化的聚类数量的关系图,你可以寻找误差变化率最陡的点。在图3中,这似乎是在2个聚类处,表明我们或许应该采用小号与大号的划分。
这种方法的注意事项是,你的误差曲线中通常并没有一个明显的拐点。因此,并不总是能够使用肘部法则来选择适当的聚类数量。
在这种情况下,建议依赖直觉或你所试图解决问题的背景。例如,对于T恤尺码,你可能知道自己想将T恤分为5个尺码——特小号、小号、中号、大号和特大号。这并不一定是数据会明确告诉你的,但基于你的直觉,你可以初始化5个质心来找到适当的聚类。
总体而言,在心中有了一组聚类集合后,K-Means Clustering 提供了一种迭代且有效的算法,用于发现数据中的结构。
这篇博客文章基于 Andrew Ng 在 Coursera 上的 Stanford 机器学习课程笔记中所教授的概念。
Bilal Mahmood 是 Bolt 的联合创始人。他此前在 Optimizely 领导数据仓库和分析工作,并热衷于帮助公司将数据转化为行动。
Bolt 是一个预测性营销层,帮助公司连接、预测并个性化其用户体验。该平台自动跨分析和支付解决方案连接用户画像,并利用机器学习来预测和改善任何转化或流失事件
转载声明:本文为转载整理,原文版权归原作者及原站点所有。
原文来源:KDnuggets
原创地址:https://www.kdnuggets.com/2017/02/automatically-segmenting-data-clustering.html#comment-185028
原文作者:https://www.facebook.com/kdnuggets;如有侵权,请联系管理员删除。