聚类算法全面总结!!

今儿想和大家聊聊关于聚类的问题?。。。?
在这之前咱们已经聊过 各个算法的优缺点的总结,以及8个回归类算法、7个正则化算法的总结、5 个集成算法模型、svm算法的全部总结、距离算法总结?。?
感兴趣的可以翻到之前看看~
大部分人对聚类的认识可以归纳为以下几个方面:

  1. 数据分组:许多人将聚类视为将数据划分为不同的组或簇,使得同一组内的数据点更加相似或相关 。这种观点认为聚类是一种无监督学习技术,用于发现数据中的内在结构和模式 。
  2. 相似性度量:通常认为聚类算法通过计算数据点之间的相似性或距离来确定它们是否属于同一簇 。相似性度量可以基于欧氏距离、余弦相似度等方法 。
  3. 发现未知群体:聚类被视为一种工具,用于发现现有数据中隐藏的未知群体 。通过聚类分析,可以发现数据集中的潜在模式、群体或类别,从而帮助了解数据的特征和结构 。
  4. 应用领域:人们普遍认为聚类广泛应用于各个领域,如市场细分、客户分析、图像分割、推荐系统等 。聚类可以帮助理解和利用大规模数据集,探索数据中的关联性和趋势 。
然而 , 值得注意的是,不同人对聚类的认识和理解可能存在差异,因为聚类本质上是一个多样化的领域 , 涉及多种算法和技术 。此外,聚类也可能面临一些挑战,如选择合适的距离度量、确定最佳簇的数量等 。因此,在使用聚类算法时,需要根据具体问题和数据特点进行适当的选择和调整 。
今天就来详细说说常见的几种:
  • K均值聚类
  • 层次聚类
  • 密度聚类
  • 谱聚类
  • EM聚类
  • 模糊聚类
以下代码均可直接运行起来,方便学习!大家伙如果觉得还不错!可以点赞、转发安排起来,让更多的朋友看到 。
K均值聚类K均值聚类是一种常用的无监督学习算法 , 用于将数据点划分为不同的簇,使得同一簇内的数据点彼此相似度较高,不同簇之间的数据点相似度较低 。
这个算法的目标是将数据点分为K个簇 , 其中K是用户定义的参数 。K均值聚类的原理相对简单,主要思想是通过迭代寻找K个簇的中心点,将每个数据点分配给距离其最近的中心点,然后更新中心点的位置 , 直到满足停止条件为止 。
原理介绍1、选择要分成的簇的数量K 。
2、随机初始化K个中心点,这些中心点可以是从数据集中随机选择的数据点 。
3、重复以下过程,直到满足停止条件:
  • 将每个数据点分配到距离其最近的中心点所属的簇 。
  • 对每个簇 , 计算所有数据点的平均值,并将其作为新的中心点 。
停止条件通常可以是以下之一:
  • 中心点不再改变或改变非常小 。
  • 数据点不再改变其所属簇 。
公式表达K均值聚类的主要公式包括:
  1. 距离度量(一般使用欧氏距离):
    对于两个数据点X和Y,它们之间的欧氏距离可以表示为:


      推荐阅读