K-Means算法
这是基于划分的聚类算法,该算法效率较高,对大规模数据进行聚类时被广泛使用。
基本思路:把数据集划分成k个簇,每个簇内部的样本非常相似,不同簇之间的差异非常大。
K-Means算法是一个迭代算法,先随机选择k个对象,每个对象代表了起中心,对于剩下的对象,将其赋给最近的簇,然后重新计算簇的中心。不断重复,直到准则函数收敛。
算法:
1 数据预处理
l 连续属性:标准化,如
l 离散属性:进行二进制编码。引入调节因子,平抑离散属性的影响比连续属性的大的差别。
2 确定初始质心(有的是随机选择)
① 选择第一个作为第一个质心
② 其他样本与第一个质心欧几里得距离最远的为第二个
③ 不断重复上面两步,确定k个质心。
3 指派样本
计算每个样本点与这K个的距离,将其归类到其中。
4 更新质点
5 停止准则
最大迭代次数
差异容忍度