机器学习之聚类详解

聚类:试图将数据集中的样本划分为若干个通常是不相交的子集,每个子集称为一个“簇”。通过这样的划分,每个簇可能对应于一些潜在的概念(类别),这些概念对聚类算法而言事先是未知的,聚类过程仅能自动形成簇结构,簇所对应的概念语义需要由使用者来把握和命名。

聚类既能作为一个单独过程,用于寻找数据内在的分布结构,也可以作为分类等其他学习任务的前驱过程。

 

1.基于距离的聚类算法

K-均值算法:k-means算法,也被称为k-平均或k-均值,是一种基于形心的技术,即使用簇的对象的值来代表该簇,簇的形心不一定是簇中的实际对象。k-均值算法的思想是以空间中k个点为中心进行聚类(可以不是数据点本身,也可以是),对靠近他们的对象进行归类,通过迭代的方法,逐次更新各个聚类中心的值,直到得到最好的聚类结果(基于距离的聚类算法,采用距离作为相似性的评价指标),k-均值可应用在图像分割上

步骤:

1、初始数据分布;

2、在空间中随机选择k个点作为中心点(从专业角度上来说不一定要求选择数据样本点本身,但是也有部分资料说明需要选取数据样本点作为初始中心点),k值通过传入参数指定;

3、第一轮迭代时分别计算每个样本到k个中心的的欧氏距离,样本离哪个中心点近就和其划为一类;

4、第一轮迭代完成后会得到k个数据,计算每类数据的均值,将均值作为新的中心点;

5、进入第二轮迭代:分别计算空间中每个数据到新的中心点的距离,再次聚成k类,然后重新求取新的中心点;

6、重复以上步骤,知道k个簇的质心点不再发生变化或误差平方和最小或者达到指定聚类次数。

说明:

起始点的选择对结果的影响很大;

算法的开展必须要有起点;

算法的核心在于从起点到最终中心点的逐步收敛。

优点:

k-means算法是解决聚类问题的经典算法,简单、快捷;

伸缩性良好(对新增对象可以继续聚类),并且针对大型数据集效率很高;

当簇接近高斯分布时效果更好。

缺点:

1、对离散点敏感,若簇中含有异常点将导致的值偏离严重(即对噪声和孤立点数据敏感)(对噪声敏感:可以使用k-中心点算法);

2、算法开始时要求用户给出聚类簇的个数k,而对于k值的选择还没有很好的准则可循(解决方法是提供k值的近似范围,然后使用分析技术,通过比较由不同k得到的聚类结果,确定最佳的k值);

3、初始随机选择簇中心点的好与坏将会对聚类结果的质量产生很大影响(在迭代受限的情况下,实践中,为了得到好的结果,通常以不同的初始簇中心,多次允许k-均值算法);

4、只能在可以定义聚类的平均值的条件下才可以应用,即适合处理数值属性的数据,不适合处理标称属性的数据(可以使用k-众数算法)

5、聚类的最终结果也许会出现不平衡现象;

6、不适合发现那些非凸面形状的簇或者大小差别非常大的簇。

应用:

图像分割

 

K-中心点算法:k-中心点(k-medoids)不采用簇中对象的平均值作为参照点,而选用簇中位置最中心的对象,即中心点。k-中心点算法的思维是随机选择k个数据点(必须是数据点本身),对最靠近他们的对象进行归类,通过迭代的方法逐次更新各个聚类中心的值,直到得到最好的聚类结果(基于距离的聚类算法,采用距离作为相似性的评价指标)。k-中心点常用算法有:PAM、CLARA、CLARANS。

PAM:围绕中心点划分(Partitioning Around Medoids,PAM)算法是k-中心点聚类的一种流行实现,其聚类步骤如下:

1、初始数据分布;

2、随机选择k个数据点作为中心点;

3、分别计算每个数据点到k个中心点之间的距离,离哪个中心点近就和谁聚为一类,并计算聚类结果的代价,即每个簇中的全部数据点到该簇中心点的距离之和(即绝对误差之和);

4、在各簇中遍历每一个非中心点o,计算簇中各个数据到点o的距离之和,如果簇各个数据到点o的距离之和小于一个中心点,则用o替换上一个中心点作为新的中心点;

5、按照新的k个中心点重新聚类;

6、重复以上步骤,直到k个簇的中心点不再发生变化或者达到指定次数。

PAM算法的优缺点:

优点:

当存在噪声和离群点时,k-中心点方法比k-均值更鲁棒,因为中心点不像均值那样容易受离群点或其他极端值影响。

缺点:

需要先确定簇数和中心点,簇数和中心点的选择对结果影响很大;

PAM在小型数据集上运行良好,但是不能很好的用于大数据集。因为遍历簇中每一个数据点求取新的中心点时算法的实际和复杂度都比较大。

 

CLARA:大型应用聚类(Clustering Large Applications,CLARA)算法是一种基于抽样的方法,目的是简化样本。

其主要思想是:

不考虑整个数据集合,选择实际数据的一小部分作为数据样本。

在样本上应用PAM算法,从样本中选择中心点:

      (如果样本是以非常随机的方式选取的,它应当足以代表原来的数据集合);

      (进而,从中选出的代表对象(中心点)很可能与从整个数据集合中选出的非常近似)。

抽取数据集合的多个样本,对每个样本应用PAM算法,返回最好的聚类结果作为输出。

优点:可以降低算法的时间和复杂度,对大数据集十分有效;

缺点:CLARA的有效性依赖于样本的大小(CLARA的有效性依赖于样本的大小:PAM在给定的数据集上搜索k个最值中心点,而CLARA在数据集选取的样本上搜索k个最佳中心点。如果最佳的抽样中心点都远离最佳的k个中心点,则CLARA不可能发现好的聚类。如果一个对象是k个最佳中心点之一,但它在抽样时没有被选中,则CLARA将永远不能找到最佳聚类)。

 

CLARANS:基于随机搜索的聚类大型应用(Clustering Large Application based upon Randomized,CLARANS),可以在使用样本得到聚类的开销和有效性之间权衡。CLARANS算法的目的是简化计算。

 

主要策略如下:

1、在数据集中随机选择k个对象作为当前中心点;

2、随机地选择一个当前中心点x和一个不是当前中心点的对象y,如果y替换x能够改善绝对误差之和,则进行替换;

3、进行这种随机搜索n次,n步之和的中心点的集合被看做一个局部最优解;

4、重复以上随机过程m次,并返回最佳局部最优解作为最终的结果。

优点:降低了聚类的开销;

缺点:聚类的有效性很大程度上收到n和m取值的影响。

 

2.基于密度的聚类算法

DBScan算法:密度法的思想是只要领域中的对象或数据点的数目超过了某个阈值,就继续增长给定的簇。也就是说,对于给定簇的每个数据点,在给定半径的领域中必须至少包含最少数目的点。这样的方法可以用来过滤噪声和离群点,发现任意形状的簇。

关键词:

Ε邻域:给定对象半径为Ε内的区域称为该对象的Ε邻域;

核心对象:如果给定对象Ε领域内的样本点数大于等于MinPts,则称该对象为核7心对象。

DBScan基本方法如下:

1、DBScan需要两个参数:扫描半径(eps)和最小包含点数(minPts)。任选一个未被访问的点开始,找出与其距离在eps之内(包括eps)的所有附近点。

2、如果附近点的数量>=minPts,则当前点与其附近点形成一个簇,并且出发点被标记为已访问。然后递归,以相同的方法处理该簇内所有未被标记为已访问的点,从而对簇进行扩展。

3、如果附近点的数量<minPts,该店暂时被标记为噪声点。

4、如果簇充分地被扩展,即簇内的所有点被标记为已访问,然后用同样的算法去处理未被访问的点。

DBScan算法优点:

1、DBScan不需要事先知道要形成的簇类的数量。

2、DBScan可以发现任意形状的簇类。

3、DBScan能够识别出噪声点。

4、DBScan对于数据库中样本的顺序不敏感。但是,对于处于簇类之间边界样本,可能会根据哪个簇类优先被探测到而其归属有所摆动。

DBScan算法缺点:

1、DBScan不能很好反映高纬度数据集(密度本身只能适应低维空间,没法在高维空间去做定义)。

2、DBScan不能很好反应密度变化的数据集。

 

 

K均值与DBScan的比较

为了简化比较,我们假定对于K均值和DBScan都没有距离限制,并且DBScan总是将与若干隔核心点相关联的边界点指派到最近的核心点。

1、DBScan和K均值都是将每个对象指派到单个簇的划分聚类算法,但是K均值一般聚类所有对象,而DBScan丢弃被它识别为噪声的点。

2、K均值使用簇的基于形心(距离)的概念,而DBScan使用基于密度的概念。

3、DBScan可以处理大小和不同形状的簇,并且不太受噪声和离散点的影响;K均值很难处理非球形的簇和不同大小的簇。当簇具有很不相同的密度时,两种算法的性能都很差。

4、K均值只能用于明确定义的质心(如均值或中位数)的数据;DBScan要求密度定义(基于传统的欧几里得密度概念)对于数据是有意义的。

5、K均值可以用于稀疏的高维数据,如文档数据;DBScan通常在这类数据上性能很差,因为对于高维数据,传统的欧几里得密度定义不能很好地处理他们。

6、K均值和DBScan的最初版本都是针对欧几里得数据设计的,但是它们都被扩展,以便处理其他类型的数据。

7、DBScan不对数据的分布做任何假定;K均值算法啊等价于一种统计聚类方法(混合模型),假定所有的簇都来自球形高斯分布,具有不同的均值,但具有相同的协方差矩阵。

8、DBScan和K均值都寻找使用所有属性的簇,即它们都不寻找可能只涉及某个属性子集的簇。

9、K均值可以发现不是明显分离的簇,即便簇有重叠也可以发现;但是DBCsan会合并有重叠的簇。

10、DBScan多次运行产生相同的结果;而K均值通常使用随机初始化形心,不会产生相同的结果。

11、DBScan自动确定簇个数;对于K均值,簇个数需要人工指定。然而,DBScan必须指定另外两个参数:Eps(领域半径)和MinPts(最少点数)。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值