聚类

人以类聚,物以群分。在当今大数据的时代,利用机器学习的方法对大样本、大数据进行量化、根据每个数据的特征值进行分类,打标签;从而挖掘数据的价值,例如商家根据用户群体的分类,和标签定向的推送广告。对数据的聚类有多种方式,其中最经典的就是,基于数据密度和基于数据层次进行聚类。

基于密度聚类

Density Base spatial clustering of application with noise

定义:

密度聚类算法:假设通过样本数据之间分布的紧密程度,能够反应数据的聚类结构;这是算法的假定前提。算法的具体实现通常基于样本之间的可连接性,将可以连接的样本聚在一类,并不断扩大聚类簇,获得最终的聚类结果

1.ε-:定义一个样本的邻近区域:该区域包含在数据集D中与给定样本点Xj的距离小于ε-的样本点;

2.核心对象: 样本点Xj邻域范围内包含的样本点数目,大于等于阀值MinPts

3.密度直达:X1位于X2的邻域范围内,同时X2为核心对象(跟很多人有关系),则X1则由X2密度直达

4.密度可达:两个样本点通过一系列密度直达样本对(Xi,Xi+1)建立联系

5.密度相连:两个样本同时和某一个样本点密度可达

密度聚类概念

优化目标

密度聚类中,同一簇中密度相连数满足最大,密度可达满足最大;不难推出当同一类样本中密度可达达到最大时,就满足优化目标

算法流程

1.假定邻域距离ε- 与Minpts样本数目

2.计算样本中核心对象数据集Ω

3.随机获取核心数据集中的一个核心对象最为种子

4.根据递归迭代思想,对数据集进行迭代,当第一个随机核心对象组成的簇满足优化目标时,将第一簇数据从数据集中剔除,进入下一次迭代

5.直至所有核心对象被迭代完毕,聚类就结束

特点

1.MinPat设置的是整个数据集的邻域的最小样本数,但是并不是每一类中的密度都大于等于MinPat。

NtKf8H.png

当阀值提高后C3样本点会被当成噪音处理

2.当一个数据点在两个核心数据对象之间时,算法默认将数据点归类到先迭代的核心对象;因此算法不稳定

3.根据密度聚类的思想聚类时,有一些点与所有的核心对象都不相连时,会被算法默认为噪音

基于层次聚类

定义:

层次聚类:在不同层次之间对数据集进行划分;形成类似树形的聚类结果,在划分时可以采用“自底向上”与“自顶向下”进行聚类。

1.自底向上:先将每个样本看成一类,接着对所有进行聚类

2.自顶向下:所有样本看成一类,依次对数据集进行拆分聚类

AGNES算法

不同类之间的距离度量:

NtKIKI.png

其中最小距离由两个簇中最近的样本点决定;最大距离则由最远样本点决定;平均距离有所有样本共同决定。也被形象的称为“单链接”、“全链接”、“均链接”。

应用范围:

最小值: 这种方法容易受到极端值的影响。

最大值:容易受到极端值的影响.

均值:这种方法计算量比较大,但结果比前两种方法更合理。

算法流程:

1.计算所有样本点两两之间的距离矩阵

距离矩阵

特点:

1.主要应用在数据量比较小的时候

2.算法稳定性比较好

3.选择不同的距离衡量,往往有不同的结果

参考:

机器学习[周志华版]

层次聚类

密度聚类

------ 本文结束 thankyou 感谢阅读 ------

欢迎扫一扫上面的微信二维码,订阅 codeHub 公众号