第九章 聚类

聚类任务

训练样本的标记信息未知,目标是对无标记训练样本的学习来揭示数据的内在性质及规律,即是无监督学习,训练数据无标记,目的是为了分类。

何为无监督学习

在现实任务中,我们对一些数据往往缺乏足够的先验知识,难以进行人工标记或者标记成本过高。这个时候我们希望计算机能够帮我们完成分类数据的任务,即根据类别标记未知的训练样本来解决模式识别中的各种问题,这称之为无监督学习
常用的无监督学习算法有:1、PCA主成分分析法;2、等距映射法;3、局部线性嵌入法;4、拉普拉斯特征映射发;5、局部切空间排列法......

何为聚类

将物理或抽象对象的集合分成由类似的对象组成的多个类的过程被称为聚类。也即按照某一个特定的标准,把一个数据集分割不同的类,使得同一个类内的数据对象的相似性尽可能大,同时不在同一个类内的数据对象的差异性也尽可能的大。聚类分析又称群分析,聚类与分类不同,聚类面对的是未知,划分的类是未知的。

如何聚类

一般聚类的方法:
1、基于原型的聚类:此类算法假设聚类结构能够通过一组原型刻画,在现实聚类任务中极为常见。(k均值算法、学习向量量化、高斯混合聚类)
2、基于密度的聚类:此类算法假设聚类结构能够通过样本分布的紧密程度确定。(DBSCAN算法)
3、基于层次的聚类:层次聚类试图在不同层次对数据集进行划分,从而形成树形的聚类结构,数据集的划分可采用“自底向上”的聚合策略,也可采用“自顶向下”的分拆策略。(AGNES算法)

性能度量

聚类性能度量又称聚类“有效性指标”,与监督学习中的性能度量类似,是用来评估聚类优劣的。
聚类性能度量大致分为两类:
1、外部指标:将聚类结果与某个参考模型进行比较;
2、内部指标:直接考察聚类结果而不利用任何参考模型。


其中a+b+c+d=m(m-1)/2
常用的外部指标:

  • Jaccard系数:


  • FM指数:


  • Rand指数:

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

    其中,dist(·,·)用于计算两样本之间的距离代表类C的中心点
    常用内部指标:
    1、DB指数(DBI):

    2、Dunn指标(DI):

    显然,DBI的值越小越好,而DI的值越大越好。

距离计算

对于函数dist(·,·),其需要满足的基本性质:
1、非负性(函数值大于等于0);
2、同一性(当函数值等与0时,其参数相等);3、对称性(交换参数位置,函数值不变);
4、直递性()
比较常用的是闵科夫斯基距离(mk):

对于满足距离度量的基本性质.
当p=1时 即曼哈顿距离.
当p=2时 即最直观的欧氏距离.
以上这些距离都用于衡量有序属性,而对于无序属性则采用VDM距离。

原型聚类

K-means算法(k均值算法)

k均值算法的基本思想:随机选取K个对象作为初始的聚类中心,然后计算每个对象与各个种子聚类中心之间的距离,把每个对象分配给距离它最近的聚类中心。每分配一个样本,聚类的聚类中心会根据聚类中现有的对象被重新计算,然后不断迭代计算,直到聚类均值向量稳定或者小于一定的误差,从而对样本进行聚类。
对于簇数的选择,可进行人工根据实际任务需求进行选择.

给定样本集,k均值算法针对聚类所得簇划分最小化平方误差


其中
是簇的均值向量.
对于上式,求其最小值是一个NP难题,于是k均值算法采用贪心策略,通过迭代优化的方式来近似求解式。
算法流程

学习向量量化(LVQ)

此算法与k均值算法类似,也是试图寻找一组原型向量来刻画聚类结构。但是LVQ可借助样本的标记来进行辅助学习。
LVQ也是通过不断迭代,最终得到最优解。
算法流程


大概步骤:

  • LVQ算法同样人为设定一个t值,也就是要划分的类别数,然后根据预先确定的标记随机选择以初始化t个原型向量.

  • LVQ每次都是随机抽取训练数据集的一个样本,计算随机抽到的样本和各个原型向量的距离.

  • 然后,对于距离最小的一个原型向量,若其标记和抽到的样本标记一样,就“使原型向量向抽到的样本向量靠近”,若其标记和抽到的标记不同,就“使原型向量向抽到的样本向量远离”.

  • 其中停止条件是达到最大迭代轮数或者原型向量更新到小于某个阈值.

高斯混合聚类

高斯混合聚类采用概率模型来表达聚类原型。
对于高斯混合聚类,我们要了解高斯分布、贝叶斯公式、极大似然法和聚类的原理和思想。
对于这些,建议参阅:通俗易懂解释高斯混合聚类原理.在此便不加于赘述。
算法流程:

密度聚类

DBSCAN算法

基于一组“邻域”参数来刻画样本分布的紧密程度。发现密度较高的点,然后把相近的高密度点逐步连成一片,形成各种簇。


DBSCAN将簇定义为由密度可达关系导出的最大密度的相连样本集合。即从样本的密度来考察样本之间的可连接性,并基于可连接样本不断扩展聚类簇以获得最终的结果。
算法流程

DBSCAN可以获得边界任意形状的簇
D中不属于任何簇的样本被认为是噪声或异常样本

算法实现:对每个数据点为圆心,以邻域为半径画圈,然后数有多少个点,在这个圈内,这个数就是点密度值,然后选取一个点密度阈值MinPts,圈内点数小于MinPts为低密度点,大于或等于MinPtsede的为高密度点(称为核心点或核心对象)如果有一个高密度的点在另一个高密度点的圈内,我们就把这两个点连接起来,这样就可以把好多点不断串联起来。如果有低密度的点也在高密度点的圈内,把它也连到最近的高密度点上,称之为边界点。

层次聚类

AGNES算法

其采用自底向上聚合策略,先将数据集中的每个样本看作一个初始聚类簇,然后在算法运行的每一步中找出距离最近的两个聚类簇进行合并,然后不断重复该过程,直到达到预设的聚类簇个数。(不断合并小的聚类簇,直到合并到符合要求的聚类簇为止)
其关键是如何计算聚类簇之间的距离。
因为每个簇是一个样本集合,于是只要求关于集合的某种距离即可。


显然,最小距离由两个簇的最近样本决定,最大距离由最远样本决定,平均距离则由两个簇的所有样本共同决定。

算法流程:


一直执行至k=1,即所有样本出现在同一个簇中的树状图:

你可能感兴趣的:(第九章 聚类)