
持续分享:机器学习、深度学习、python相关内容、日常BUG解决方法及Windows&Linux实践小技巧。
如发现文章有误,麻烦请指出,我会及时去纠正。有其他需要可以私信我或者发我邮箱:zhilong666@foxmail.com
机器学习是一种能够让计算机在不接收显式编程的情况下自主学习的技术。在机器学习的各种算法中,k-means算法是一种常见的聚类算法,它可以将一组数据分成多个不同的类别,并且属于同一类别的数据彼此之间具有高度的相似性。
本文将详细讲解机器学习十大算法之一 “K-means”

目录
k-means算法是一个迭代聚类算法,主要包括以下几个步骤:
一、简介
k-means算法早在1957年就被发明了,最早由J. MacQueen提出 。后来,Lloyd(1982年)、Hartigan(1975年)、Forgy(1965年)等学者对此算法进行了修正和改进。这个算法已被广泛应用于数据挖掘、模式识别、图像处理等领域,它可以用来识别数据集之间的模式,因此是一种十分实用的机器学习算法。
二、发展史
k-means算法是基于传统的聚类分析技术而发展起来的。聚类分析在早期主要应用于社会学、心理学和生物学等领域,用来发现自然类或发现结果变量。
k-means算法的思想具有很强的几何直觉,最早是由Lloyd于1957年提出,并用于电话网络分割应用,它的主要思想是通过迭代方法将数据聚成k个类别,每个类别由一个中心点表示。
Lloyd的k-means算法的初始版本可以被描述如下:
-
随机选择k个点,作为初始的k个聚类的中心。
-
将每个点分配到距离最近的聚类中心所代表的聚类。
-
针对每个聚类重新计算聚类中的所有点的平均值,作为新的聚类中心。
-
重复步骤2和3,直到聚类中心不再发生变化或者是经过了预定的迭代次数。
在Lloyd算法之后,Hartigan和Wong提出了两个改进的k-means算法,分别是k-means++和k-medoids。
k-means++算法的主要思想是在选择初始点时尽可能的均匀分布整个数据集。在k-medoids算法中,每个聚类的中心不是由聚类内的所有点的平均值计算而成,而是由聚类内的某个代表点计算而成,这个代表点也称为medoids。
现在,k-means算法已经成为了一种十分流行地聚类算法,也被广泛应用于各个领域。
三、算法原理详解
k-means算法是一个迭代聚类算法,主要包括以下几个步骤:
-
随机选择k个数据点作为初始聚类中心。
-
对于剩下未被选择的数据点,将其与k个聚类中心距离找到最接近的那个,并将其加入该聚类。
-
根据新的数据点的加入更新聚类中心。
-
重复上述过程,直至聚类中心不再发生变化为止或达到预设的迭代次数。

本文详细介绍了机器学习中的K-means算法,包括算法的历史、工作原理、步骤、功能、Python代码示例以及优缺点。K-means是一种迭代的聚类算法,常用于数据挖掘和图像处理等领域,但需要预先设定类别数量k,并且对初始中心点的选择敏感。
https://blog.youkuaiyun.com/Code_and516?type=blog
最低0.47元/天 解锁文章
4万+

被折叠的 条评论
为什么被折叠?



