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中常用的到中心距离的度量有哪些?
曼哈顿距离、欧氏距离、余弦相似度

# 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)