6.1 概述
聚类是无监督机器学习问题
目标:感知样本间的相似度,进行类别归纳
重要应用:1.潜在类别预测 2.数据压缩
既可以作为一个单独过程,用于寻找数据内在的分布结构,也可以作为分类、稀疏表示等其他学习任务的前驱任务
影响聚类结果的因素:1. 属性选择 2.相似性度量 3. 聚类规则
常用到的相似性度量:
1.样本–样本
- 向量相似性
2.样本–集合
- 集合为离散点集
- 到集合最远点距离
- 到集合最近点距离
- 到集合平均点距离
- 集合为连续区域
- 集合为平面 d ( x , H ) = min z ϵ H d ( x , z ) d(x,H)=\displaystyle \min_{z\epsilon H}d(x,z) d(x,H)=zϵHmind(x,z)
- 集合为圆 d ( x , Q ) = min z ϵ Q d ( x , z ) d(x,Q)=\displaystyle \min_{z\epsilon Q}d(x,z) d(x,Q)=zϵQmind(x,z)
3.集合–集合(类间距离)
- 集合间最远点距离
- 集合间最近点距离
- 集合间所有点平均距离
- 集合表征点间距离(如平均值)
4.集合内样本间距离(类内距离)
性能度量
6.2 序贯方法
逐一比较单个样本与类簇的相似性,有相似类则归类,无相似类则建新类
优点:一种简单的,快速算法
相似性的关键度量:类别相似性:样本–类簇(样本–集合)
缺点:所有样本过滤一遍后才知道类别总数,而先出现的样本不能找到(后出现的)合适类别
改进算法:采用两个阶段,类别确定、分类
两阶段序贯方法:1.检测类别个数(只新建类别) 2. 类别划分(只进行分类)
缺点:以上两种方法依赖于阈值
改进方法:弱化阈值作用,采用两个阈值,形成灰色带
双阈值序贯算法:在阈值中间的小心判别,慢慢放进类里
前面三种算法缺点:1. 当类别一旦产生,不可变,尽管后来类簇增加,类别很相近也无法合并 2. 敏感于样本顺序,样本类别未必是最合适的
增强算法:增强处理1:对类别集合进行合并操作;增强处理2:对样本类别重置
6.3 层次聚类
聚类嵌套定义:R1和R2是样本集X上的两种聚类划分,如果R1中所有的类簇都是R2中类簇的子集,则称R1嵌套在R2内,记作 R 1 ⊂ R 2 R1 \subset R2 R1⊂R2
层次聚类策略:类簇之间(依据相似性)不断合并或不断的分化,直到满足聚类停止条件。
自底向上/归并算法:
- 第i次迭代:计算所有两个类簇的相似性,归并最相似的两个类簇,更新类别划分Ri
- 缺点:没有归并的类簇间相似性,被重复计算
- 基于矩阵的归并算法
- 利用矩阵记录类簇间的相似性
- 删除对应合并的两行和列
- 增加一行和列:新类簇与其他类簇的相似度
- 优点:不必重复计算“没有合并的类簇间”的相似性
- 利用矩阵记录类簇间的相似性
自顶向下/分化算法:
- 第i次迭代:在所有类簇的所有划分中,计算所有两个类簇相似性,选择最不相似的类簇集合划分,更新类别划分Ri
- 缺点:没有划分的类簇间相似性,被重复计算
- 对于包含有n个样本的类簇,可能分化有几种? ( 2 n / 2 ) − 1 = 2 n − 1 − 1 (2^{n}/2)-1=2^{n-1}-1 (2n/2)−1=2n−1−1
6.4 k均值聚类
**kmeans:**将样本分给最近的类心,然后重新调整类心,通过多次迭代,逐步进行类别划分
最优准则:最小化误差平方和
误差的扩展:也可以采用余弦距离,或其他反映距离和误差的度量
一般方法:最近类心原则,批量划分后修正类心
存在的问题:1.可能导致空的类簇 2.批量修正使得划分并不能最好的收敛目标
改进方法:单个划分最优原则,单个划分后修正类心