文章目录
- 聚类模型
- 聚类算法一:K-means聚类算法(K均值聚类算法)
- 1. 算法步骤
- 2. 算法优缺点
- 3. 改进算法——K-means++算法
- 4. SPSS软件的使用
- 5.关于K-means均值的问题讨论
- 聚类算法二:系统聚类(层次聚类)
- 一、系统聚类的原理与流程
- 1. 样品与样品间的距离
- 2. 指标与指标间的距离
- 3. 类与类间的距离
- 4. 常用的系统聚类法
- 5. 从谱系图中获得聚类类别个数——使用"肘部原则"
- 6. 绘制散点图像(只适用于两个指标或者三个指标时)
聚类模型
以下内容来自我对清风数学建模的学习笔记
- 聚类就是将样本划分为由类似的对象组成的多个类的过程。
- 聚类的好处在于,聚类后,我们可以更加准确的在每个类中单独使用统计模型进行估计、分析或预测
- 聚类和分类的区别在于:分类是已知类别的,而聚类是未知类别的。
聚类算法一:K-means聚类算法(K均值聚类算法)
1. 算法步骤
- 在“重新计算新类的中心”步骤中,这个中心不是乱选的,而应该是所有元素的重心,也就是对本类所有元素的距离均相等
- K均值聚类的最终结果跟初始聚类中心选择有很大关系
2. 算法优缺点
- 优点:
- 算法简单,快速
- 对处理大数据集,算法相对高效
- 缺点:
- 要求用户必须事先给出要生成的簇的数目k
- 对于初值非常敏感
- 对于孤立点数据敏感
K均值聚类算法容易受到孤立点的影响,导致聚类中心有向着孤立点偏移的趋势
3. 改进算法——K-means++算法
K-means++算法其实只是对K-means算法中“初始化k个聚类中心”这一步进行了优化。
K-means++算法选择初始聚类中心的基本原则是:初始的聚类中心之间的相互距离要尽可能的远。具体步骤如下:
值得注意的是,但我们根据第一个聚类中心选出第二个聚类中心后,我们需要选择第三个聚类中心。这个时候,我们需要计算每个样本与当前已有聚类中心的最短距离并选用轮盘法抽取。那么这个距离是怎么计算的?就是算其他样本点到这两个聚类中心的重心的距离即可。到后面三个四个聚类中心时,处理方法相同
4. SPSS软件的使用
- 分类 - k均值 - 迭代 (可以确定所需要的迭代中心,以使得聚类中心收敛)
- 分类 - k均值 - 保存 - 聚类成员和与聚类中心的距离
- 分类 - k均值 - 选项 - 每个个案的聚类信息
对于SPSS软件给出的结果 - 由于我们选择k只有两类,因此数据自然而然地被分成了支出水平较高和支出水平较低的两类。
- 这里返回了两个聚类中心之间的距离
- 这里返回了每个聚类的案例数
5.关于K-means均值的问题讨论
量纲不一致的处理方法时通用的——标准化
聚类算法二:系统聚类(层次聚类)
K-均值算法的缺点在于聚类的个数K需要提前给定,系统聚类算法可以很好的解决这个问题。
系统聚类的定义:系统聚类时通过计算两类数据点间的距离,对最为接近的两类数据点进行组合,并反复迭代这一过程,直到将所有数据点合成一类,并生成聚类谱系图。
一、系统聚类的原理与流程
1. 样品与样品间的距离
我们还是拿出案例来分析,如果需要对学生的成绩进行聚类划分。我们可以做如下分析:
在该图中,我们有6个指标(数学、物理、化学、语文、历史、英语),以及30个学生样本。
- 如果只取一个指标进行分析。我们可以将样本空间变成一条直线。各个样本点的数据就是该直线上的x坐标。
- 如果取两个指标进行分析。我们可以将样本空间变成一条在二维空间的直线。各个样本点的数据就是该直线上的点的(x,y)坐标
我们需要观察这些样本点,点跟点的距离,以此来判断他们是否是同一类别的。那么这个距离在多指标(有可能点的坐标变成三维,四维,乃至多维)的情况下,应该如何定义的呢?以下给出常见的定义:
2. 指标与指标间的距离
描述两个指标的相对距离,在上述例子中,理解成将30个样本理解成30个不同的指标,而原来的6个指标就变成了6个独立的样本。即使每个样本是由30个不同的指标构成的。
这只是为了理解方便,但其实在这里描述的就是在原来的例子中,指标和指标的距离,其定义是:
3. 类与类间的距离
对于类间距离的分析可以分为以下两种情况:
- 由一个样本组成的类是最基本的类;如果每一个类都由一个样本组成,那么样本间的距离就是类间距离
- 如果某一类包含了不止一个样本,那么就要确定合适的类间距离,大致有以下集中定义方式:
先规定下我们所使用的符号
- 最短距离法
- 最长距离法
- 组内平均距离法
- 重心法
4. 常用的系统聚类法
- 由上述的理论基础,现在我们来具体阐释系统聚类法的含义:
先计算n个样品两两间的距离,找出距离最近的,把这两个样品合成一类,变成了一个新的样品进入下一个循环;在下一个循环中,此时的样品数可以认为是,再计算两两间的距离,找出距离最短的合成一类。重复这个过程,直到所有样品合成一类为止 - 用流程图表示的结果
- 最终结果是希望画出谱系图,以帮助我们确定合适的分类数
- 对于上述案例的分析
以五个学生为例:
- 确定第一次循环的类间距离矩阵
- 从矩阵中可以看出G1,G5的距离最小,因此将G1、G5合成一类,记为G6
- 计算新类与其他类之间的距离,得到第二次循环的类间矩阵
- 发现G2,G4之间的距离最小,将G2,G4合成一类
- 以此种方式不断重复,最终所有样本合成一类。画出聚类的谱系图
可以根据谱系图来自己确定分类的个数
5. 从谱系图中获得聚类类别个数——使用"肘部原则"
定义两个量:各个类畸变程度之和、所有类的总畸变程度
我们需要做出聚合系数折线图:横坐标为聚类的类别数,纵坐标为聚合系数,获得其转折点作为我们最终选择的分类数。因为类太少,聚合系数太高,类太多,聚合系数会趋于稳定,不方便我们进行解释.
在SPSS软件聚类系数已经帮我们计算好了:
6. 绘制散点图像(只适用于两个指标或者三个指标时)
两个指标的话我们可以在一个二维平面绘制散点图,三个指标我们可以在立体图上绘制,但是更多指标就无法绘制图像了,属于更高维的空间