机器学习之聚类算法

本文介绍了三种主要的聚类算法:原型聚类、密度聚类和层次聚类。详细讲解了K-means、高斯混合模型、DBSCAN及层次聚类的具体实现过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

聚类就是将一个对象的集合(样本集合)分割成几个不想交的子集(每个子集所代表的语义需要使用者自己进行解释),每个类内的对象之间是相似的,但与其他类的对象是不相似的. 

分割的类的数目可以是指定的(例如k-means),也可以是有算法生成的(DBSCAN).聚类是无监督学习的一个有用工具。

1原型聚类:

原型聚类是指聚类结构能够通过一组原型刻画,即样本空间中具有代表性的点。也就是说聚类是通过具有代表性的掉刻画的。著名的原型聚类方法包括K-means聚类和高斯混合聚类

k-means 聚类(动态聚类算法)

算法步骤:1、选择k个初始聚类中心

2、按照距离最小原则对数据进行归类

3、重新计算聚类中心

4、如果第 i+1 代的聚类中心和第 i 代的中心一致,算法收敛

高斯混合聚类(软聚类)

高斯混合模型(Gaussian Mixture Model, GMM)。这种聚类方法得到的是每个样本点属于各个类的概率,而不是判定它完全属于一个类,所以有时也会被称为软聚类。

其中K 为模型的个数;πk为第k个高斯的权重;px / k 则为第k个高斯概率密度,其均值为μk,方差为σk。对此概率密度的估计就是要求出πkμk σk 各个变量。当求出px 的表达式后,求和式的各项的结果就分别代表样本x 属于各个类的概率。

求各个参数使用EM算法。

2密度聚类

假设聚类的结构通过样本的密度来确定。DBSCAN算法是常用的密度聚类算法。DBSCAN算法通过一组邻域参数(r ,MinPts)描述样本的紧密程度。


在DBSCAN算法中将数据点分为一下三类:

    • 核心点。在半径Eps内含有超过MinPts数目的点
    • 边界点。在半径Eps内点的数量小于MinPts,但是落在核心点的邻域内
    • 噪音点。既不是核心点也不是边界点的点
    DBSCAN的几个概念:
  • (1)r-邻域。对任意Xi属于数据集D,其r邻域包含样本集D中与Xi的距离不大于r的样本,即N(Xi)={Xj属于D,dist(Xi,Xj)<=r}。
  • (2)核心对象。核心对象就是r-邻域内至少包含MinPts个样本,即|N(Xi)|>=MinPts,那么Xi为一个核心对象。
  • (3)密度直达。如果Xj位于Xi的r-邻域内,并且Xi为核心对象,则称Xj由Xi密度直达

  • (4)密度可达。对Xi与Xj,如果存在样本序列P1,P2…Pn,其中P1=Xi,Pn=Xj且P(i+1)由Pi密度直达,则称Xj由Xi密度可达。

  • (5)密度相连。对Xi与Xj,如果存在Xk使得Xi与Xj均由Xk密度可达,则称Xi与Xj密度相连。(以Xk

DBSCAN的算法步骤:

(1)     先找出所有的核心对象来。

  (2)     然后对所有的核心对象进行随机遍历,找出所有的密度可达点。(可达的概念还是挺重要的,其实就是核心点在中间当做桥梁,即一个核心对象的邻域内也包含其他的核心对象,这样就可以串下去了)

  (3)     当所有的核心对象点遍历完之后,剩下的点就是噪声点或者是低密度区域。



3 层次聚类(Hierarchical Clustering

假设有N个待聚类的样本,对于层次聚类来说,基本步骤就是:

       1、(初始化)把每个样本归为一类,计算每两个类之间的距离,也就是样本与样本之间的相似度;

       2、寻找各个类之间最近的两个类,把他们归为一类(这样类的总数就少了一个);

       3、重新计算新生成的这个类与各个旧类之间的相似度;

       4、重复2和3直到所有样本点都归为一类,结束。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值