一、简述K-means算法的原理及工作流程?
原理:
K-means是一个无监督的聚类算法。它的主要目的是对同一组数据对象进行分类。其原理是基于样本间的相似性来聚类分析的,即将所有样本分为K个簇,使得同一个簇间中样本相似性最高,不同簇间样本相似性最低。
工作流程:
1.初始化:随机选择K个样本作为初始化簇心
2.分配:对于每个样本,计算其到每个簇心的距离,并将分配到距离最短的簇中
3.重新计算簇心:重新计算每个簇的簇心
4.重复步骤2和步骤3,直至簇心不在发生变化,或者达到预定的聚类次数。
二、K-means聚类中的K如何取?
确定K的值是K-means聚类算法中最重要的问题之一,一般可以采用以下两种方法来确定K的合适取值:
-
手肘法:通过计算不同K值下聚类结果的SSE(误差平方和)或SSB(组间平方和)值,观察这些指标与K值的关系,找到SSE或SSB下降速度趋于平稳的K值,即所谓的“肘部”位置,作为合适的聚类数。
-
轮廓系数法:通过计算不同K值下聚类结果中每个样本的轮廓系数,综合考虑聚类结果的紧密度和分离度,找到轮廓系数达到最大值时对应的K值,作为最佳聚类数。
需要注意的是,以上方法只是参考,无法保证一定能够得到最优的K值,实际应用中可能需要结合业务需求和实际场景综合考虑。
三、常见的距离度量方式有那些?
常见的距离度量方式有以下几种:
-
欧几里得距离(Euclidean Distance):是指在m维空间中两个点之间的真实距离,即勾股定理。在实际应用中,欧几里得距离被广泛应用于K-means算法中。
-
曼哈顿距离(Manhattan Distance):是指在m维空间中两点之间的城市街区距离,即横、纵坐标绝对值的和。
-
闵可夫斯基距离(Minkowski Distance):是指