数学建模学习之聚类算法

数学建模学习 day02 聚类算法

聚类任务

聚类是根据在数据中发现的描述对象及其关系的信息,将数据对象分组。目的是,组内的对象相互之间是相似的(相关的),而不同组中的对象是不同的(不相关的)。组内相似性越大,组间差距越大,说明聚类效果越好。

  • 结论
    • 同类数据间相似度高
    • 不同类的数据间相似度低
  • 类别 :无监督学习
  • 目标: 将样本划分为若干个不想交的子集 物以类聚人以群分

举一个最简单的现实案例例子——google新闻,google公司每天会在互联网上爬取成千上万条新闻信息,这些爬取下来的新闻信息就相当于我们的数据集,但是新闻量是无比庞大的,我们不知道每一条新闻分属于什么类别,而聚类算法就把成千上万条新闻分成一些大类。大大提高了效率。实际上还有许多现实案例都应用到了聚类思想。

我认为影响聚类效果好坏的因素主要有两点:

  • 聚类的算法
  • 衡量距离的公式

下面介绍聚类性能度量的两大指标
注:可以直接跳到最后看K-means算法的介绍,在数学建模的时候其实我们不用了解的太透彻,只要知道相应的算法起到什么作用就可以了

1.性能度量

聚类性能度量大致有两类:

  • 外部指标:将聚类结果与某个’‘参考模型’'进行比较
  • 内部指标:直接考察聚类结果而不利用任何参考模型
    在这里插入图片描述

1.外部指标

在这里插入图片描述
在这里插入图片描述
这么看有点头疼吧,直接用一个简单的例子来解释它
已有数据集 D: x1,x2,x3,x4,x5
在这里插入图片描述

2.内部指标

在这里插入图片描述
同样看书应该是看不懂的,举个例子

  • avg (C ) 为簇内样本平均均值
  • diam (C ) 为簇内样本最大距离
  • d m i n ( C i , C j ) d_{min}(C_i,C_j) dmin(Ci,Cj) 为簇 C i , C j C_i,C_j Ci,Cj之间样本的最小距离
  • d c e n ( C i , C j ) {d_{cen}(C_i,C_j)} dcen(Ci,Cj) 为两个簇 C i , C j C_i,C_j Ci,Cj之间样本中心点之间距离

如下 D是已有的数据集,我们假设已经分为了三个簇
在这里插入图片描述
在这里插入图片描述
下图是书上公式的解释,通俗易懂一点
在这里插入图片描述

2.距离度量

距离度量需要满足四个基本的性质,见下图
这些概念都非常好理解,我们主要关注一下直递性,图中举了一个不满足直递性(现实中似乎没有遇到过) 人,人马,马之间的关系就不满足
在这里插入图片描述
我们把距离分为有序,无序,混合

常见的几种距离公式 – 有序

下图是对于有序数据的几种距离计算公式,闵可夫斯基距离是最常用的,其中p的不同取值对应了下面的不同距离公式
在这里插入图片描述

曼哈顿距离

在这里插入图片描述

欧氏距离

在这里插入图片描述

切比雪夫距离

在这里插入图片描述

常见的几种距离公式 – 无序

在这里插入图片描述
同样举一个案例
对无序的数据 r和b 颜色
在这里插入图片描述

常见的几种距离公式 – 混合

混合数据的举例计算很简单,就是把之前的两种相加就可以了
在这里插入图片描述
下面一些距离公式是在建模课上学到的

定距数据

Mahalanobis距离(马式距离)

在这里插入图片描述
在这里插入图片描述

夹角余弦距离

在这里插入图片描述

定序数据

在这里插入图片描述
在这里插入图片描述

定类数据

在这里插入图片描述
在这里插入图片描述

计数数据

在这里插入图片描述
在这里插入图片描述

混合型数据

在这里插入图片描述
上面就是一些距离的计算公式和度量方法
下面是K-means聚类算法的介绍,也是我们最常用的聚类方法

K-means 聚类算法

这种聚类方法是最普遍的,也是大家最为熟悉的,它的实现流程如下:

  1. 确定聚类的数量,并随机初始化它们各自的中心点,如图表3-1 中的(b)聚类数量为2,我在这里使用红和蓝两种颜色表示。图中的红,蓝两个叉代表了随机初始化的中心点,绿色的数据点代表并未进行分类
  2. 计算当前所有数据点与每个组中心之间的距离,将每个数据点划分为离它最近的那类中,如图表3-1 中的©原本未分类的绿点都根据距离的远近归于红蓝两类
  3. 根据上述一次迭代后的结果,计算每一类所有数据点的平均值,更新新的中心点。如图表3-1中的(d) 更新了组中心的位置
  4. 重复上述步骤,直到中心点更新变化不大或迭代次数达到你所规定的次数。 如图表3-1中的(d),(e),(f) 我们可以看到中心点的变化已经不大,因此可以确定图中的红蓝两类最终的聚类结果
    在这里插入图片描述
    它的优点是简单、快速,对处理大数据集,该算法保持可伸缩性和高效率,在结果簇是密集的情况下,它的效果较好。
    当然,这种算法也存在着缺点,首先我们需要人为的确定聚类的簇的数量,并且因为中心点是随机生成的,因此每次运行所产生的结果都可能有偏差,这会导致结果不具有一致性。除此之外,它对噪声和孤立点的数据相对敏感。不适用于某些英应用

西瓜书案例

总的来说,就是一个迭代的过程
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Pam聚类可以自己去看看

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Joker-Tong

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值