10.聚类模型--相比分类模型事先不知道类别

聚类模型

  • 1.K-means聚类算法
    • 基本流程
    • 更好的求解K的聚类中心的方法
    • spss求解k均值聚类
  • 3.层次聚类
    • 基本流程
    • 距离的介绍
    • spss实现层次聚类
    • 确定k值确定方法--用图形估计聚类的数量
  • 3.DBSCAN算法

1.K-means聚类算法

基本流程

(1)定义
将样本划分为由类似的对象组成的多个类的过程。聚类后,我们可以更加准确的在每个类中单独使用统计模型进行估计、分析或预测;也可以探究不同类之间的相关性和主要差异。
同时也要区分于分类模型,分类已知类别,聚类不知道,只是简单的分类,下面来看看如何更好实现。
(2)步骤
1.指定需要划分的簇的个数的K值,类的个数。
2.随机地选择K个数据据对象作为初始的聚类中心,不一定要是我们的样本点。
3.计算其余的各个数据对象到这K个初始聚类中心的距离,把数据对象划归到距离它最近的那个中心所在的簇类中。
4.调整新类并且重新计算出新类的中心。
5.循环3和4,看中心是否收敛,如果收敛或者达到迭代次数就停止循环。
10.聚类模型--相比分类模型事先不知道类别_第1张图片
(3)优缺点
优点:
(1)算法简单、快速。
(2)对处理大数据集,该算法是相对高效率的。
缺点:
(1)要求用户必须事先给出要生成的簇的数目K。
(2)对初值敏感。
(3)对于孤立点数据敏感。
其中第二个和第三个可以通过k-means++来解决,即通过选取更好的初始值点。

更好的求解K的聚类中心的方法

有区别的是初始化K个聚类中心这个步骤,要求初始的聚类中心之间的相互距离要尽可能的远。。

  • 随机选取一个样本作为第一个聚类中心;
  • 计算每个样本与当前已有聚类中心的最短距离(即与最近一个聚类中心的距离),这个值越大,表示被选取作为聚类中心的概率较大;最后,用轮盘法(依据概率大小来进行抽选)选出下一个聚类中心;
  • 重复步骤二,直到选出K个聚类中心。选出初始点后,就继续使用标准的K-means算法了。
    在一开始就是使用的Kmean++算法,选取的两个起始点尽可能远,后面的步骤一样。
    10.聚类模型--相比分类模型事先不知道类别_第2张图片(4)遇到的问题-
    1.k怎么给,多尝试一下,看k取值为多少好解释不如刚刚的结果。
    2 有量纲怎么计算距离,数据量纲不一样,计算距离就没意义,解决方法就是进行标准化处理。

spss求解k均值聚类

10.聚类模型--相比分类模型事先不知道类别_第3张图片
10.聚类模型--相比分类模型事先不知道类别_第4张图片

那么还有上面算法可以不需要指定一个k就可以呢?
采用下面的系统层次聚类就可以了。

3.层次聚类

基本流程

(1)定义
系统聚类的合并算法通过计算两类数据点间的距离,对最为接近的两类数据点进行组合,并反复迭代这一过程,直到将所有数据点合成一类,并生成聚类谱系图。
10.聚类模型--相比分类模型事先不知道类别_第5张图片
(2)系统(层次)聚类的算法流程:
一、将每个对象看作一类,计算两两之间的最小距离;
二、将距离最小的两个类合并成一个新类;
三、重新计算新类与所有类之间的距离;
四、重复二三两步,直到所有类最后合并成一类;
五、结束。
10.聚类模型--相比分类模型事先不知道类别_第6张图片

距离的介绍

(1)欧式距离就是我们正常求的距离,绝对值距离多用在网状距离
10.聚类模型--相比分类模型事先不知道类别_第7张图片
那么现在我们怎么定义指标和指标之间的距离呢:相关系数或者是夹角余弦
10.聚类模型--相比分类模型事先不知道类别_第8张图片
把数据放在平面上,把接近的点分为一个类,对于类和类之间的距离,就有样本取距离,把接近的点分为一类。
10.聚类模型--相比分类模型事先不知道类别_第9张图片
(2)类和类之间的距离

  • 重心法,求重心,然后看距离
  • 最短距离法:有多个样本点,元素连接找最短距离
  • 最长距离法
  • 组间平均连接法,类之间的点全部连接起来,求平均
  • 组内平均连接法 ,把组内的点连接起来求平均值
    只要解释通,选那种方法都是可以的

(3)总结
系统聚类的流程图在于选取类后再看类和类之间的距离,进行一定的调整,合并计算距离,如果距离小就聚成了一类,再计算类相互之间的距离看能不能聚在一起
再看里面点之间的距离,再看看新类和其余各类之间的距离,得到新的距离矩阵
最后使得矩阵中只有一个元素

spss实现层次聚类

10.聚类模型--相比分类模型事先不知道类别_第10张图片
1.不同方法的差别在于计算新类和其余各类之间的距离方法,分类的目的选择指标,样品间距离定义方式,聚类方法。尤其是样品特别多的时候最好可以通过各种方法找出其中的共性。
2.要注意指标的量纲,差别太大会导致聚类的结果不合理,需要标准化处理
3.得到的结果可能不满意,因为可能只是做的是数学上的处理,还需要对结果有一个合理的解释就,如果不可以的话可以去换一种方法。

我们最后还可以根据谱系图来决定最后分为多少个类。
10.聚类模型--相比分类模型事先不知道类别_第11张图片
可以看到不同的k可以得到不同的结果,最后取决于如何划分。

确定k值确定方法–用图形估计聚类的数量

10.聚类模型--相比分类模型事先不知道类别_第12张图片

10.聚类模型--相比分类模型事先不知道类别_第13张图片
确定完k后就可以保存聚类结果然后画图了
10.聚类模型--相比分类模型事先不知道类别_第14张图片
10.聚类模型--相比分类模型事先不知道类别_第15张图片

3.DBSCAN算法

基于密度的聚类算法,聚类前不需要预先指定聚类的个数,生成的簇不稳定,可以生成特定的图形,一定区域内包含的对象不少于一定的阈值。
在具有噪声的空间数据库中发现容易形状的簇,可以把密度足够大的相邻区域连接,可以有效处理异常数据(有偏移的点)
10.聚类模型--相比分类模型事先不知道类别_第16张图片
从图中可以看成,这个算法比较适合形状独特的图形。

DBSCAN算法将数据点分为三类:
• 核心点:在半径Eps内含有不少于MinPts数目的点
• 边界点:在半径Eps内点的数量小于MinPts,但是落在核心点的邻域内
• 噪音点:既不是核心点也不是边界点的点

优点:

  1. 基于密度定义,能处理任意形状和大小的簇;
  2. 可在聚类的同时发现异常点;
  3. 与K-means比较起来,不需要输入要划分的聚类个数。

缺点:

  1. 对输入参数ε和Minpts敏感,确定参数困难;
  2. 由于DBSCAN算法中,变量ε和Minpts是全局唯一的,当聚类的密度不均匀时,聚类距离相差很大时,聚类质量差;
  3. 当数据量大时,计算密度单元的计算复杂度大。

你可能感兴趣的:(数学建模学习,数学建模)