聚类 -- 数据挖掘

本文深入探讨了数据挖掘中的聚类算法,包括KMeans、DBSCAN、谱聚类(Spectral Clustering)和Density Peak。介绍了每种算法的基本原理、优缺点以及实现步骤。KMeans依赖于初始质心的选择,DBSCAN对密度不均的数据集处理能力有限,谱聚类通过拉普拉斯矩阵进行特征提取,而Density Peak结合了密度和距离进行聚类。文章通过实例展示了各种算法在不同数据集上的表现,强调了选择合适算法的重要性。
摘要由CSDN通过智能技术生成

作者:林子
链接:https://blog.csdn.net/leoch007/article/details/80027056
欢迎转载,记得注明出处


聚类

聚类,属于无监督的机器学习方式。聚类根据未知标签样本的数据集内部的数据特征,将数据集划分成多个不同的类,使得同一类的数据样本尽可能地相似,不同类的数据样本之间相似度尽可能地小。

Kmeans
  1. 算法解析

    Kmeans是一种划分式的聚类算法,其基于相似度将数据样本划分到”最近“的类中,而每个类则由其类中心(质心)作为代表,故而实则将每个数据样本划分到与其相似度最大的类中心(质心)所对应的类中。算法主要步骤如下:

    (1)初始化K个类中心

    (2)将数据样本划分到”最近“的类中(与类中心的相似度最大)

    (3)更新类中心

    (4)重复(2)(3)步骤直至满足收敛条件

    在Kmeans的算法中,我们可以看到其划分的标准是相似度,而相似度的度量方式有很多,常见的如下:

    • 闽可夫斯基距离: d(x,y)=vi=1|xiyi|pp d ( x , y ) = ∑ i = 1 v | x i − y i | p p

      当p=1时,上式即为街区距离;当p=2时,为欧式距离;

    • 余弦相似度: cos(x,y)=xy|x||y| c o s ( x , y ) = x ⋅ y | x | | y |

      其用以描述向量之间的相似度时,忽略向量本身的大小

    • Jaccard相似度: J(A,B)=|AB||AB| J ( A , B ) = | A ⋂ B | | A ⋃ B |

      一般地,其用于描述两个集合A,B的相似度

    • Person相关系数: ρ(x,y)=Cov(x,y)σxσy ρ ( x , y ) = C o v ( x , y ) σ x σ y

      其中 Cov(x,y) C o v ( x , y ) 表示x,y的协方差, σx σ x 表示x的标准差,相关系数实则通过除于标准差来剔除协方差受变化幅度的影响,试图标准化协方差

    • KL散度: D(p||q)=xp(x)logp(x)q(x) D ( p | | q ) = ∑ x p ( x ) l o g p ( x ) q ( x )

      可以用以描述两个随机变量的距离;越相似,KL散度(相对熵)越小;当KL散度=0时,两个随机分布相同

    而算法的收敛条件可以是:迭代次数、均方误差等。

    Kmeans的优缺点:

    • 优点:时空复杂度较低;具有优化迭代功能,能修正迭代过程中的误分类;
    • 缺点:需要确定类的个数K;对初始选取的类中心敏感;
  2. 算法实现

    (1)初始化K个质心

    最简单的方案就是随机不重复地进行选择K个数据样本,具体实现可以将数据样本的下标索引进行随机打乱排列,再选择前K个即可:(当然这样做效果会差一些,因为Kmeans对初始质心比较敏感,后面的内容会给出一些优化的策略和思考)

    %初始化质心
    rand('seed',10); %实验的可重复性
    temp = randperm(length(X)); %随机打乱
    Centeridx = temp(1:K); %K个随机数
    Center = X(Centeridx,:); 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值