1、kmeans
kmeans, k-均值聚类算法,能够实现发现数据集的 k 个簇的算法,每个簇通过其质心来描述。
kmeans步骤:
(1)随机找 k 个点作为质心(种子);
(2)计算其他点到这 k 个种子的距离,选择最近的那个作为该点的类别;
(3)更新各类的质心,迭代到质心的不变为止。
Q:如何选择 k 值?
A: 根据 k 取不同的值时,模型性能曲线图。
横坐标是聚类数目k,纵坐标是各点到距离中心的距离和。在拐点处的K(距离和下降速率变慢)作为选择的值。
2、kmeans++
因为,kmeans的初始种子的随机找的,这样,算法的收敛快慢与初始值关系非常大,于是,kmeans++ 主要针对初始值的选取进行改进。
初始值选取,如下:
1、也是随机选取一个种子;
2、计算其他点到这个种子的距离;
3、选择这些较大的距离的那个点,替代随机选取的那个种子,作为新的种子点(这里的较大的距离,可以理解为maxDistance*随机数,随机数可以选取0.5-1;);
4、迭代1-3步,直到选取k个种子为止。
3. 评估聚类效果
轮廓系数法SC
轮廓系数(Silhouette Coefficient))结合了聚类的凝聚度(Cohesion)和分离度(Separation),用于评估聚类的效果。该值处于-1~1之间,值越大,表示聚类效果越好。
计算步骤:
(1)选择一个点