**********************K-means算法****************************
步骤:
1.从训练数据中随机选取k个初始点,作为k个初始簇的中心点
2.计算每个点到中心点的欧式距离,将其归并到距离最近的簇中,直至所有点划分完成
3.计算每个簇新的中心点
4.如果相对于原来中心点没有变化或者变化数值小于给定阈值,则算法结束,获得k个簇,否则以计算出的新的中心点为新的簇的中心,继续进行2,3操作,直至满足终止条件
*******************关于k值的选择*********************************
方法一:使用轮廓系数
轮廓系数(Silhouette Coefficient)结合了聚类的凝聚度(Cohesion)和分离度(Separation),用于评估聚类的效果。该值处于-1~1之间,值越大,表示聚类效果越好。
具体计算方法如下:
对于其中的一个点 i 来说:
计算 a(i) = average(i向量到所有它属于的簇中其它点的距离)
计算 b(i) min (i向量到所有非本身所在簇的点的平均距离)
那么 i 向量轮廓系数就为: