K均值聚类

K-均值聚类算法

1. 什么是K均值聚类算法

K均值聚类(k-means)是基于样本集合划分的聚类算法。K均值聚类将样本集合划分为k个子集,构成k个类,将n个样本分到k个类中,每个样本到其所属类的中心距离最小,每个样本仅属于一个类,这就是k均值聚类,同时根据一个样本仅属于一个类,也表示了k均值聚类是一种硬聚类算法。

2:K均值聚类算法的过程

2.1 k均值聚类的算法过程

输入:n个样本的集合

输出:样本集合的聚类

过程:

(1)初始化。随机选择k的样本作为初始聚类的中心。

(2)对样本进行聚类。针对初始化时选择的聚类中心,计算所有样本到每个中心的距离,默认欧式距离,将每个样本聚集到与其最近的中心的类中,构成聚类结果。

(3)计算聚类后的类中心,计算每个类的质心,即每个类中样本的均值,作为新的类中心。

(4)然后重新执行步骤(2)(3),直到聚类结果不再发生改变。

K均值聚类算法的时间复杂度是O(nmk),n表示样本个数,m表示样本维数,k表示类别个数。
K均值聚类_第1张图片

3:K均值聚类算法的习题
3.1 例题

五个样本的集合,使用K均值聚类算法,将五个样本聚于两类,五个样本分别是(0,2)(0,0)(1,0)(5,0)(5,2)。

K均值聚类_第2张图片

3.2 初始化

初始化。随机选择2个样本作为初始聚类的中心。
K均值聚类_第3张图片

3.3 聚类

对样本进行聚类。计算每个样本距离每个中心的距离,将每个样本聚集到与其最近的中心的类中,构成两类。
K均值聚类_第4张图片
相同的方法对剩余两个点进行聚类,结果如下:
K均值聚类_第5张图片

3.4 寻找新的类中心

计算新的类中心。对新的类计算样本的均值,作为新的类中心。
K均值聚类_第6张图片

3.5 再次聚类

对样本进行聚类。计算每个样本距离每个中心的距离,将每个样本聚集到与其最近的中心的类中,构成新的类。
K均值聚类_第7张图片
使用相同的方法对其余四个点进行聚类,结果如下:
K均值聚类_第8张图片

3.6 结果

第二次聚类结果与第一次聚类结果相同,则聚类停止。得到最终的结果。

3.7 例题

若选择不同的初识聚类中心,会出现什么结果。K均值聚类_第9张图片
选择不同的初始中心,会得到不同的聚类结果。

4:K均值聚类算法的实现

4.1 K均值聚类算法

导入聚类库:

你可能感兴趣的:(机器学习)