数据挖掘——常用聚类算法总结

作者:神秘网友 发布时间:2020-09-13 11:25:36

数据挖掘——常用聚类算法总结

数据挖掘——常用聚类算法总结

常用聚类算法总结

  • 概述
  • 聚类算法
    • k-means聚类算法
    • FCM算法
    • Canopy 算法
    • 层次聚类算法
    • LDA算法
    • DBSCAN 算法
    • EM算法
    • 总结

数据挖掘常又被称为价值发现或者是数据勘探,一般是指从大量的、不完全的、有噪声的、模糊的、随机的实际应用数据中,提取隐含在其中的,人们事先不知道的、但又是潜在有用的信息和知识的过程。它是一种大量数据的高级处理方式。
常用的数据挖掘算法分为四大类:聚类、分类、关联以及推荐算法。另外还有一个预处理:降维算法

聚类是在一群未知类别标号的样本上,用某种算法将他们分成若干类别,这是一种无监督学习。其主要研究数据间逻辑上或物理上的相互关系。由聚类所组成的簇是一组数据对象的集合,这些对象与同一簇中的对象彼此类似,与其他簇中的对象相异。其分析结果不仅可以揭示数据间的内在联系与区别,还可以为进一步的数据分析与知识发现提供重要依据。聚类算法的聚类效果如图所示
数据挖掘——常用聚类算法总结 常用的聚类算法由k-means聚类算法、Canopy 聚类算法、FCM(Fuzzy C-Means,模糊C 均值)聚类算法、DBSCAN(Density-Based Spatial Clustering of Applications with Noise,具有噪声的基于密度的聚类方法)聚类算法、LDA(Latent Dirichlet Allocation,隐含狄利克雷分配)算法、层次聚类算法、基于EM(Expectation-Maximization,最大期望)的聚类算法等。以下将对上述聚类算法从算法的简介、算法优缺点等几个方面进行简单介绍,通过综合对比选择合适的算法进行设计和应用。

k-means聚类算法

K-means 算法是一种最基本的基于距离的划分的聚类算法,为十大数据挖掘算法之一。K-means 算法在对所给数据集进行聚类时,采用的是“非此即彼”的硬聚类方式。
K-means 算法使用时必须知道K 值的大小,即聚类的数目。
k-means 算法的优点

  1. K-means 算法简单快捷,容易理解
  2. K-means 算法可伸缩性好且效率高
  3. k-means算法对所有的数据样本都进行聚类;
  4. k-means算法对满足高斯分布、均匀分布的数据类型聚类效果表较好;

k-means算法的缺点

  1. k-means对初始聚类中心敏感;
  2. k-means需要事先确定聚类个数;
  3. k-means对孤立点和噪声点相对敏感;

针对K-means 算法中的K 值及初始中心点的事先确定,已经有很多相关的成熟的理论研究和工程应用。特别地,对K-means 算法在使用时需要事先确定K 值的难点问题,团队在先前的项目中已经做过大量的研究,并提出有效的确定K 值的方法。
K-means 算法应用实例:K-means 算法在期刊《现代防御技术》2015 年12 月第43卷第6 期的论文题目为“一种新的Kmeans 聚类雷达信号分选算法”中被采用。该算法自动获取初始聚类中心和聚类数目后,对频率捷变雷达信号进行分选。仿真结果验证了论文采用该算法对信号分选进行仿真实验,仿真结果证明分选方法的正确性和可行性。

FCM算法

FCM 算法是Bezdek 在1973 年提出的一种基于划分的模糊聚类算法。该算法是采用隶属度来确定每个数据点属于某个聚类程度的一种方法。相比于K-means 算法,FCM则是一种柔性的模糊划分法。
FCM算法的优点

  1. FCM 算法具有深厚的数学基础
  2. FCM算法不易陷入局部最优解;
  3. FCM 算法对满足正态分布的数据聚类效果很好。

FCM算法的缺点

  1. FCM 算法对孤立点敏感;
  2. 算法需事先确定隶属度参数m 和聚类数目K;

Canopy 算法

Canopy 算法是不需要事先指定聚类数目的粗聚类方法。在对聚类的精度要求相对较低,速度要求相对较高的情况下,可直接采用Canopy 聚类算法直接对数据样本进行处理。或者有精度要求的情况下,可以用它来作为K-means 或FCM 聚类算法的预处理步骤,先得到K 值,再进行精确的聚类。所以Canopy 算法具有很高的实际应用价值。
Canopy 算法的优点:
1. Canopy 算法计算收敛快;
2. K-means 和FCM 对噪声抗干扰较弱,可通过Canopy 预处理从而去干扰;
3. Canopy 算法选择出来的中心点/聚类数作为K-means 算法的初始条件比较科学;
4. 进一步用K-means/FCM 精确聚类时,只需针对每个Canopy 中的数据进行处理;
5. 极大地减小相似计算的数量。

Canopy 算法的缺点:
1. 算法的精度不是很高;
2. 算法需要事先确认两个距离阈值。

层次聚类算法

层次聚类算法是将所有的数据集自底向上合并成一棵树或自顶向下分裂成一棵树的过程,这两种方式分别称为凝聚和分裂。对凝聚层次聚类算法,在初始阶段,将每个样本点分别当作其类簇,然后合并这些原子类簇直到达到预期的类簇数或者其他终止条件;而对于分裂层次的聚类算法,在初始阶段,将所有的样本点当作同一类簇,然后分裂这个大类簇直至达到预期的类簇数或者其他终止条件。
层次聚类算法的优点:

  1. 层次聚类算法不需要预先制定聚类数;
  2. 层次聚类算法可以发现类的层次关系;
  3. 当改变聚类的数目时,不需要再次计算数据点的归属。

层次聚类算法的缺点

  1. 计算复杂度太高;
  2. 算法很可能聚类成链状;
  3. 奇异值会对聚类效果有很大的影响。

LDA算法

LDA 文本聚类算法基于LDA 主题模型,最早由Blei 等人提出。LDA 主题模型是近年来在文本处理领域发展起来的一种概率生成模型,也是主题模型中具有代表性的概率生成模型之一。LDA 主题模型是一个生成性的三层贝叶斯网络,将词和文章通过潜在主题相关联。与许多其他的概率模型类似,LDA 中也做了词袋假设,即在模型中不考虑特征词的顺序,只考虑它们的出现次数。
LDA算法的优点

  1. LDA 算法具有完备的数据理论;
  2. LDA 算法具有清晰的逻辑结构;
  3. LDA 算法是天生的适合大数据环境下的文本聚类。

LDA算法的缺点

  1. LDA 算法收敛速度比较慢;
  2. LDA 算法的主题数目是人工估计的。

DBSCAN 算法

DBSCAN 算法是一种基于密度的空间聚类算法。该算法要求聚类空间中的一定区域内所包含对象(点或其他空间对象)的数目不小于某一给定领域密当改变聚类的数目时,不需要再次计算数据点的归属。度阈值,即将具有足够密度的区域划分为簇,并在具有噪声的空间数据库中发现任意形状的簇,它将簇定义为密度相连点的最大集合。

DBSCAN 算法的优点:

  1. DBSCAN 能够识别出噪声点;
  2. DBSCAN 可以发现任意形状的簇类;
  3. DBSCAN 不需要事先知道要形成的簇类数量。

DBSCAN 算法的缺点:

  1. DBSCAN 算法的计算复杂度较高;
  2. 对不满足给定条件的样本点会作为噪声点剔除;
  3. 算法对稀疏的高维数据性能差,因对高维数据,欧几里得密度定义不能很好理解;
  4. 因算法直接对数据库进行操作,当数据量增大时,要求较大的内存支持且I/O消耗也很大;
  5. 算法聚类时采用全局性的表征密度参数,当空间聚类的密度不均匀、聚类间距差相差很大时,聚类质量较差;
  6. 算法虽然对于数据库中样本的顺序不敏感,但对于处于簇类之间边界的样本,可能会根据哪个簇类优先被探测到而将其归属有所摆动;
  7. 算法须指定两个参数:半径和最小密度阈值。所以对用户定义的参数敏感,细微的不同都可能导致差别很大的结果,而参数的选择无规律可循,只能靠经验确定。

EM算法

在统计计算中,EM 算法是在EM 算法容易陷入局部最优解;概率模型中寻找参数最大似然估计的方法,为十大数据挖掘算法之一。其中概率模型依赖于无法观测的隐藏变量。最大期望经常用在机器学习和计算机视觉的数据集聚类领域。
EM算法的优点:

  1. 当改变聚类的数目时,不需要再次计算数据点的归属。
  2. 算法简单
  3. 算法稳定

EM算法的缺点

  1. EM 算法容易陷入局部最优解;
  2. EM 算法迭代慢、次数多,用做聚类,性能比K-means 差很多;
  3. 在实际应用中,EM 算法的主要用途是进行参数估计,故更适合作为算法的优化。

总结

上面介绍的各种算法的优缺点可简化如下表所示。

算法名称 时间复杂度 聚类数目是否指定 对噪声点敏感 聚类效果
K-means 敏感
Canopy 较快 不敏感 一般
FCM 敏感
LDA 较慢 不敏感
层次聚类 敏感 一般
DBSCAN 不敏感 一般
EM 不敏感 一般

通过以上表的综合比较可以看出,K-means 算法、Canopy 算法、FCM 算法和LDA 算法具有明显的优势,所以本方案将实现这四种算法。特别地,其中K-means 算法和FCM算法在雷达信号处理中已经被应用。

创建了一个技术交流群,有兴趣可加我微信,一起讨论杂七杂八的技术,共同进步
加好友备注:你的博客名&&随便给我的任意文章点个赞或留言
数据挖掘——常用聚类算法总结

数据挖掘——常用聚类算法总结相关教程

  1. 用R做一个完整的数据挖掘项目
  2. 集合常用的方法--073
  3. 机器学习密度聚类算法之OPTICS
  4. Linux_RedHat_7_部分常用命令
  5. 常用的谷歌浏览器插件以及安装方法
  6. Java常用框架
  7. 常用linux命令记录
  8. 1、Linux常用命令、目录管理、文件属性、文件内容查看、Linux硬