【 kmeans算法原理】
- 随机选取k个中心点
- 遍历所有数据,将每个数据划分到最近的中心点中(根据距离的大小进行划分,即计算每个样本点到所有中心点的距离,选择距离最小的那个)
- 计算每个聚类的平均值,并作为新的中心点
- 重复2-3,直到这k个中心点不再变化(收敛了),或迭代次数达到规定值
matlab函数调用:
[IDX,C,sumd,D] = kmeans(X,k,'distance','sqEuclidean','start','sample')
//距离度量为欧氏距离的平方,初始点从样本X中随机选择k个点
// IDX: 每个样本点所在的类别
// C: 所聚类别的中心点坐标位置(k*p,p为样本属性的维度)
//sumd: 每个类内各点到中心点的距离之和(1*k)
// D:每个点到各类中心点的距离(n*k)