目录
聚类是根据样本之间的特征的相似度或距离,将样本划分到若干类之中,相似度高的在一个类,相似度低的在另一个类。
1. 基本概念
1.1 相似度
给定样本集合
X 是一个 的矩阵,其中
表示第 j 个样本的第 i 维特征值。
聚类的核心概念是相似度,可以用距离来表示两个样本之间的相似度。
1.1.1 闵可夫斯基距离
闵可夫斯基距离定义如下
表示曼哈顿距离
表示欧式距离
- p 取无穷时表示切比雪夫距离
1.1.2 马哈拉诺比斯距离
又称马氏距离,考虑各个特征之间的相关性并与各个特征的尺度无关。马氏距离越大,相似度越小。
令样本集合 的协方差矩阵为
,则马氏距离定义为
当 为单位矩阵时,即样本数据的各分量互相独立且方差为 1 时,马氏距离就是欧氏距离,所以马氏距离是欧氏距离的推广。
1.1.3 相关系数
除了距离也可以用相关系数来表示相似度,相关系数的绝对值越接近 1 ,表示样本越相似。
其定义如下
其中
1.1.4 夹角余弦
夹角余弦越接近1 ,表示样本越相似。
1.2 类或簇
如果一个聚类方法假定一个样本只能属于一个类,则称作硬聚类,如果一个样本可以属于多个类,则称为软聚类。用 G 表示一个类或簇, 表示该类或簇的样本集,则类或簇的定义为
设 T 为给定的正数,若集合 G 中的任意两个样本 ,有
,则称 G 为一个类或簇。
1.2.1 类的特征刻画
均值(中心) | |
直径 | |
散布矩阵 | |
协方差矩阵 |
1.2.2 类间距离
考虑类 之间的距离
,也称为连接;类间距离可以定义为
最短距离(单连接) | |
最长距离(完全连接) | |
中心距离 | |
平均距离 |
2. 层次聚类
层次聚类假设类别之间存在层次结构,又分聚合聚类或分裂聚类两种。
聚合聚类开始将每个样本各自分到一类,然后将最近的两类合并,建立一个新的类,重复此操作直到满足停止条件。
分裂聚类则是开始将所有样本当作一个类,然后将现有类中距离最远的样本分类两个新的类,重复直到满足条件。
2.1 聚合聚类
聚合聚类首先需要确定三个因素:
- 距离或相似度
- 合并规则
- 停止条件
2.1.1 算法流程
输入:样本集合
输出:层次化聚类模型
- 计算 n 个样本两两之间的欧氏距离
得到类间距离矩阵
- 构造 n 个类,每个类只包含一个样本
- 合并类间距离最小的两个类,得到一个新类
- 计算新类和当前各类的距离,重复;若类的个数是 1 则终止。
聚合聚类的复杂度是
3. k 均值聚类
k 均值聚类是基于样本集合划分的方法,它将样本集合划分到 k 个子集,构成 k 个类并将 n 个样本划分到 k 个类中,使得每个样本到所属类的中心点距离最小。
3.1 策略
假定共有 n 个样本,每个样本为 m 维,共分成 k 个类,用 C 表示划分。
定义样本与所属类的中心的距离总和为损失函数
则 k 均值聚类即求解最优化问题
当相似的样本被聚到同类时,损失函数有最小值。但事实上求得最优解是 NP 困难问题,一般采用迭代的方法求解。
3.2 算法
迭代过程算法大致可分为两步:
- 选择 k 个类中心,然后将样本指派到距离它最近的一个类中心所在的类中
- 更新类中心
输入:样本集合
输出:聚类模型
- 初始化,令
,随机选择 k 个样本点作为初始聚类中心
- 对样本聚类,对聚类中心
,计算每个样本到每个聚类中心的距离,将每个样本指派到与其最近的中心的类中,得到聚类结果
- 计算新的类中心,如计算每个当前类中的样本的均值,作为新的类中心,得到
- 重复直到满足终止条件,输出划分
时间复杂度为
3.3 特性
3.3.1 总体特点
- 基于划分的聚类方法
- 类别数 k 事先指定
- 欧氏距离作为样本之间的距离
- 以中心或样本均值表示类别
- 以样本和所属的类中心之间的距离和为优化的目标函数
- 得到的类是平坦的非层次化的
- 迭代算法,不保证全局最优
3.3.2 收敛性
是启发式方法,不保证收敛到全局最优,初始中心的选择会影响聚类结果;类中心会移动但一般不会移动太大。
对初始中心的选择人比如可以用层次聚类得到 k 个类别时停止,然后从每个类中选取一个与中心距离最近的点作为初始中心。
3.3.3 k 的选择
可以尝试不同的 k 来聚类,比如可以通过类的平均直径作为聚类结果的度量,一般的类别数变小,平均直径会增加;类别大到某个值后,平均值会不变,该值即可作为最优 k 值。