数学建模 聚类模型

1,516 阅读4分钟

概述

聚类和上一讲分类的区别:分类是已知类别的,聚类未知。

聚类后,我们可以更加准确的在每个类中单独使用统计模型进行估计、分析或预测;也可以探究不同类之间的相关性和主要差异。

K-means聚类算法

可视化见【算法图解APP(见模拟器)】,或https://www.naftaliharris.com/blog/visualizing‐k‐means‐clustering/

存在缺点:

  • (1)要求用户必须事先给出要生成的簇的数目K。
  • (2)对初值敏感。
  • (3)对于孤立点数据敏感。

引出K‐means++算法

K‐means++聚类算法

确定一个比较合适的初始聚类中心,再使用普通的K‐means聚类算法

层次聚类

样本与样本的距离:绝对值距离(网状格使用),欧氏距离,马氏距离(协方差)

指标与指标的距离:相关系数,夹角余弦

类与类的距离:重心,最短距离,最长距离,组间平均连接法,组内平均连接法

系统聚类和K-均值聚类都是对样品进行聚类,与K-均值聚类相比,系统聚类通常用于数据量较少的情况下,数据太大,系统聚类很慢低效。

系统聚类法适于二维有序样品聚类的样品个数比较均匀。 K均值聚类法适用于快速高效,特别是大量数据时使用。

肘部法则确定K值

画肘部图/聚合系数图来确定合适的聚类数目K,看畸变程度什么时候开始显著降低就设定为多少(结合实际情况,这里K=3比较好解释:高等中等低等收入)

画聚合图:2维3维才可画

DBSCAN聚类算法

均值聚类k-means是基于划分的聚类, DBSCAN是基于密度的聚类。区别为:

  • k-means需要指定聚类簇数k,并且且初始聚类中心对聚类影响很大。k-means把任何点都归到了某一个类,对异常点比较敏感。 DBSCAN能剔除噪声,需要指定邻域距离阈值eps和样本个数阈值MinPts,可以自动确定簇个数
  • K均值和DBSCAN都是将每个对象指派到单个簇的划分聚类算法,但是K均值一般聚类所有对象,而DBSCAN丢弃被它识别为噪声的对象。
  • K均值很难处理非球形的簇和不同大小的簇。DBSCAN可以处理不同大小或形状的簇,并且不太受噪声和离群点的影响。当簇具有很不相同的密度时,两种算法的性能都很差。
  • K均值只能用于具有明确定义的质心(比如均值或中位数)的数据。DBSCAN要求密度定义(基于传统的欧几里得密度概念)对于数据是有意义的。
  • K均值算法的时间复杂度是O(m),而DBSCAN的时间复杂度是O(m^2)。
  • DBSCAN多次运行产生相同的结果,而K均值通常使用随机初始化质心,不会产生相同的结果。
  • K均值DBSCAN和都寻找使用所有属性的簇,即它们都不寻找可能只涉及某个属性子集的簇。
  • K均值可以发现不是明显分离的簇,即便簇有重叠也可以发现,但是DBSCAN会合并有重叠的簇。
  • K均值可以用于稀疏的高维数据,如文档数据。DBSCAN通常在这类数据上的性能很差,因为对于高维数据,传统的欧几里得密度定义不能很好处理它们。

DBSCAN算法可视化: www.naftaliharris.com/blog/visual…

☆聚类算法的选择

K-means:

K‐means++: 可以解决(2)(3)缺点

系统聚类:

  • 系统聚类和K-均值聚类都是对样品进行聚类,与K-均值聚类相比,系统聚类通常用于数据量较少的情况下,数据太大,系统聚类很慢低效。
  • 系统聚类法适于二维有序样品聚类的样品个数比较均匀。 K均值聚类法适用于快速高效,特别是大量数据时使用。

DBSCAN:

实操

本人实际操作

画流程图

放入excel导入spss

有用的结果就是一张图一张表,如下

得到谱系图

由肘部法则确定聚类个数:

然后如果指标个数为2和3,就重新系统聚类画图