OpenCV官方文档 理解k - means聚类

理解k - means聚类

目标

在这一章中,我们将了解k - means聚类的概念,它是如何工作等。

理论

我们将这个处理是常用的一个例子。

t恤尺寸问题

考虑一个公司要发布一个新模型的t恤。 显然他们将不得不制造模型满足人们各种尺寸的大小不同。 所以公司的数据甚至身高和体重,并把它们放到图,如下:

T-shirt Problem

公司无法为所有的尺寸制作衣服。 相反,他们把人分为小,中和大,只生产这3个模型来适合所有的人的只存。 这种分组方式将把人分为分成三组,而我们可以通过k - means聚类算法提供最好的3个尺寸,这将满足所有的人的需求。 不过如果数据显示三个尺寸并不合适,那么聚类算法也可以进行更多更合适的分类,列如五类。 检查下图:

People Grouped into Different Sizes

它是如何工作的呢?

这个算法是一个迭代的过程。 我们将解释它一步一步的帮助下图片。

考虑一组数据如下(你可以认为这是T恤问题)。 我们需要集群数据分成两组。

Test Data

步骤:1——算法随机选择两个重心,C1C2(有时,任意两个数据作为重心)。

一步:2——它质心计算每个点的距离。 如果一个测试数据更加接近C1,那么数据标签贴上 0。 如果它是更接近C21,然后贴上 1 (如果有更多的重心,贴上2,一个3等)。

在我们的例子中,我们将颜色0 a贴上了红色,和一个1与蓝色的标签。 以上操作后我们得到下面的图像。

Initial Centroid Selection and Data Collection

一步:3——接下来,我们计算所有蓝色的平均分开点,红点,这将是我们新的重心。 这是C1C2转移到新计算质心。 (记住,显示的图片是不正确的值,而不是真实的身材尺寸,该数据仅供演示)。

再一次,执行步骤2新重心和标签数据0 和 1。

所以我们得到结果如下:

New Centroid Calculated and Data Re-laballed

现在- 2步- 3步是迭代直到重心都是聚合不动点。(也可能停止根据我们提供的标准,如最大迭代数,或达到一个特定的准确性等等)。 这些点是测试数据及其对应的质心之间的距离之和最小。 或者只是,之间的距离之和C1 \leftrightarrow Red\_PointsC2 \leftrightarrow Blue\_Points是最低的。

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

最终结果几乎看起来像下图:

Final Result

这是一个直观的理解k - means聚类。 更多细节和数学解释,请阅读任何标准机器学习教科书或检查的额外资源的链接。 它只是一个顶层的k - means聚类。 有很多修改算法,如何选择初始质心,如何加快迭代过程等。

额外的资源

  1. 机器学习课程视频讲座,教授Andrew Ng(一些图片取自这)

转载于:https://www.cnblogs.com/fonttian/p/9162839.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值