聚类算法概述

一.聚类分析的典型的应用场景

1.目标用户的群体分类
2.不同产品的价值组合
3.探测发现孤立点,异常点:

二.主要的聚类算法的分类

2.1基于距离的方法

用距离来作为描述对象之间的相似性的依据

1.基于划分的方法

kmeans聚类方法**:又叫K均值聚类**,用计算出来的每一类对象的平均值作为新的类的中心点
Ps:kmeans 算法对噪声与异常值比较敏感

kmedios算法:又叫k中心点算法,该方法用最接近类中心的一个对象作为新的聚类中心
PS:K中心点方法对于噪声与异常值没有kmeans算法敏感

k-prototypes:结合了K-Means和K-Modes两种算法,能够处理混合型数据。
k-medoids:在迭代过程中选择簇中的某点作为聚点,PAM是典型的k-medoids算法。
CLARA:在PAM的基础上采用了抽样技术,能够处理大规模数据。
CLARANS:融合了PAM和CLARA两者的优点,是第一个用于空间数据库的聚类算法。
Focused CLARAN:采用了空间索引技术提高了CLARANS算法的效率。
PCM:模糊集合理论引入聚类分析中并提出了PCM模糊聚类算法。

2.基于层次的划分方法

步骤:
1.先将数据集中的每个样本看作一个初始聚类簇;
2.找到距离最近的两个聚类簇进行合并。

优点:无需目标函数,没有局部极小问题或是选择初始点的问题。
缺点:计算代价大。

按照层次分解的形式不同,层次方法又可以分为凝聚层次聚类与分裂层次聚类

凝聚层次聚类:又叫做自底向上法,一开始将每个对象作为单独的一类。然后相继合并与其相近的类,知道所有小的类别合并为一个类,即层次的最上面或者达到一个收敛。

分裂层次聚类:又叫自顶向下法,一开始将所有的对象置于一个类中,在迭代的每一步中,该类会被分为更小的类,直到最终每个对象在一个单独的类中,或者满足一个收敛。

层次方法的最大缺陷在于合并或者分裂点的选择比较困难,对于局部来说,好的合并或者分裂点的选择可能不会保证得到好的聚类结果,而且一旦一个步骤完成,它就不能撤销。

BIRCH算法、CURE算法、CHAMELEON算法

CURE:采用抽样技术先对数据集D随机抽取样本,再采用分区技术对样本进行分区,然后对每个分区局部聚类,最后对局部聚类进行全局聚类。
ROCK:也采用了随机抽样技术,该算法在计算两个对象的相似度时,同时考虑了周围对象的影响。
CHEMALOEN:首先由数据集构造成一个K-最近邻图Gk ,再通过一个图的划分算法将图Gk 划分成大量的子图,每个子图代表一个初始子簇,最后用一个凝聚的层次聚类算法反复合并子簇,找到真正的结果簇。
SBAC:SBAC算法则在计算对象间相似度时,考虑了属性特征对于体现对象本质的重要程度,对于更能体现对象本质的属性赋予较高的权值。
BIRCH:BIRCH算法利用树结构对数据集进行处理,叶结点存储一个聚类,用中心和半径表示,顺序处理每一个对象,并把它划分到距离最近的结点,该算法也可以作为其他聚类算法的预处理过程。
BUBBLE:BUBBLE算法则把BIRCH算法的中心和半径概念推广到普通的距离空间。
BUBBLE-FM:BUBBLE-FM算法通过减少距离的计算次数,提高了BUBBLE算法的效率。

小结:基于距离的划分方法,是以距离作为相似性的描述性指标进行进行聚类划分,但是基于距离的划分方法仅仅适用于球状数据,而对于非球状类型的数据来说,只根据距离来描述与判断是不够的。因此需要用别的划分方法。

2.2 基于密度的划分方法

原理:只要邻近区域里面的对象的数量超过了某个阈值,就继续聚类。即为给定某个簇中的每个数据对象,在一定范围以内必须包含一定数量的其他对象。该算法从数据对象的分布密度出发,把密度足够大的区域连接在一起,因此可以发现任意形状的类。还可以过滤噪声数据

缺点:需要用户确定输入参数,且对参数很敏感

DBSCAN算法、OPTICS算法、DENCLUE算法

DBSCAN:是一种典型的基于密度的聚类算法,该算法采用空间索引技术来搜索对象的邻域,引入了“核心对象”和“密度可达”等概念,从核心对象出发,把所有密度可达的对象组成一个簇。
优点:不需要确定要划分的聚类个数,聚类结果没有偏倚;抗噪声,在聚类的同时发现异常点,对数据集中的异常点不敏感;处理任意形状和大小的簇,相对的,K-Means之类的聚类算法一般只适用于凸数据集。
缺点:数据量大时内存消耗大,相比K-Means参数多一些;样本集的密度不均匀、聚类间距差相差很大时,聚类质量较差,这时用DBSCAN聚类一般不适合;
那么我们什么时候需要用DBSCAN来聚类呢?一般来说,如果数据集是稠密的,并且数据集不是凸的,那么用DBSCAN会比K-Means聚类效果好很多。如果数据集不是稠密的,则不推荐用DBSCAN来聚类。

GDBSCAN:算法通过泛化DBSCAN算法中邻域的概念,以适应空间对象的特点。
OPTICS:OPTICS算法结合了聚类的自动性和交互性,先生成聚类的次序,可以对不同的聚类设置不同的参数,来得到用户满意的结果。
FDC:FDC算法通过构造k-d tree把整个数据空间划分成若干个矩形空间,当空间维数较少时可以大大提高DBSCAN的效率。
DBLASD

2.3 基于网格的划分方法

把对象空间量化为有限数目的单元,而这些单元形成了网格结构,所有的聚类操作都是在这个网格结构中进行的。

STING算法、CLIQUE算法、WAVE-CLUSTER算法
STING:利用网格单元保存数据统计信息,从而实现多分辨率的聚类
WaveCluster:在聚类分析中引入了小波变换的原理,主要应用于信号处理领域。(备注:小波算法在信号处理,图形图像,加密解密等领域有重要应用。)
CLIQUE:是一种结合了网格和密度的聚类算法。
OPTIGRID

在这里插入图片描述

三.聚类分析的重点注意事项

1.噪声与异常值的处理:删除(需谨慎),随机抽取样本
2.聚类变量的少而精
3.聚类的核心指标与非聚类的业务指标相辅相成
原则:坚持聚类变量的少而精,同时把非聚类的业务指标与聚类结果一起拿来进行分析。

4.聚类分析在实际应用中的一些优势与缺点
(1)应用优势
数据的探索与清洗工具
精简变量
检查数据的共线性问题(组间变量相互独立。组内变量相关性很高)
聚类类别产生的新的字段可以加入其它的模型的搭建 简洁高效,算法与数据集的大小是线性相关
聚类分析的思想可以用于个性化推荐的应用场景
(2)应用劣势
需要事先指定聚类的数目K。
要测试不同的k值才能根据效果来选择合适的K值,这个过程会耗费大量的时间。
算法对噪声与异常值比较敏感(异常值是指那些鱼其他数据点相隔很远的数据点),异常值会干扰正常的聚类中心的计算,造成聚类失真。

四.如何评估聚类效果?

(1)聚类趋势(对数据进行评估)
霍普金斯统计量(Hopkins Statistic)评估给定数据集是否存在有意义的可聚类的非随机结构。如果一个数据集是由随机的均匀的点生成的,虽然也可以产生聚类结果,但该结果没有意义,聚类的前提是需要数据非均匀分布的。
(2)判断聚类的簇数是否为最佳
可用业务分析法、观察法、Gap Statistic方法等找到最佳的分类数与实际簇数做比较(见第四点)。
(3)聚类质量
因为是无监督学习,所以一般通过评估类的分离情况来决定聚类质量。类内越紧密,类间距离越小则质量越高。

评估聚类算法的指标:
a. 外部法(基于有标注):Jaccard系数、纯度
b. 内部法(无标注):内平方和WSS和外平方和BSS、轮廓系数
c. 此外还要考虑到算法的时间空间复杂度、聚类稳定性等

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值