聚类分析

 原文链接:https://blog.csdn.net/qq_39422642/article/details/78821812

 

常见聚类方法

常用的聚类算法分为基于划分、层次、密度、网格、统计学、模型等类型的算法,典型算法包括K均值(经典的聚类算法)、DBSCAN、两步聚类、BIRCH、谱聚类等。

详见:https://blog.csdn.net/tonydz0523/article/details/84659905

 

1.聚类分析概述 
2.各种距离的定义 
2.1 样本相似性度量 
2.2 类与类间的相似性度量 
2.3 变量间的相似度度量 
3.划分聚类 
4.层次聚类

1.聚类分析概述
聚类分析是一种定量方法,从数据分析的角度看,它是对多个样本进行定量分析的多元统计分析方法,可以分为两种:

对样本进行分类称为Q型聚类分析
对指标进行分类称为R型聚类分析

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 下边是R型聚类的说明

文章连接:https://blog.csdn.net/wyh7280/article/details/48176141

R型聚类分析是聚类分析的一种,一般对指标进行分类。

在实际工作中,为了避免漏掉某些重要因素,往往在一开始选取指标的时候尽可能考虑所有的相关因素,而这样做的结果,则是变量过多,变量间的相关度较高,给统计分析与建模带来极大不便,因此人们希望能够研究变量间的相似关系,按照变量的相似关系把他们聚合成若干类,进而找出影响系统的主要因素,引入了R型聚类方法。
 

ind1 = 1     2     8     9    10    11    12
ind2 = 3     4     5     6     7    13    14

可以看出,人体变量大体可以分为两类:一类反应人体高矮的变量,一类反应人体胖瘦的变量。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


从数据挖掘的角度看,又可以大致分为四种:

划分聚类
层次聚类
基于密度的聚类
基于网格的聚类
本篇文章将从数据挖掘的角度来揽述,但也会借鉴数学建模的部分思想。

无论是从那个角度看,其基本原则都是: 
希望族(类)内的相似度尽可能高,族(类)间的相似度尽可能低(相异度尽可能高)。希望族(类)内的相似度尽可能高,族(类)间的相似度尽可能低(相异度尽可能高)。
先来看一下从数据挖掘的角度看,这四种聚类方法有什么不同。

划分聚类:给定一个n个对象的集合,划分方法构建数据的k 个分区,其中每个分区表示一个族(族)。大部分划分方法是基于距离的,给定要构建的k个分区数,划分方法首先创建一个初始划分,然后使用一种迭代的重定位技术将各个样本重定位,直到满足条件为止。

层次聚类:层次聚类可以分为凝聚和分裂的方法;凝聚也称自底向上法,开始便将每个对象单独为一个族,然后逐次合并相近的对象,直到所有组被合并为一个族或者达到迭代停止条件为止。分裂也称自顶向下,开始将所有样本当成一个族,然后迭代分解成更小的值。

基于密度的聚类:其主要思想是只要“邻域“中的密度(对象或数据点的数目)超过某个阀值,就继续增长给定的族。也就是说,对给定族中的每个数据点,在给定半径的邻域中必须包含最少数目的点。这样的主要好处就是过滤噪声,剔除离群点。

基于网格的聚类:它把对象空间量化为有限个单元,形成一个网格结构,所有的聚类操作都在这个网格结构中进行,这样使得处理的时间独立于数据对象的个数,而仅依赖于量化空间中每一维的单元数。

划分聚类是基于距离的,可以使用均值或者中心点等代表族中心,对中小规模的数据有效;而层次聚类是一种层次分解,不能纠正错误的合并或划分,但可以集成其他的技术;基于密度的聚类可以发现任意形状的族,族密度是每个点的“邻域“内必须具有最少个数的点,可以过滤离群点;基于网格的聚类使用一种多分辨率网格数据结构,能快速处理数据。

但在目前的工业应用中,主要是划分聚类和层次聚类的应用,所以接下来的内容主要在这几个方面。

 

2.1 样本相似性度量 
要用数量化的方法对事物进行分类,就要用数量化的方法来定义每个样本的相似程度,这个相似程度在数学上可以称之为距离,
2.2 类与类间的相似性度量 

如果有两个样本类G1,G2G1,G2,可以用下面的一系列方法度量他们之间的距离:
最短距离法与最长距离法:

直观理解为两个类中最近两点之间的距离。直观理解为两个类中最远离两点间的距离

2.3 变量间的相似度度量

相关系数,记变量xjxj的取值(x1j,x2j,⋯,xnj)(x1j,x2j,⋯,xnj)就可以用两变量的相关系数作为他们的相似性度量:

余弦相似度:也可以利用两个变量的夹角余弦作为它们的相似性度量:

划分聚类的代表是K-Means算法

它需要在一开始指定类目数,根据距离最近的原则,把待分类的样本点划分到不同的族,然后按照平均法计算各个族的质心,重新分配质心,直到质心的移动距离小于某个值。

 

K-Means算法也称K-均值聚类算法,是一种广泛使用的聚类算法,也是其他聚类算法的基础。

假定输入样本为S = X1,X2,···,Xm,则算法步骤为: 
1. 选择初始的k个类别中心μ1μ2…μk
 
2. 对于每个样本Xi,将其标记为距离类别中心最近的类别(距离计算一般采用欧式距离) 
3. 将每个类别中心更新为隶属该类别的所有样本的均值 
4. 重复最后两步,直到类别中心的变化小于某阈值。

4.层次聚类

层次聚类不需要指定类数,它把每个点划分为一族,将最近的两个点划分为一族,重复划分直到只剩下一个族。

 

第一步,所有的元素自成一类H1={w1,w2,w3,w4,w5}.H1={w1,w2,w3,w4,w5}.每个类的平台高度为0,即f(wi)=0,i=1,2,3,4,5.f(wi)=0,i=1,2,3,4,5.显然,这时D(Gp,Gq)=d(wp,wq)D(Gp,Gq)=d(wp,wq)
第二步,取新类的平台高度为1,把w1,w2w1,w2合成一个新类h6h6,此时的分类情况是:
H2={h6,w3,w4,w5}
H2={h6,w3,w4,w5}
第三步,取新类的平台高度为2,把w3,w4w3,w4合成一个新类h7h7,此时的分类情况是:
H3={h6,h7,w5}
H3={h6,h7,w5}
第四步,取新类的平台高度为3,把h6,h7h6,h7合成一个新类h8h8,此时的分类情况是:
H4={h8,w5}
H4={h8,w5}
第五步,取新类的平台高度为4,把h8.w5h8.w5合成一个新类h9h9,此时的分类情况是:
H5={h9}
H5={h9}
如此就把所有的样本点聚为一类,如果想要聚成3类,完全可以在H3H3处停止迭代就OK了。用图可以表示为: 
 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值