机器学习——聚类算法(clustering)

本文介绍了聚类算法的基本概念,重点讲解了K-means和DBSCAN两种方法。K-means算法简单快速,但依赖人为设定K值,对初始点选择敏感。DBSCAN能处理任意形状的簇,无需预设簇数量,但参数调整较为复杂。

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

1、什么是聚类?

通俗地讲,聚类就是将不带任何标签的数据分成不同的组,是一种典型的无监督机器学习算法,聚类的难点:难以评估和调参。用两张图来理解分类和聚类的区别:
分类:

聚类:

2、K-means聚类

k-means算法是经典的聚类算法之一,在不带标签的多维数据集中寻找确定数量的簇。以k为参数,把n个对象分成k个簇,使簇内具有较高的相似度,而簇间的相似度较低。
几个重要的基本概念:

  • K值:需要得到的簇的个数,需要人为指定K值
  • 簇中心点:各个簇的中心,属于该簇的所有数据点坐标的算术平均值
  • 点到簇中心的距离:常用欧式距离和余弦相似度进行计算(先标准化)
  • 优化目标: min ⁡ ∑ i = 1 K ∑ x ∈ C i d i s t ( C i , x ) 2 \min\displaystyle\sum_{i=1}^K\sum_{x\in C_i}dist(C_i,x)^2 mini=1KxCidist(Ci,x)2

K-means算法:期望最大化
期望最大化(expectation-maximization)成为E-M算法,核心步骤如下:
(1)任意选择k个对象作为初始的簇中心
(2)重复以下步骤直至收敛

  • a.期望步骤(E-step):将点分配至离其距离最近的簇中心点
  • b.最大化步骤(M-step):将簇中心点设置为改簇中所有点坐标的均值

K-means聚类的优缺点
优点:简单快速,适合常规数据集
缺点:
①初始随机选择的K个簇中心点对聚类影响大,可能不会达到最优全局解
②K值必须事先确定,无法从数据中自动学习到簇的数量
③K-means算法只能确定线形聚类边界,当簇中心点呈现非线性的复杂形状事,算法会失效

④当数据量较大时,K-means算法会很慢,因为每次迭代都必须对所有数据点进行计算

K-means算法可视化网站:https://www.naftaliharris.com/blog/visualizing-k-means-clustering/

3、DBSCAN聚类算法

DBSCAN(Density-Based Spatial Clustering of Applications with Noise,具有噪声的基于密度的聚类方法)是一种很典型的密度聚类算法。算法假定类别可以通过样本分布的紧密程度决定,同一类别的样本,他们之间是紧密相连的,也就是说,在该类别任意样本周围不远处一定有同类别的样本存在。

定义:由密度可达关系导出的最大密度相连的样本集合,即为我们最终聚类的一个类别,或者说一个簇。

假设样本集是 D = ( x 1 , x 2 , ⋯   , x m ) , D=(x_1,x_2,\cdots,x_m), D=(x1,x2,,xm),参数( ϵ \epsilon ϵ, MinPts)用来描述邻域的样本分布紧密程度。其中, ϵ \epsilon ϵ描述了某一样本的邻域距离阈值,MinPts描述了某一样本的距离为 ϵ \epsilon ϵ的邻域中样本个数的阈值。
几个重要的基本概念:

  • ϵ \epsilon ϵ-领域:对于 x j ∈ D x_j\in D xj
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值