老饼讲解-机器学习 机器学习 神经网络 深度学习
机器学习入门
1.学前解惑
2.第一课:初探模型
3.第二课:逻辑回归与梯度下降
4.第三课:决策树
5.第四课:逻辑回归与决策树补充
6.第五课:常见的其它算法
7.第六课:综合应用

【原理】k-means聚类

作者 : 老饼 发表日期 : 2022-06-26 03:45:13 更新日期 : 2024-03-17 00:44:13
本站原创文章,转载请说明来自《老饼讲解-机器学习》www.bbbdata.com


k-means算法流程简单,计算量不会因样本量而暴增,是经典的基本聚类算法之一

本文介绍k-means算法流程,常用设置和一些实际使用经验




    01. K-means聚类流程    



本节介绍K-means聚类算法的流程



    k-means聚类算法流程   


k-means的特色就在于流程简单,计算量不会因样本量而暴增
k-means聚类算法流程如下:

1、先预设K个初始中心点                                                                                        
2、分别计算每个样本点到K个中心点的距离,将每个样本划分到离它最近的中心点   
3、将K个中心点的位置更新为它样本的重心(样本中心)                                        
4、重复2、3,直到达到终止条件(达到最大迭代次数或中心位置变化很小等等)    
  
 没错,k-means聚类就是这么一个简单的算法
K-means聚类算法的实现代码DEMO见《
K-means代码
  ✍️ 补充: k-means的计算量为什么较小   
 k-means的计算量小就小在,
它每次只是判别样本与类别的距离,
而不是样本与样本间的距离,
而类别个数是很小的,所以计算量就相对不大





  02.  K-means的关键设置  



本节介绍K-means的关键设置:中心初始化、K值选择和距离公式



     关键设置     


在k-means算法中,一般有如下三个关键地方需要根据实际使用情况设置 
 👉
 中心的初始化  
 
 👉 K值的选择        
 
 👉 距离公式          
 K值的选择  
一般根据数据实际意义背景,进行推断需要使用多少个聚类中心k
 在不太明确的时候,会设置5类左右,对数据进行预试探
为什么设5类呢?
因为如果真实类别小于5类,那比真实类别多两三个类别,也无妨,后期合并即可
如果多于5类,那至少也能先聚出几个类别,后面再增加即可
 
 
 中心的初始化   
 
常用的方法是随机选取k个样本作为类别中心
 
    距离公式   
 
最常用的距离公式就是欧氏距离,即: 
  



     关于其它距离公式     



 
余弦距离

  
 曼哈顿距离
 

 还有一大堆距离,
例如切比雪夫距离 、闵可夫斯基距离、马氏距离等等,
用得最多就是欧氏距离,其它距离不再一一列举
在具体项目中,欧氏距离失效,再从业务角度思考其它距离是否更贴切项目




   03.  K-means的使用经验   



本节分享一些K-means的使用经验

 


    K-means的一些使用经验   


 对初始化比较敏感,需多次尝试
kmeans非常受初始化的影响,
因此,一般采用随机初始化,
然后多次聚类,最后哪个结果好,就用哪个
 附:每次聚类结果可以用误差平方和 (SSE,sum of the squared errors)评估:
 
这里的 
 为xi所属的类别中心点。
即所有样本到其所属中心点的距离平方之和

类别个数需要多次尝试
kmeans 对 K值也是敏感的,也需要多次尝试





  04.  K-means的优缺点  



本节介绍K-means聚类的一些优缺点



   K-means的优缺点   


优点
1.计算量低  
 相比其它聚类算法,计算量低,不会因为样本量而暴增
   缺点   
 1. K值需要先验经验去决定
 k值需要用先验经验决定,而往往这恰好是缺失的,
如果k值设置得不好,会严重影响聚类结果

 
  2.异常点的影响             
  k-means对异常点较为敏感,
如果数据中有极大的异常点,将严重影响类别中心的位置


  3.对球状的数据比较好用
对球状的数据比较好用,
但在数据为非球状数据时,效果可能会不佳
 K-means最最最大的优点就是计算较为简单
聚类的方法千千万种,但K-means经典不衰就是因为它的计算量在众多聚类算法中是最简单的

 

  


以上就是K-means聚类算法的全部内容了




 


  End  





联系老饼