• OpenCV官方文档 理解k


    理解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 ;igg[J = sum_{All: Red_Points}distance(C1,Red\_Point) + sum_{All: Blue\_Points}distance(C2,Blue\_Point)igg]

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

    Final Result

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

    额外的资源

    1. 机器学习课程视频讲座,教授Andrew Ng(一些图片取自这)
  • 相关阅读:
    [置顶] Guava学习之Lists
    Study notes for B-tree and R-tree
    uva 620 Cellular Structure
    [置顶] 程序员面试之道(《程序员面试笔试宝典》)之看着别人手拿大把的offer,不淡定了怎么办?
    HDU 4046 Panda (ACM ICPC 2011北京赛区网络赛)
    有N个正实数(注意是实数,大小升序排列) x1 , x2 ... xN,另有一个实数M。 需要选出若干个x,使这几个x的和与 M 最接近。 请描述实现算法,并指出算法复杂度
    C# 未能加载文件或程序集“MySQLDriverCS..." 错误解决
    LA 3942 Remember the Word(前缀树&树上DP)
    原根-快速求解一个数的原根
    线程初步了解
  • 原文地址:https://www.cnblogs.com/fonttian/p/9162839.html
Copyright © 2020-2023  润新知