【大数据开发基础】第九章聚类分析


聚类和分类的区别:

  1. 聚类:无监督的,一种自然分组的方法
  2. 分类:有监督的,提前定义好标签

1 什么是聚类分析?

  1. 聚类分析中“类”的特征:
    聚类所说的类不是事先给定的,而是根据数据的相似性和距离来划分;
    聚类的数目和结构都没有事先假定
  2. 聚类分析的目的是寻找数据中:
    潜在的自然分组结构 (structure of natural grouping)。
    感兴趣的关系 relationship

2 距离和相似系数

  1. 聚类分析的原则:
    同一个组内的数据对象具有较高的相似度;
    而不同组中的数据对象是不相似的
  2. 相似性(Similar)的度量(统计学角度)
    1) Q型聚类:对样本进行聚类 (行聚类)
    常用的距离有:只适用于度量数值型变量(间隔尺度变量)
    明可夫斯基距离(包括欧氏距离、切比雪夫距离、曼哈顿距离)、马氏距离、其他距离。
    2)R型聚类:对变量进行聚类**(列聚类)**;
    用变量之间的相似系数来度量距离。

2.1 Q型聚类(对样本聚类)

  1. 距离:测度样本间的亲疏程度
  2. 变量按测量尺度不同可划分为以下三类
    (1)间隔尺度变量(数值型变量)-可比可加
    (2)有序尺度变量(序数型变量)-可比不可加
    (3)名义尺度变量(名义型变量)-不可比不可加

2.1.1 间隔尺度变量(数值型变量)

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

  1. 明可夫斯基距离的缺点:当各变量的测量值相差悬殊时,常发生“大数吃小数”的现象,为消除这种现象带来的影响,通常先将每个变量进行标准化
  2. 另外,即使是同一个变量,选用的度量单位的不同,也将直接影响聚类分析的结果
  3. 明氏距离无法消除量纲的影响,在衡量这类样本的相似度时容易出现问题因此需要规范化。可使用【大数据开发基础】第五章数据预处理中的零-均值规范化(z-score规范化)

明氏距离的数值与指标的量纲有关。如,二维样本(身高、体重),有三个样本:
a(180,50); b(190,50); c(180,60)
则a与b之间的明氏距离(欧氏距离、切比雪夫距离)等于a与c之间的距离
但问题是,身高的10cm真的等价于体重的10kg吗?

  1. 比例数值变量(比例标度型变量):
    一个比例数值变量指在非线性的标度上取正的度量值的变量,如指数比例:
    在这里插入图片描述
  2. 在计算比例数值变量所描述对象间的距离时,有两种处理方法:
    1)将比例数值变量看作区间标度变量,采用相同的方法处理,但不佳,因为比例尺度是非线性的;
    2)采用对数变换 y i f = l o g ( x i f ) y_{if}=log(x_{if}) yif=log(xif),对比例数值变量进行处理,然后将yif当做区间标度变量来处理。

2.1.2 有序尺度变量(序数型变量)

  1. 有序尺度变量(顺序变量):
    一个离散的顺序变量类似于符号变量,但不同的是顺序变量的M个状态是以有意义的顺序进行排列的。

如专业等级是一个顺序变量,是按照助教、讲师、副教授和教授的顺序排列的。

  1. 一个连续的顺序变量,值的相对位置要比它的实际数值有意义的多,如某个比赛的相对排名(金牌、银牌和铜牌)可能比实际得分更重要。
  2. 有序尺度变量的处理与间隔尺度变量非常类似,假设f是用于描述n个对象的一组顺序变量之一,关于f的距离计算如下:
    在这里插入图片描述
    接下来就可以用间隔尺度变量中所描述的任意一组距离度量方法进行计算相异度。

2.1.3 名义尺度变量(名义型变量)

  1. 名义尺度变量(符号变量):
    (1)二元变量:只有两个状态:0或者1。其中0代表变量所表示的状态不存在;1则代表相应的状态存在。
    如:电路的开和关,天气的有雨和无雨,人口性别的男和女,医疗诊断中的“十”和“一”,市场交易中的买和卖等都是此类变量
    (2)名义变量:是二元变量的推广,可具有多于两个的状态值
    如颜色变量(红、橙、黄、绿、蓝等)。
2.1.3.1 二元变量的相异度计算
  1. 差异矩阵法:如果假设所有的二元变量有相同的权重,则可以得到一个两行两列(2*2)的条件表。
    在这里插入图片描述

其中:
q表示在对象i和对象j中均取1的二值变量个数;
r表示在对象i取1但对象j中取0的二值变量个数;
s表示在对象i中取0而在对象j中取1的二值变量个数;
t则表示在对象i和对象j中均取0的二值变量个数。
二值变量的总数为p,则:p=q+r+s+t。

  1. 如果一个二值变量取0或1所表示的内容同等价值,且有相同的权重,则该二元变量是对称的。基于对称二元变量的相似度,称为恒定的相似度
  2. 如果一个二值变量的两个取值的重要性不同等重要,则该二元变量就是不对称的。基于这样的二元变量的相似度被称为非恒定的相似度
  3. 恒定相似度而言,评价对象i和j间相异度的最著名的方式是简单匹配系数
    在这里插入图片描述
  4. 非恒定相似度,最常见的描述对象i和对象j间差异度的参数是Jaccard相关系数
    在这里插入图片描述
2.1.3.2 名义尺度变量

名义尺度变量 是二元变量的推广,可具有多于两个的状态值,如颜色变量(红、橙、黄、绿、蓝等)。

类似于对称二元变量里的计算方法!!!
在这里插入图片描述

2.1.4 混合型数据

混合数据类型:
在实际数据库中,数据对象往往是用复合数据类型来描述的,而且常常包括以上六种数据类型:间隔尺度(数值)变量、比例数值变量、对称二元变量、不对称二元变量、符号变量和顺序变量
如何计算相异度?
一种方法是将变量按类型分组,对每种类型的变量单独聚类分析,但实际中,往往不可行。
一种更可取的方法是将所有的变量一起处理,只进行一次聚类分析。

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

2.2 R型聚类(对变量聚类)

  1. 相似系数:测度变量之间的亲疏程度
  2. 有两种常见的相似系数:夹角余弦、相关系数
  3. 夹角余弦:角越小,余弦值越大,相似性越大
  4. 相关系数:即数据中心化后的矢量夹角余弦
    在这里插入图片描述

3 类的定义和类间距离

3.1 类的定义

定义1 设集合S中任意元素 x i x_i xi x j x_j xj间的距离 d i j d_{ij} dij d i j ≤ h d_{ij}≤h dijh,其中h为给定的阈值,称S对于阈值h组成一类。适合团簇状

定义2:设集合S中任意元素xi与xj间的距离dij满足: 1 k − 1 ∑ x j ∈ S d i j ≤ h \frac{1}{k-1}\sum_{x_j∈S}d_{ij}≤h k11xjSdijh
则S对于阈值h组成一类。其中k为S中元素的个数。(类内平均距离)。适合团簇状

定义3:设集合S,对于其中任意一个元素 x i ∈ S x_i∈S xiS,都存在 x j ∈ S x_j∈S xjS,使得二者之间的距离 d i j ≤ h d_{ij}≤h dijh成立,则称S对于阈值h组成一类。适合长条状

3.2 类间距离

3.2.1 最近距离(single linkage method)

最近距离:极小异常值在实际中不多出现,并且能够避免极大值的影响
在这里插入图片描述

3.2.2 最远距离 (complete linkage method)

最远距离法可能被极大值扭曲,解决方法是删除这些值之后再聚类
在这里插入图片描述

3.2.3 平均距离 (average linkage method)

类平均距离法利用了所有样本的信息,被认为是较好的系统分类法
在这里插入图片描述

3.2.4 中间距离 (median method)

类与类之间的距离既不取两类最近样品间的距离,也不取两类最远样品间的距离,而是取介于两者中间的距离,称为中间距离法(median method)

在这里插入图片描述

3.2.5 重心距离

重心距离法:类重心之间的距离。对异常值不敏感,结果更稳定
在这里插入图片描述

4 聚类算法

主要的聚类算法可以划分为如下几类:
(1)划分方法;
(2)层次方法;
(3)基于密度的方法;

4.1 基于划分的聚类方法

为达到全局最优,基于划分的聚类会要求穷举所有可能的划分,但实际中,绝大多数应用采用了以下两个比较流行的启发式方法:
(1)k-均值(k-means)聚类算法:每个聚类用该聚类中对象的平均值来表示;
(2)k-中心点(k-mediods) 算法:每个聚类用接近聚类中心的一个对象来表示。

4.1.1 k-均值(k-means)聚类算法

  1. K-均值(k-means)算法是将各个聚类子集内的所有数据样本的均值作为该聚类的代表点;

  2. K-均值(k-means)算法的主要思想是通过迭代过程把数据集划分为不同的类别,使得评价聚类性能的准则函数达到最优,从而使生成的每个聚类内紧凑,类间独立。

  3. K-均值(k-means)不适合处理离散型属性对连续型属性有较好的聚类效果
    在这里插入图片描述

  4. K-均值聚类算法通常选择误差平方和最小作为收敛准则函数
    在这里插入图片描述

  5. K-均值聚类算法的缺点
    (1)得到的是局部最优,不是全局最优
    (2)要求必须事先给出要生成的簇的个数,选择初始划分的最佳方向、更新分区和停止规则
    (3)不适合发现大小很不相同的簇或具有凹状的簇
    (4)算法只有在簇的平均值被定义的情况下才能使用,这不涉及有类属性的数据
    (5)对噪声和异常点非常敏感
    (6)孤立点的存在会大幅度扭曲数据的分布
    (7)样本需要是数值型的
    (8)第一次迭代随机选取的K个样本点,会导致最终结果不同

4.1.2 k-中心点(k-mediods) 算法

  1. 基本策略:
    首先为每个簇随意选择一个代表对象,称为中心点,剩余的对象根据其与中心点间的距离分配给最近的一个簇。
    然后重复地用非中心点对象来替代中心对象,如果它改善了结果聚类的整体距离,则进行替代。(考虑了整体,鲁棒性更好
    聚类结果的质量用一个代价函数来估算,该函数度量对象与其参照对象之间的平均相异度。
  2. 为判定一个非代表对象 O r a n d o m O_{random} Orandom是否是当前代表对象Oj的一个好的替代 ,对于每一个非中心点对象p,考虑如下四种情况:
    (代价函数为负说明用 O r a n d o m O_{random} Orandom取代是合理的)
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述

4.1.3 k-means和k-mediods的比较

相同点:都是划分聚类算法。都需要用户提前指定聚类结果的数目k
不同点:

  1. k-means
    (1)每个簇用该簇中对象的均值表示,可以是一个虚点
    (2)使用误差平方和作为评价准则
  2. k-mediods
    (1)每个簇用接近中心(均值)的一个对象来表示,是实际存在的点
    (2)使用绝对误差作为评价标准
    (3)k-中心点方法比k-均值方法更健壮,因为其不易受到极端数据的影响;
    (4)k-中心点方法比k-均值方法的执行代价高

4.2 基于层次的聚类方法

  1. 该方法对给定的数据对象集合进行层次分解,根据层次分解的方式,层次的方法被分为凝聚的和分裂的:
    (1)凝聚层次方法:也称自底向上方法,一开始将每个对象作为单独的一组,然后相继地合并相近的对象或组,直到所有的组合并为一个,或达到某个终止条件,代表:AGNES算法
    (2) 分裂层次方法:也称自顶向下方法,一开始所有对象置于一个簇中,在迭代的每一步,一个簇被分裂为更小的簇,直到最终每个对象单独为一个簇,或达到某个终止条件,代表:DIANA算法

4.2.1 凝聚层次方法-AGNES算法

AGNES 算法:最初将每个对象作为一个簇,然后这些簇根据某些准则被一步步地合并,直到达到初始指定的簇数目。

AGNES算法特点

  1. 当最小距离有多对时,会随机选择一对进行合并
  2. 运算复杂度大,为 O ( n 2 ) O(n^2) O(n2)
  3. 算法简单,但一旦一组对象被合并,下一步处理需在新生成的簇上进行,已做处理不能撤销

算法9-1 AGNES(自底向上凝聚算法)
输入:包含n个对象的数据库,终止条件簇的数目k。
输出:k个簇,达到终止条件规定簇数目。
(1) 将每个对象当成一个初始簇;
(2) REPEAT
(3) 根据两个簇中最近的数据点找到最近的两个簇;
(4) 合并两个簇,生成新的簇的集合;
(5) UNTIL 达到定义的簇的数目;

例题
在这里插入图片描述

4.2.2 分裂层次方法-DIANA算法

DIANA 算法:与AGNES算法相反,初始所有节点都在一个大簇中,根据某些准则被一步步地分解,直到达到初始设定的簇数目。
聚类过程中,DIANA算法将用到如下两种测度方法:
簇的直径:一个簇中的任意两个数据点的距离中的最大值;选择直径最大的进行分裂
平均相异度(平均距离)将平均相异度最大的分出去
在这里插入图片描述

算法9-2 DIANA(自顶向下分裂算法)
输入:包含n个对象的数据库,终止条件簇的数目k。
输出:k个簇,达到终止条件规定簇数目。
(1)将所有对象整个当成一个初始簇;
(2) FOR (i=1; i≠k; i++) DO BEGIN
(3) 在所有簇中挑出具有最大直径的簇C;
(4) 找出C中与其它点平均相异度最大的一个点p并把p放入splinter group,剩余的放在old party中;
(5). REPEAT
(6) 在old party里找出到最近的splinter group中的点的距离不大于到old party中最近点的距离的点,并将该点加入splinter group。
(7) UNTIL 没有新的old party的点被分配给splinter group;
(8) splinter group和old party为被选中的簇分裂成的两个簇,与其它簇一起组成新的簇集合。
(9) END.

例题
在这里插入图片描述

4.3 基于密度的聚类方法

  1. 绝大多数聚类方法基于对象之间的距离进行聚类,这样的方法只能发现球状的簇
  2. 基于密度的聚类方法:只要一个区域中点的密度(对象或数据点的数目)超过某个阈值,就将其加到与之相近的聚类中去。
    这种方法可以过滤噪声孤立点数据发现任意形状的簇
    代表算法有:DBSCAN、OPTICS、DENCLUE算法等。
  3. DBSCAN:基于密度的聚类算法。该算法将具有足够高密度的区域划分为簇,并可以在带有噪声的空间数据中发现任意形状的聚类。
    在该方法中,簇被定义为密度相连的点的最大集合

DBSCAN算法

定义 1: 对象的ε-邻域:给定对象在半径ε内的区域。
定义2: 核心对象:如果一个对象的ε-邻域至少包含最小数目MinPts个对象,则称该对象为核心对象。

例如,在下图中,设定ε=1cm,MinPts=5,则q是一个核心对象。
在这里插入图片描述

定义 4: 密度可达的:如果存在一个对象链p1,p2,…,pn,p1=q,pn=p,对pi∈D,(1<=i<=n),pi+1是从pi关于ε和MitPts直接密度可达的,则对象p是从对象q关于ε和MinPts密度可达的。
定义 5: 密度相连的:如果对象集合D中存在一个对象o,使得对象p和q是从o关于ε和MinPts密度可达的,那么对象p和q是关于ε和MinPts密度相连的。

例如,在下图中,ε=1cm,MinPts=5,o是一个核心对象,p1是从o关于ε和MitPts直接密度可达,p是从p1关于ε和MitPts直接密度可达,则对象p从对象o关于ε和MinPts密度可达的;同理,q也是从o关于ε和MinPts密度可达的,则,称对象p和q是关于ε和MinPts密度相连的。
在这里插入图片描述

定义 6: 噪声:一个基于密度的簇是基于密度可达性的最大的密度相连对象的集合。不包含在任何簇中的对象被认为是“噪声” 。

在这里插入图片描述

在这里插入图片描述

  • 1
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值