K-Means常见面试题

++关于K-means在面试中常见的问题先汇总一下,下面分别详细说明。++ - **简述一下K-means算法的原理和工作流程** - **K-means中常用的到中心距离的度量有哪些?** - **K-means中的k值如何选取?** - **K-means算法中初始点的选择对最终结果有影响吗?** - **K-means聚类中每个类别中心的初始点如何选择?** - **K-means中空聚类的处理** - **K-means是否会一直陷入选择质心的循环停不下来?** - **如何快速收敛数据量超大的K-means?** - **K-means算法的优点和缺点是什么?** - **如何对K-means聚类效果进行评估?** --- # 1、原理和工作流程 **流程:** >1. 首先随机选取样本中的K个点作为聚类中心; >2. 分别算出样本中其他样本距离这K个聚类中心的距离,并把这些样本分别作为自己最近的那个聚类中心的类别; >3. 对上述分类完的样本再进行每个类别求平均,求解出新的聚类中心; >4. 与前一次计算得到的K个聚类中心比较,如果聚类中心发生变化,转过程b,否则转过程e; >5. 当质心不发生变化时,停止并输出聚类结果。 # 2、K-means中常用的到中心距离的度量有哪些? 曼哈顿距离、欧氏距离、余弦相似度 ![屏幕截图 20201104 152040.png](https://cos.easydoc.net/17082933/files/kh32nyli.png) # 3、K-means中的k值如何选取 **手肘法、轮廓系数法** # 4、其他小问题 ## 5、K-means算法中初始点的选择对最终结果有影响吗? 会有影响的,不同的初始值结果可能不一样 ## 6、K-means聚类中每个类别中心的初始点如何选择? (1)这k个点的距离尽可能远 (2)可以对数据先进行层次聚类(博客后期会更新这类聚类算法),得到K个簇之后,从每个类簇中选择一个点,该点可以是该类簇的中心点,或者是距离类簇中心点最近的那个点。 ## 7、K-means中空聚类的处理 (1)选择一个距离当前任何质心最远的点。这将消除当前对总平方误差影响最大的点。 (2)从具有最大SSE的簇中选择一个替补的质心,这将分裂簇并降低聚类的总SSE。如果有多个空簇,则该过程重复多次。 (3)如果噪点或者孤立点过多,考虑更换算法,如密度聚类(博客后期会更新这类聚类算法) ## 8、K-means是否会一直陷入选择质心的循环停不下来? (1)迭代次数设置 (2)设定收敛判断距离 ## 9、如何快速收敛数据量超大的K-means? 相关解释可以去这个博客稍做了解https://blog.csdn.net/sunnyxidian/article/details/89630815 --- 转载:[k-means常见面试题](https://blog.csdn.net/qq_38147421/article/details/106472422)