概念及简介
概念
根据给定的样本,依据它们特征的相似度或距离,将样本归类到若干个“类”或“族”的数据分析问题
两种常见的聚类算法:
- 层次聚类
层次聚类分为聚合和分裂两种方法。
聚合法开始将每个样本各自分到一个类中,之后将相距最近的两类合并,简历一个新的类,重复次操作,直到满足停止条件。由此可见,聚合法是自下而上的。
分类法开始将所有的样本分到一个类中,之后将已有类中相距最远的样本分到两个新的类,重复此操作,直到满足停止条件为止。由此可见,分类法是自上而下的。 - K-均值聚类
基于中心的聚类方法,通过迭代,将样本分到K个类中,使得每个样本与其所属的类的中心或均值最近,得到K个“平坦的”、非层次化的类别,构成对空间的划分。
硬聚类和软聚类
- 硬聚类:一个样本只能属于一个类,即类的交集为空
- 软聚类:一个样本可以不止属于一个类,即类的交集不为空
距离度量函数
闵可夫斯基距离
闵可夫斯基距离越大,相似度越小;闵可夫斯基距离越小,相似度越大。
其中:
i:代表样本i
j:代表样本j
m:代表样本的属性个数
当闵可夫斯基中的p=1时,称为曼哈顿距离:
当闵可夫斯基中的p=2时,称为欧式距离:
当闵可夫斯基中的p=∞时,称为切比雪夫距离:
即:取各个坐标数值差的绝对值的最大值
马哈拉诺比斯距离
简称马氏距离
马哈拉诺比斯距离越大,相似度越小;马哈拉诺比斯距离越小,相似度越大
给定一个样本集合X:,且协方差矩阵记作S,样本xi与样本xj之间的马哈拉诺比斯距离定义为:
其中:
当S为单位矩阵时,即样本数据的各个分量之间相互独立且各个分量的方差为1时,马氏距离就是欧式距离。
相关系数
样本之间的相似性也可以用相关系数来表示。相关系数的绝对值越接近1,样本越相似;相关系数的绝对值越接近0,样本越不相似
其中
即所有特征的均值
夹角余弦
夹角余弦值越接近于1,样本越相似;夹角余弦越接近于0,样本越不相似
类或簇
符号说明
类的常见四种定义
-
设T为给定的正数,若集合G中任意两个样本xi、xj,有;
则称G为一个类或簇 -
设T为给定的正数,若对集合G的任意样本xi,一定存在G中的另一个样本xj,使得:
则称G为一个类或簇 -
设T为给定的正数,若对集合G中任意一个样本xi,G中的另一个样本xj,满足: 则称G为一个类或簇
-
设T和V为给定的两个正数,如果集合G中任意两个样本xi,xj的距离dij满足:
则称G为一个类或簇
类(簇)的其他特征
-
类的均值(类的中心):类中所有样本点各个特征的平均值
-
类的直径:类中距离最大的两个样本之间的距离
-
类的样本散布矩阵
-
类的样本协方差矩阵
类与类之间的距离
-
最短距离或单连接
类p中的样本与类q中的样本之间的最短距离
-
最长距离或完全连接
类p中的样本与类q中的样本之间的最长距离
-
中心距离
类p的中心与类q的中心之间的距离
-
平均距离
类p与类q中任意两个样本之间距离的平均值
层次聚类
层次聚类假设类别之间存在层次关系,将样本聚类到层次化的类中。因为样本只能属于一个类,所以层次聚类是硬分类聚类。层次聚类分为自下而上的聚类和自上而下的分裂两种。
- 自下而上的聚类:开始将每一个样本各自分到一个类中,然后将相聚最近的两类合并,建立一个新的类,重复次操作,直到满足停止条件,得到层次化的类别
- 自上而下的分裂:开始将所有的样本分到一个类中,然后根据已有类中相聚最远的样本分到两个新的类,重复此操作,每次减少一个类,直到满足停止条件。
层次聚类的三个关键要素:
- 距离或相似度:闵可夫斯基距离、马哈拉诺比斯距离,、相关系数、夹角余弦
- 合并规则/分裂规则:一般是类间距离最小。类间距离可以是:最短距离、最长距离、中心距离、平均距离。
- 停止条件:类的个数达到阈值,类的直径超过阈值
层次聚类算法步骤:
以欧式距离作为距离或相似度度量,类间距离最小作为合并规则,类的个数为1为停止条件的自下而上的聚合聚类为例。
输入:n个样本组成的样本集合
输出:对样本集合的一个层次化聚类
- 计算n个样本之间两两之间的欧式距离,记作:D
- 构造n个类,每个类只包含一个样本
- 合并类间距离最小的两个类,构建一个新的类
- 计算新类与当前各类的距离。若类的个数为1,终止计算,否则回到步骤3
K均值聚类
k均值聚类是基于样本划分的聚类算法。k均值聚类将样本集合划分为k个子类,构成k个类,将n个样本分到k个类中,每个样本到其所属类的中心的距离最小。每个样本只能属于一个类,所以k均值聚类是硬聚类算法。
策略
最小化所有样本到各自类中心的距离之和
K均值聚类算法步骤
输入:n个样本的集合X
输出:样本集合的聚类
- 初始化。令t=0(迭代次数),随机选择k个样本作为初始聚类中心M0=(M01,M02,…,M0k)
- 对样本进行聚类。对固定的类中Mt=(Mt1,Mt2,…,Mtk),其中Mtn为第t次迭代,第k个类中心。计算每个样本到类中心的距离,将每个样本指派到与其最近的中心的类中,构成聚类结果Ct;
- 计算新的类中心,对聚类结果Ct,计算当前各个类中样本的均值,作为新的类中新Mt+1.
- 如果迭代收敛或者符合停止条件,输出最终的聚类结果。否则,令t=t+1,返回步骤2.
算法特点
- 基于划分的聚类算法;
- 类别数k事先指定
- 以欧氏距离平方表示样本之间的距离,以中心或样本的均值表示类别
- 以样本和其所属类的中心之间的距离的总和为最优化的目标函数
- 得到的类别是平坦的、非层次的;
- 算法是迭代算法,不能保证得到全局最优解
- 初始中心的选择会直接影响到聚类结果
- 选择不同的初始化中心,会得到不同的聚类结果