算法简介
K-means算法是很典型的基于距离的聚类算法,采用距离作为相似性的评价指标,即认为两个对象的距离越近,其相似度就越大。该算法认为簇是由距离靠近的对象组成的,因此把得到紧凑且独立的簇作为最终目标。
算法过程如下:
1)从N个文档随机选取K个文档作为中心点;
2)对剩余的每个文档测量其到每个中心点的距离,并把它归到最近的质心的类;
3)重新计算已经得到的各个类的中心点;
4)迭代2~3步直至新的质心与原质心相等或小于指定阈值,算法结束。
算法优缺点:
优点:
- 对处理大数据集,该算法保持可伸缩性和高效性
- 算法快速、简单,易于理解;
缺点:
- 在 K-means 算法中 K 是事先给定的,这个 K 值的选定是非常难以估计的,具体应用中只能靠经验选取;
- 对噪声和孤立点数据敏感,导致均值偏离严重;
- 当数据量非常大时,算法的时间开销是非常大的;
- 初始聚类中心的选择对聚类结果有较大的影响,一旦初始值选择的不好,可能无法得到有效的聚类结果。