k - means聚类gydF4y2Ba
k - means聚类gydF4y2Ba是传统的,简单的gydF4y2Ba机器学习gydF4y2Ba在测试数据集上训练,然后能够使用a对新数据集分类的算法gydF4y2Ba主要的gydF4y2Ba,gydF4y2Ba 先验定义的簇数。gydF4y2Ba
机器学习的一个目标是获得对数据进行无监督学习的技术。这种数据分析在许多需要对数据进行分类的应用中非常有用,比如在大样本中识别癌细胞,用相似定义聚类单词以提高搜索引擎的准确性,识别学生学习成绩中的异常值以更好地改进习惯,甚至在战场上探测地雷gydF4y2Ba[2]gydF4y2Ba.gydF4y2Ba
使用分类建立棒球队gydF4y2Ba
想象一下,一位高中棒球教练想要利用数据分析来预测潜在的新队员是出色的、平庸的还是令人沮丧的。gydF4y2Ba
他有他的球队球员的数据:位置、经验、打击率、上垒率和每场比赛的盗垒次数。他也有一些他正在考虑招募的球员的数据。他该如何选择一名新球员来填补当前球队的技术空白呢?gydF4y2Ba
内容gydF4y2Ba
k - means算法gydF4y2Ba
这种聚类算法根据算法已有的信息将数据分成最适合的组。数据被分隔在gydF4y2Ba 不同的星系团,通常选择在空间上彼此相距足够远gydF4y2BaEucledian距离gydF4y2Ba,能够产生有效的数据挖掘结果。每个星团都有一个中心,叫做gydF4y2Ba重心gydF4y2Ba,然后根据特征与质心的距离,将一个数据点聚到一个特定的聚类中。gydF4y2Ba
k - means算法迭代gydF4y2Ba最小化gydF4y2Ba每个数据点与其质心之间的距离,以便找到所有数据点的最优解。gydF4y2Ba
- 选取数据集中的随机点作为质心。gydF4y2Ba
- 每个数据点之间的距离gydF4y2Ba 质心被计算和存储。gydF4y2Ba
- 根据距离计算,每个点被分配到最近的聚类中gydF4y2Ba
- 更新新的聚类质心位置:类似于在点位置中寻找平均值gydF4y2Ba
- 如果质心位置发生变化,则从步骤2开始重复这个过程,直到计算出的新中心保持不变,这表明群集的成员和质心现在已经设置好了。gydF4y2Ba
找到所有点之间的最小距离意味着数据点被分离,以形成最紧凑的聚类,其中的方差最小。换句话说,没有其他迭代能够在质心和其中的数据点之间有更低的平均距离。gydF4y2Ba
技术分析gydF4y2Ba
上面定义的K-means算法的目标是最小化angydF4y2Ba目标函数gydF4y2Ba,在这个例子中是gydF4y2Ba平方误差gydF4y2Ba函数。gydF4y2Ba
K-means聚类算法的目标函数为误差平方函数:gydF4y2Ba
在那里,gydF4y2Ba
是点与点之间的欧氏距离,gydF4y2Ba ,一个质心,gydF4y2Ba ,遍历所有gydF4y2BakgydF4y2Ba分gydF4y2Ba 集群,gydF4y2BangydF4y2Ba集群。gydF4y2Ba
简单地说,目标函数试图选择质心,使其最小化到属于其各自群集的所有点的距离,以便质心更能象征周围的数据点群集。gydF4y2Ba
伪代码gydF4y2Ba
12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29gydF4y2Ba |
|
为什么用平方误差函数而不是绝对误差呢?这是因为平方误差比绝对误差具有更好的数学性质。有关这些属性的进一步参考,请参阅此gydF4y2Ba博客gydF4y2Ba通过本坤”。gydF4y2Ba
复杂性gydF4y2Ba
虽然算法看起来很简单,但找到问题的最优解决方案的观察gydF4y2BadgydF4y2Ba维或gydF4y2BakgydF4y2Ba集群是gydF4y2Ba赋权gydF4y2Ba.然而,如果gydF4y2BakgydF4y2Ba和gydF4y2BadgydF4y2Ba都是固定的,问题能及时解决吗gydF4y2Ba 使用劳埃德算法,一种常见的k聚类算法,其中gydF4y2BangydF4y2Ba要聚集的实体数量。gydF4y2Ba[6]gydF4y2Ba.然而,对于良好聚类的数据,该算法的运行时间可能非常小,因为目标函数的最小化将很快发生。gydF4y2Ba
因为算法计算的是每个gydF4y2BakgydF4y2Ba每次迭代聚类中心和它们各自的数据点,几次迭代就足以做进一步的调整,不值得在时间复杂度上进行权衡。换句话说,由于进一步的迭代不会改变大多数数据点的分配,但仍然需要计算它们的距离,如果以收敛为目标,算法会变得低效。为此,我们开发了几种不同的k-means聚类算法,以加快后期的过程;这些变化包括使用gydF4y2Ba三角不等式gydF4y2Ba,在别人。gydF4y2Ba
例子gydF4y2Ba
在对数据集应用k-means聚类之前,数据必须从对象的特征转化为可分析的数值数据。gydF4y2Ba
分类棒球运动员gydF4y2Ba
棒球教练如何使用k-means聚类来预测新兵是否优秀?玩家的每个特征都可以用a来表示gydF4y2Ba特征向量gydF4y2Ba.通过将特征转化为特征向量中的数字,玩家将在向量空间中具有可比性,从而能够更好地量化他们的差异。gydF4y2Ba
教练对现有球员和新的潜在球员都有相同类型的信息。通过对整个数据点集使用k-means聚类,他可以计算出他当前已知水平(出色、平庸、平庸)的哪些球员与新球员最接近,以及哪些新球员将填补他的球队的空缺。gydF4y2Ba
何时使用K-Means聚类gydF4y2Ba
K-Means聚类是一种快速、稳健且简单的算法,当数据集以线性方式相互独立或分离良好时,它能给出可靠的结果。当指定集群中心的数量时,最好使用它,因为数据中显示了定义良好的类型列表。然而,重要的是要记住,如果K-Means聚类包含大量重叠的数据,如果欧氏距离不能很好地度量潜在的因素,或者如果数据是嘈杂的或充满了离群值,那么K-Means聚类的性能可能就不好gydF4y2Ba[7]gydF4y2Ba.gydF4y2Ba
参考文献gydF4y2Ba
- Brickley D。gydF4y2Ba1 k_overviewgydF4y2Ba.从检索gydF4y2Bahttps://www.flickr.com/photos/danbri/6233990550/in/photolist-auSQcG-87Yxj7-EmVCps-ptEDsu-7m1WFX-5EFMse-i4x1v-egRfqk-81wUmZ-a4D73j-87Yxiy-tty5TD-bAhHzE-5tMAuK-7MfnED-7rbggn-7rfbmm-rq7j4f-a1hTYE-gxCMpH-57XUAW-a6Nx34-8hAC1D-ounzPd-dybf7L-fCTKB3-dybeZd-dy5Mut-dybfdb-ow6s3X-wcCF9s-cqjRDS-rrXXND-dybfjm-fCBeqB-dy5MGx-fCTM13-nouGAk-71tzae-4xwxcC-k2tddi-8kfyKH-8hABZB-7y4a3Y-ou3Zst-ftDTEu-osZ261-oun8p5-cSNeMy-4eJiRWgydF4y2Ba
- 奈克,A。gydF4y2Ba聚类算法的应用gydF4y2Ba.从检索gydF4y2Bahttps://sites.google.com/site/dataclusteringalgorithms/clustering-algorithm-applicationsgydF4y2Ba
- 彼得森,J。gydF4y2Bak - meansgydF4y2Ba.从检索gydF4y2Bahttp://pypr.sourceforge.net/kmeans.html#k-means-examplegydF4y2Ba
- 没有,N。gydF4y2Bak - means聚类gydF4y2Ba.检索,2016年5月2日,从gydF4y2Bahttps://en.wikipedia.org/wiki/K-means_clusteringgydF4y2Ba
- Matteucci, M。gydF4y2Bak - means聚类gydF4y2Ba.2016年6月14日,从gydF4y2Bahttp://home.deib.polimi.it/matteucc/Clustering/tutorial_html/kmeans.htmlgydF4y2Ba
- Inaba m(1994)。加权Voronoi图和随机化在基于方差的k聚类中的应用。gydF4y2Ba美国计算机学会计算几何研讨会gydF4y2Ba,gydF4y2Ba10日gydF4y2Ba, 332 - 339。gydF4y2Ba
- 奈克,a。gydF4y2Bak - means聚类算法gydF4y2Ba.2016年6月14日,从gydF4y2Bahttps://sites.google.com/site/dataclusteringalgorithms/k-means-clustering-algorithmgydF4y2Ba