聚类

一、聚类的基础知识介绍

1.聚类的定义

聚类就是对大量未知标注的数据集,按数据的内在相似性将数据集划分为多个类别,使类别内的数据相似度较大而类别间的数据相似度较小,他是无监督的。

2.相似度/距离计算方法总结

闵可夫斯基距离Minkowski/欧式距离:

杰卡德相似系数(Jaccard):

 

余弦相似度(cosine similarity):

相对熵(K-L距离):

3.聚类的基本思想

给定一个有N个对象的数据集,划分聚类技术将构造数据的k个划分,每一个划分代表一个簇,k≤n。也就是说,聚类将数据划分为k个簇,而且这k个划分满足下列条件:

每一个簇至少包含一个对象

每一个对象属于且仅属于一个簇

 基本思想:对于给定的k,算法首先给出一个初始的划分方法,以后通过反复迭代的方法改变划分,使得每一次改进之后的划分方案都较前一次更好。

二、聚类方法

1.K-means算法

(1)K-means算法,也被称为k-平均或k-均值,是一种得到最广泛使用的聚类算法,或者成为其他聚类算法的基础。算法首先随机地选择k个对象,每个对象初始地代
表了一个簇的平均值或中心。对剩余的每个对象根据其与各个簇中心的距离,将它赋给最近的簇。然后重新计算每个簇的平均值。这个过程不断重复,直到准则函数收敛。

准则函数常常使用最小平方误差MSE(注意:它是初值敏感的)

 

 (2)K-means聚类方法总结

 优点:

a.是解决聚类问题的一种经典算法,简单、快速
b.对处理大数据集,该算法保持可伸缩性和高效率
c.当结果簇是密集的,它的效果较好
缺点:
a.在簇的平均值可被定义的情况下才能使用,可能不适用于某些应用
b.必须事先给出k(要生成的簇的数目),而且对初值敏感,对于不同的初始值,可能会导致不同结果。
c.不适合于发现非凸形状的簇或者大小差别很大的簇
d.对躁声和孤立点数据敏感
2.密度聚类方法

(1)密度聚类方法的指导思想是,只要一个区域中的点的密度大于某个阈值,就把它加到与之相近的聚类中去。这类算法能克服基于距离的算法只能发现“类圆形”(凸)的聚类的缺
点,可发现任意形状的聚类,且对噪声数据不敏感。但计算密度单元的计算复杂度大,需要建立空间索引来降低计算量。

(2)DBSCAN算法:一个比较有代表性的基于密度的聚类算法。与划分和层次聚类方法不同,它将簇定义为密度相连的点的最大集合,能够把具有足够高密度的区域划分为簇,并可在有“噪声”的
数据中发现任意形状的聚类。

(3)DBSCAN算法的若干概念

对象的ε-邻域:给定对象在半径ε内的区域。
核心对象:对于给定的数目m,如果一个对象的ε-邻域至少包含m个对象,则称该对象为核心对象。
直接密度可达:给定一个对象集合D,如果p是在q的ε-邻域内,而q是一个核心对象,我们说对象p从对象q出发是直接密度可达的。

密度可达:如果存在一个对象链p 1 p 2 …p n ,p 1 =q,p n =p,对p i ∈D,(1≤i ≤n),p i+1 是从p i 关于ε和m直接密度可达的,则对象p是从对象q关于ε和m密度可达的。

密度相连:如果对象集合D中存在一个对象o,使得对象p和q是从o关于ε和m密度可达的,那么对象p和q是关于ε和m密度相连的。

 

簇:一个基于密度的簇是最大的密度相连对象的集合。

噪声:不包含在任何簇中的对象称为噪声。

如图ε=1cm,m=5,q是一个核心对象,从对象q出发到对象p是直接密度可达的。

 DBSCAN算法: DBSCAN通过检查数据集中每个对象的ε-邻域来寻找聚类。

 如果一个点p的ε-邻域包含多于m个对象,则创建一个p作为核心对象的新簇。然后,DBSCAN反复地寻找从这些核心对象直接密度可达的对象,这个过程可能涉及密度可达
簇的合并。当没有新的点可以被添加到任何簇时,该过程结束。

 (4)密度最大值聚类

 密度最大值聚类是一种简洁优美的聚类算法, 可以识别各种形状的类簇, 并且参数很容易确定。

 定义:局部密度ρi

 

注:d c 是一个截断距离, ρ i 即到对象i的距离小于d c 的对象的个数。由于该算法只对ρ i 的相对值敏感, 所以对d c 的选择是稳健的,一种推荐做法是选择d c ,使得平均每个点的邻
居数为所有点的1%-2%

 定义:高局部密度点距离δi

 

在密度高于对象i的所有对象中,到对象i最近的距离,即高局部密度点距离。

对于密度最大的对象,设置δ i =max(d ij )(即:该问题中的无穷大)。

只有那些密度是局部或者全局最大的点才会有远大于正常值的高局部密度点距离。

簇中心的识别:那些有着比较大的局部密度ρ i 和很大的 高密距离 δ i 的点被认为是簇的中心; 高密距离 δ i较大但局部密度ρi较小的点是异常点;

 确定簇中心之后,其他点按照距离已知簇的中心最近进行分类

3.谱和谱聚类

(1)谱:方阵作为线性算子,它的所有特征值的全体统称方阵的谱。( 方阵的谱半径为最大的特征值, 矩阵A的谱半径:(A T A)的最大特征值)

(2)谱聚类:一般的说,是一种基于图论的聚类方法,通过对样本数据的拉普拉斯矩阵的特征向量进行聚类,从而达到对样本数据聚类的目的。

(3)谱分析的整体过程: 给定一组数据x 1 ,x 2 ,...x n ,记任意两个点之间的相似度(“距离”的减函数)为s ij =<xi,xj>,形成相似度图(similarity graph):G=(V,E) 。如
果x i 和x j 之间的相似度s ij 大于一定的阈值,那么,两个点是连接的,权值记做s ij 。接下来,可以用相似度图来解决样本数据的聚类问题:找到图的一个划分,形成若干个
组(Group),使得不同组之间有较低的权值,组内有较高的权值。

注:无向图G=(V,E)

邻接矩阵

顶点的度di ->度矩阵D (对角阵)

 

(4)若干概念:

1)子图A的指示向量:

2)A和B是图G的不相交子图,则定义子图的连接权:

 

(5)相似度图G的建立方法:

1)全连接图,高斯相似度函数:距离越大,相似度越小

 

2)ε近邻图,任意两个点的距离大于ε有边连接,否则无边

3)k近邻图(k-nearest neighbor graph):若vi的k最近邻包含vj,vj的k最近邻不一定包含vi:有向图,忽略方向的图,往往简称“k近邻图”,两者都满足才连接的图,称作“互k近邻图(mutual)”。

(6) 拉普拉斯矩阵:L = D – W,L是对称半正定矩阵;L有n个非负实特征值

(7)谱聚类算法过程

1)构造图的临界矩阵s

2)根据公式计算拉普拉斯举证L

3) 计算L的前k个特征值对应的特征向量u1,u2……uk,并组成矩阵U

4)把U按行取向量得到n个向量y1,y2……yn

5)对以上所有的y向量执行k-means聚类,得到的k个聚类即为最后的结果

 

posted @ 2017-06-01 10:16  风萧易水寒  阅读(1632)  评论(0编辑  收藏  举报