k-means聚类方法及其Python实现
0. k-means算法简介
k-means算法由MacQueen在1967年提出。是一种经典的基于划分的聚类方法。
划分方法(Partitioning Method)是基于距离判断样本相似度,通过不断迭代将含有多个样本的数据集划分成若干个簇,使每个样本都属于且只属于一个簇,同时聚类簇的总数小于样本总数目。
该方法需要事先给定聚类数以及初始聚类中心,通过迭代的方式使得样本与各自所属类别的簇中心的距离平方和最小,聚类效果很大程度取决于初始簇中心的选择。
K-means算法接受输入量k,然后将n个数据样本的样本集D划分为k个簇以便使所获得的聚类满足:
(1)同一簇中的数据样本相似度较高,而不同簇中的数据样本相似度较小。
(2)聚类相似度是利用各簇中数据样本的均值所获得一个“簇中心”(引力中心)来进行计算的。
1. k-means算法工作原理
- 数据样本分类
从D中任意选择k个数据样本作为初始簇中心。对于所剩下其它数据样本,则根据它们与这些簇中心的相似度(距离),分别将它们分配给与其最相似的簇中心所代表的簇。 - 簇中心的调整
计算每个所获新簇的簇中心(该簇中所有数据样本的均值) - 不断重复这一过程直到标准测度函数开始收敛为止
一般标准测度函数都采用均方差。
假设待聚类的数据样本集 D D D ,将其划分为 k k k 个簇,簇 C C C的中心为 Z Z Z,定义准则函数 E E E:
E = ∑ i = 1 k ∑ D i s ∈ C i D i s 2 ( Z i , D i s ) E=\sum^{k}_{i=1}\sum_{D_{is}\in C_i} Dis^2(Z_i,D_{is}) E=i=1∑kD

本文详细介绍了k-means聚类算法的工作原理,包括其如何通过迭代划分数据集,以及如何通过计算样本与簇中心的距离来优化聚类。此外,还展示了如何在Python中使用sklearn库实现k-means算法,以对鸢尾花数据进行聚类分析。

3万+

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



