美文网首页
第九章 聚类

第九章 聚类

作者: 晨光523152 | 来源:发表于2020-09-02 14:57 被阅读0次

9.1 聚类任务

聚类试图将数据集中的样本划分为若干个通常是不相交的子集,每个子集称为一个“簇”。

需要说明的是,聚类过程仅仅能自动形成簇结构,簇所对应的概念语义需由使用者来把握和命名

形式化地说,假定样本集D = \{x_{1},x_{2},...,x_{m}\}包含m个无标记样本,每个样本x_{i} = (x_{i1},x_{i2},...,x_{in})是一个n维特征向量,则聚类算法将样本集D划分为k个不相交的簇\{C_{l}|l=1,2,...,k\}

相对应的,用\lambda_{j}\in \{1,2,...,k\}表示样本x_{j}的“簇标记”,即x_{j} \in C_{\lambda_{j}}

首先讨论聚类算法涉及的两个基本问题--性能度量和距离计算。

9.2 性能度量

对聚类结果,我们需要通过某种性能度量来评估其好坏;另一方面,若明确了最终将要使用的性能度量,则可直接将其作为聚类过程的优化目标,从而更好地得到符合要求的聚类结果。

希望,同一簇的样本尽可能彼此相似,不同簇的样本尽可能不同,换句话说就是,希望聚类结果的“簇内相似度”高并且“簇间相似度”低。

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

  • 外部指标:将聚类结果与某个“参考模型”进行比较
  • 内部指标:直接考察聚类结果而不利用任何参考模型

外部指标
对数据集D=\{x_{1},x_{2},...,x_{m}\},假定通过聚类给出的簇划分为C=\{C_{1},C_{2},...,C_{k}\},参考模型给出的簇划分为C^{*}=\{C_{1}^{*},C_{2}^{*},...,C_{s}^{*}\}。相应地,令\lambda\lambda^{*}分别表示与CC^{*}对应的簇标记向量。将样本两两配对考虑,定义:

image.png

其中,
集合SS包含了在C中隶属于相同簇且在C^{*}中ue隶属于相同簇的样本对;
集合SD包含了在C中隶属于相同簇但在C^{*}中隶属于不同簇的样本对;

由于每个样本对(x_{i},x_{j})(i < j)仅能出现在一个集合中,因此有
a + b + c + d = \frac{m(m-1)}{2}

基于上面的式子,可以导出下面这些常用的聚类性能度量外部指标:


image.png

上述性能度量的结果值均在[0,1]区间,值越大越好

内部指标

image.png

其中,dist(. , .) 用于计算两个样本之间的聚类;\mu代表簇C的中心点\mu=\frac{1}{|C|}\Sigma_{1\leq i\leq |C|}x_{i}

  1. avg(C)对应于簇C内样本间的平均距离;
  2. diam(C)对应于簇C内样本间的最远距离;
  3. d_{min}(C_{i},C_{j})表示簇C_{i}和簇C_{j}最近样本间的距离
  4. d_{cen}(C_{i},C_{j})表示簇C_{i}与簇C_{j}中心点间的聚类
image.png

9.3 距离计算

对函数dist(. , .),若它是一个“距离度量”,则需满足一些基本性质:

  • 非负性:0 \leq dist(x_{i},x_{j})
  • 同一性:dist(x_{i},x_{j})==0当且仅当x_{i}==x_{j}
  • 对称性:
    dist(x_{i},x_{j}) == dist(x_{j},x_{i})
  • 直递性:
    dist(x_{i},x_{j})\leq dist(x_{i},x_{k}) + dist(x_{k},x_{j})

给定样本x_{i}=(x_{i1},x_{i2},...,x_{in})与样本x_{j}=(x_{j1},x_{j2},...,x_{jn}),最常用的是“闵科夫斯基距离”:
dist_{mk}(x_{i},x_{j})=(\sum_{u=1}^{n}|x_{iu}-x_{ju}|^{p})^{\frac{1}{p}}

p=1时,变成了曼哈顿距离:
dist_{man}(x_{i},x_{j})=||x_{i}-x_{j}||_{1} = \sum_{u=1}^{n}|x_{iu}-x_{ju}|

p=2时,变成了欧式距离:
dist_{ed}(x_{i},x_{j}) = ||x_{i} - x_{j}||_{2} = \sqrt{\sum_{u=1}^{n}|x_{iu}-x_{ju}|^{2}}

p = \infty时,变成了切比雪夫距离:
dist_{che}(x_{i},x_{j}) = ||x_{i} - x_{j}||_{\infty} = max(|x_{iu}-x_{ju}|),u\in {1,2,...,n}

常将属性划分为“连续属性”和“离散属性”,前者在定义域上有无穷多个可能的取值,后者在定义域上是有限个取值。

然而,在讨论距离计算时,属性上是否定义了“序”关系更为重要。

image.png

显然,闵科夫斯基距离可用于有序属性。

对无序属性可采用VDM(Value Difference Metric)。令m_{u,a}表示在属性u上取值为a的样本数,m_{u,a,i}表示在第i个样本簇中属性u上取值为a的样本数,k为样本簇数,则属性u上两个离散值ab之间的VDM距离为:

image.png

将闵科夫斯基距离和VMD结合即可处理混合属性。

假定有n_{c}个有序属性,n-n_{c}个无序属性,不失一般性,令有序属性排列在无序属性之前,则:

image.png

当样本空间中不同属性的重要性不同时,可使用“加权距离”。

image.png

需要注意的是,通常我们是基于某种形式的距离来定义“相似度度量”,距离越大,相似度越小。

然而,用于相似度度量的距离未必一定满足距离度量的所有基本性质。

9.4 原型聚类

原型聚类亦称“基于原型的聚类”,此类算法假设聚类结构能通过一组原型刻画。

通常情形下,算法先对原型进行初始化,然后对原型进行迭代更新求解。采用不同的原型表示,不同的求解方式,将产生不同的算法。

9.4.1 k均值算法

给定样本集D=\{x_{1},x_{2},...,x_{m}\},k均值算法针对聚类所得簇划分C=\{C_{1},C_{2},...,C_{k}\}最小化平方误差:
E = \sum_{i=1}^{k}\sum_{x\in C_{i}}||x - \mu_{i}||_{2}^{2}
其中,\mu_{i}=\frac{1}{|C_{i}|}\sum_{x\in C_{i}}x是簇C_{i}的均值向量。

上面的式子在一定程度上刻画了簇内样本围绕簇均值向量的紧密程度,E值越小则簇内样本相似度越高。

最小化上式不容易,找到它的最优解需考察样本集D所有可能的簇划分,这是一个NP难问题。

因此,k均值算法采用了贪心策略,通过迭代优化来近似求解。

image.png

参考资料:
机器学习--周志华

相关文章

  • 机器学习 西瓜书 Day10 聚类(上)

    p197 - p201Day09偷懒了,所以兑现flag,今天多看一些。 第九章 聚类 9.1 聚类任务 无监督学...

  • 《机器学习》西瓜书学习笔记(六)

    上一篇笔记在这里:《机器学习》西瓜书学习笔记(五) 第九章 聚类 9.1 聚类任务 无监督学习(unsupervi...

  • 机器学习 西瓜书 Day11 聚类(下)

    p202 - p224今天平平淡淡 第九章 聚类 9.4 原型聚类 “原型”是指样本空间中具有代表性的点。 9....

  • 第九章 聚类

    聚类 通过物品特征来计算距离,并自动分类到不同的群集或组中。 层次聚类算法 对于层次聚类算法,我们不需要预先指定分...

  • 第九章 聚类

    9.1 聚类任务 聚类试图将数据集中的样本划分为若干个通常是不相交的子集,每个子集称为一个“簇”。 需要说明的是,...

  • 聚类:原型聚类、层次聚类、密度聚类

    首先介绍三种类型的聚类方法: 原型聚类:假设聚类结构能够通过一组原型求解。通常算法先对原型进行初始化,然后进行迭代...

  • Clustering

    本文结构安排 经典聚类算法:线性聚类 Kmeans 经典聚类算法:非线性聚类 DBSCAN、谱聚类 新兴聚类算法:...

  • 数据分析方法,寻找规律的第一步,聚类分析法!第1辑

    聚类——寻找规律的第一步 聚类的基本逻辑 聚类的因子和主成分 聚类的步骤 有序聚类与时间序列聚类 什么是聚类?聚类...

  • 谱聚类算法总结

    聚类三种方法:k-means聚类、密度聚类、层次聚类和谱聚类Spectrum Clustering 简述 谱聚类是...

  • 【R语言 第2篇】K-means聚类分析流程

    聚类算法是没用因变量的。聚类算法有层次聚类、基于划分的聚类、两步聚类法、基于密度的聚类。 聚类方法的逻辑 客户细分...

网友评论

      本文标题:第九章 聚类

      本文链接:https://www.haomeiwen.com/subject/hzvisktx.html