10.5. 了解K-均值聚类

10.5.1. 目标

在本章中,我们将了解K-Means聚类的概念、工作原理等。

10.5.2. 理论

我们将用一个常用的例子来处理这个问题。

T恤尺寸问题

以一家公司为例,它将向市场推出一款新的T恤衫。显然,他们将不得不制造不同尺寸的模型,以满足各种尺寸的人。因此,该公司将人们的身高和体重数据制成图表,如下所示:

公司不能生产各种尺寸的t恤衫。取而代之的是,他们把人分为小、中、大三类,只生产这三款适合所有人的车型。通过k-means聚类可以将人分成三组,并且算法提供了最佳的3种规模,能够满足所有人的需求。如果没有,公司可以把员工分成更多的小组,可能是5个人,等等。检查下面的图像:

它是如何工作的?

该算法是一个迭代过程。我们将借助图像一步一步地解释。

考虑下面的一组数据(您可以将其视为t恤问题)。我们需要将这些数据分为两组。

步骤:1 -算法随机选择两个质心, \(C1\)\(C2\) (有时,任意两个数据作为质心)。

步骤:2 -它计算从每个点到两个质心的距离。如果测试数据更接近 \(C1\) ,则该数据被标记为“0”。如果它靠近 \(C2\) ,然后标记为“1”(如果有更多质心,则标记为“2”、“3”等)。

在我们的例子中,我们将所有“0”标记为红色,“1”标记为蓝色。所以在上面的操作之后我们得到了下面的图像。

步骤:3 -接下来我们分别计算所有蓝点和红点的平均值,这就是我们的新质心。那就是 \(C1\)\(C2\) 移到新计算的质心。(请记住,显示的图像不是真值,也不是真比例,它只是为了演示)。

再次执行步骤2,将新质心和标签数据设置为“0”和“1”。

我们得到如下结果:

Now Step - 2 and Step - 3 are iterated until both centroids are converged to fixed points. (Or it may be stopped depending on the criteria we provide, like maximum number of iterations, or a specific accuracy is reached etc.) These points are such that sum of distances between test data and their corresponding centroids are minimum. Or simply, sum of distances between \(C1 \leftrightarrow Red\_Points\) and \(C2 \leftrightarrow Blue\_Points\) is minimum.

\[minimize \;\bigg[J = \sum_{All\: Red_Points}distance(C1,Red\_Point) + \sum_{All\: Blue\_Points}distance(C2,Blue\_Point)\bigg]\]

最终结果如下:

所以这只是对K-Means聚类的直观理解。有关更多细节和数学解释,请阅读任何标准的机器学习课本或查看其他资源中的链接。它只是K-Means聚类的顶层。该算法在初始质心的选取、迭代过程的加速等方面有很多改进。

10.5.3. 额外资源

  1. Machine Learning Course 安得烈NG教授的视频讲座(一些图片取自此)

10.5.4. 练习