目录
K-means算法简介
k-means算法是一种基于划分的聚类算法,过程为无监督过程。以距离作为数据对象间相似性度量的标准,即数据对象间的距离越小,则它们的相似性越高,则它们越有可能在同一个类簇。数据对象间距离的计算有很多种,k-means算法通常采用欧氏距离来计算数据对象间的距离。
聚类大致步骤与结果(图)
通俗解释:将没有标注(不含标签) 的数据进行聚类算法,就能得到分过组的分类数据。
算法具体步骤
1、自主选择要划分为类的个数k;
2、第一次将随机生成k个数据点作为聚类中心;
2、计算其他点到这k个聚类中心的距离(每个点要计算k次),从而每个点都能得到唯一离得最近的聚类中心;
3、由此划分出了k个簇(类);
4、此时重新计算每个簇(类)的质心作为新的聚类中心;
5、计算其他点到这k个聚类中心的距离(每个点要计算k次),从而每个点都能得到唯一离得最近的聚类中心;
6、持续进行步骤4、步骤5的方法,直到满足停止条件。
注:迭代的停止条件大致有3种
- 设定迭代次数
- 聚类中心不再变化
- 前后两次聚类结果的目标函数的函数值变化很小
相关计算(略)
- 簇中心计算
- 距离计算(推荐使用欧式距离)
算法优缺点
优点:简单
缺点:1、初始值影响过大。事先并不知道k值如何选取,并且初始随机产生的聚类中心对最终的聚类结果也有很重要的影响;
2、复杂度与样本呈现线性关系
3、只能发现球型类簇,有些簇是得不到的。