简介
K-Means属于划分聚类。其工作原理为根据初始化的聚类中心信息,计算每个样本到这些中心的距离,可以判断每个样本均归属于某个类簇,更新聚簇中心信息,重新计算每个样本到新的聚类中心的距离,重新划分样本到新的聚类中心对应的类中,重复进行,直到满足终止条件。
实现
已知N个样本点,使用K-Means将其聚类的步骤:
Step1:确定聚类的个数 k ,并制定k个聚类的中心
C
1
,
C
2
,
.
.
.
,
C
k
C_1,C_2,...,C_k
C1,C2,...,Ck
Step2:计算每个样本点
S
i
S_i
Si到k个中心的距离,并将该点归入最近的
C
j
C_j
Cj类中,其中i∈(1,N),j∈(1,k)
Step3:重新计算k个类簇的中心点,更新原有中心点的位置
C
1
,
C
2
,
.
.
.
,
C
k
C_1,C_2,...,C_k
C1,C2,...,Ck
Step4:重复步骤Step2、Step3,直到中心点位置不再变化或变化幅度小于约定阈值,或者达到预定义的最大循环次数,结束循环。得到最终的聚类结果
K-Means的优缺点
-
优点
- 原理简单,容易理解,容易实现
- 聚类结果容易解释
- 聚类结果相对较好 缺点
- 分类个数k需要事先指定,且不同的k值,聚类的结果相差较大
- 初始的k个类簇中心对最终结果有影响,选择不同,结果可能不同
- 样本点较多时,计算量较大
- 对异常值敏感,对离散值需要特殊处理
-
能识别的类簇仅为球状,非球状的聚类效果很差