聚类时针对给定的样本,依据它们特征的相似度或距离,将其归并到若干个“类”或“簇”的数据分析问题。一个类是给定样本集合的一个子集。
直观上,相似的样本聚集在相同的类,不相似的样本分散在不同的类。
14.1 聚类的基本概念
包括样本之间的距离或相似度,类或簇,类与类之间的距离。
14.1.1 相似度或距离
聚类的核心概念是相似度(similarity)或距离(distance),有多种相似度或距离的定义。因为相似度直接影响聚类的结果,所以其选择是聚类的根本问题。
矩阵的第
矩阵元素
- 闵可夫斯基距离
在聚类中,可将样本集合看作是向量空间中点的集合,以该空间的距离表示样本之间的相似度。常用的距离有闵可夫斯基距离,特别是欧氏距离。闵可夫斯基距离越大相似度越小,距离越小相似度越大。
定义 14.1 给定样本集合
这里
当
当
- 马哈拉诺比斯距离
马哈拉诺比斯距离(Mahalanobis distance),简称马氏距离,也是另一种常用的相似度,考虑各个分量(特征)之间的相关性并与各个分量尺度无关。马哈拉诺比斯距离越大相似度越小,距离越小相似度越大。
定义 14.2 给定一个样本集合
其中
当
- 相关系数
样本之间的相似度也可以用相关系数(correlation coefficient)来表示。相关系数的绝对值越接近于1,表示样本越相似;越接近于0,表示样本越不相似。
定义 14.3 样本
其中
- 夹角余弦
样本之间的相似度也可以用夹角余弦(cosine)来表示。夹角余弦越接近于1,表示样本越相似;越接近于0,表示样本越不相似。
定义 14.4 样本
用距离度量相似度时,距离越小样本越相似;用相关系数时,相关系数越大样本越相似。注意不同相似度度量得到的结果并不一定一致。
14.1.2 类或簇
通过聚类得到的类或簇,本质是样本的子集。如果一个聚类方法假定一个样本只能属于一个类,或类的交集为空集,那么该方法称为硬聚类(hard clustering)方法。否则,如果一个样本可以属于多个类,或者类的交集不为空集,那么该方法称为软聚类(soft clustering)方法。
用
定义 14.5 设
则称
定义 14.6 设
则称
定义 14.7 设
其中
定义 14.8 设
则称
类的特征可以通过不同角度来刻画,常用的特征有下面三种:
(1)类的均值
(2)类的直径(diameter)
类的直径
(3)类的样本散布矩阵(scatter matrix)
类样本散布矩阵
样本协方差矩阵
14.1.3 类与类之间的距离
类
设类
(1)最短距离或单链接(single linkage)
定义类
(2)最长距离或完全连接(complete linkage)
定义类
(3)中心距离
定义类
(4)平均距离
定义类
14.2 层次聚类
层次聚类假设类别之间存在层次结构,将样本聚到层次化的类中。
层次聚类又有聚合(agglomerative)或自下而上(bottom-up)聚类、分裂(divisive)或自上而下(top-down)聚类两种方法。
聚合聚类开始将每个样本各自分到一个类;之后将相邻距离最近的两类合并,建立一个新的类,重复此操作直到满足停止条件;得到层次化的类别。
分裂聚类开始将所有样本分到一个类;之后将已有类中相距最远的样本分到两个新的类,重复此操作直到满足停止条件;得到层次化的类别。
聚合聚类的具体过程如下:对于给定的样本集合,开始将每个样本分到一个类;然后按照一定规则,例如类间距离最小,将最满足规则条件的两个类进行合并;如此反复进行,每次减少一个类,直到满足停止条件,如所有样本聚为一类。
由此可知,聚合聚类需要预先确定下面三个要素:
- 距离或相似度
- 合并规则
- 停止条件
算法 14.1(聚合聚类算法)
输入:
输出:对样本集合的一个层次化聚类。
(1)计算
(2)构造
(3)合并类间距离最小的两个类,其中最短距离为类间距离,构建一个新类。
(4)计算新类与当前各类的距离。若类的个数为1,终止计算,否则回到步(3)。
14.3 均值聚类
14.3.1 模型
给定
划分
14.3.2 策略
首先,采用欧氏距离平方(squared Euclidean distance)作为样本之间的距离
然后,定义样本与其所属类的中心之间的距离的总和为损失函数,即
函数
相似的样本被聚到同类时,损失函数值最小,这个目标函数的优化能达到聚类的目的。
14.3.3 算法
- 选择
个类的中心,将样本逐个指派到与其最近的中心的类中,得到一个聚类结果; - 更新每个类的样本的均值,作为类的新的中心;
重复以上步骤,直到收敛为止。
算法 14.2(
输入:
输出:样本集合的聚类
(1)初始化。令
(2)对样本进行聚类。对固定的类中心
(3)计算新的类中心。对聚类结果
(4)如果迭代收敛或符合停止条件,输出
14.3.4 算法特性
- 总体特点
- 基本划分的聚类方法;
- 类别数
事先指定; - 以欧式距离平方表示样本之间的距离,以中心或样本的均值表示类别;
- 以样本和其所属类的中心之间的距离的总和为最优化的目标函数;
- 得到的类别是平坦的、非层次化的;
- 算法是迭代算法,不能保证得到全局最优。
- 收敛性
- 初始类的选择
选择不同的初始中心,会得到不同的聚类结果。
初始中心的选择,比如可以用层次聚类对样本进行聚类,得到
- 类别数
的选择
v1.5.2