理解k - means聚类
目标
在这一章中,我们将了解k - means聚类的概念,它是如何工作等。
理论
我们将这个处理是常用的一个例子。
t恤尺寸问题
考虑一个公司要发布一个新模型的t恤。 显然他们将不得不制造模型满足人们各种尺寸的大小不同。 所以公司的数据甚至身高和体重,并把它们放到图,如下:
公司无法为所有的尺寸制作衣服。 相反,他们把人分为小,中和大,只生产这3个模型来适合所有的人的只存。 这种分组方式将把人分为分成三组,而我们可以通过k - means聚类算法提供最好的3个尺寸,这将满足所有的人的需求。 不过如果数据显示三个尺寸并不合适,那么聚类算法也可以进行更多更合适的分类,列如五类。 检查下图:
它是如何工作的呢?
这个算法是一个迭代的过程。 我们将解释它一步一步的帮助下图片。
考虑一组数据如下(你可以认为这是T恤问题)。 我们需要集群数据分成两组。
步骤:1——算法随机选择两个重心,和(有时,任意两个数据作为重心)。
一步:2——它质心计算每个点的距离。 如果一个测试数据更加接近,那么数据标签贴上 0。 如果它是更接近1,然后贴上 1 (如果有更多的重心,贴上2,一个3等)。
在我们的例子中,我们将颜色0 a贴上了红色,和一个1与蓝色的标签。 以上操作后我们得到下面的图像。
一步:3——接下来,我们计算所有蓝色的平均分开点,红点,这将是我们新的重心。 这是和转移到新计算质心。 (记住,显示的图片是不正确的值,而不是真实的身材尺寸,该数据仅供演示)。
再一次,执行步骤2新重心和标签数据0 和 1。
所以我们得到结果如下:
现在- 2步和- 3步是迭代直到重心都是聚合不动点。(也可能停止根据我们提供的标准,如最大迭代数,或达到一个特定的准确性等等)。 这些点是测试数据及其对应的质心之间的距离之和最小。 或者只是,之间的距离之和和是最低的。
最终结果几乎看起来像下图:
这是一个直观的理解k - means聚类。 更多细节和数学解释,请阅读任何标准机器学习教科书或检查的额外资源的链接。 它只是一个顶层的k - means聚类。 有很多修改算法,如何选择初始质心,如何加快迭代过程等。
额外的资源
- 机器学习课程视频讲座,教授Andrew Ng(一些图片取自这)