聚类--常见的K-MEANS聚类,DBSCAN聚类方法介绍

news2024/11/23 13:47:58

聚类

1. 什么是聚类⁉️

➡️ 聚类就是把相似的物品分到一组。例如苹果,橙子属于水果类,猫,狗属于动物类,聚类把具有相似属性的物品分到同一组。

常见的两种监督问题

  • 有监督问题:有标签学习,通过已知输入输出的训练样本进行训练,从而得到一个最优的模型,并将该模型应用在新的数据上,映射为输出结果。
  • 无监督问题:无标签学习,对没有标记的训练样本(即不知道当前输入数据对应的输出)进行学习,以发现训练样本集中的结构性知识。通过对无标记的学习来揭示数据的内在性质和潜在规律,为进一步的数据分析提供基础。

➡️ 聚类是一个典型的无监督的问题

➡️ 聚类算法应用的难点:难以评估、难以调参

接下来介绍常见的两种基于原型的聚类方法, K − M E A N S K-MEANS KMEANS聚类算法, D B S C A N DBSCAN DBSCAN聚类算法


2. K − M E A N S K-MEANS KMEANS聚类

2.1 基本概念📚️

先来看一下百度对 k − m e a n s k-means kmeans的定义

k k k均值聚类算法(k-means clustering algorithm)是一种迭代求解的聚类分析算法,其步骤是,预将数据分为K组,则随机选取K个对象作为初始的聚类中心,然后计算每个对象与各个种子聚类中心之间的距离,把每个对象分配给距离它最近的聚类中心。聚类中心以及分配给它们的对象就代表一个聚类。每分配一个样本,聚类的聚类中心会根据聚类中现有的对象被重新计算。这个过程将不断重复直到满足某个终止条件。终止条件可以是没有(或最小数目)对象被重新分配给不同的聚类,没有(或最小数目)聚类中心再发生变化,误差平方和局部最小。

百度的这个定义介绍的挺详细,接下来对其中的一些概念进行更细致的介绍

k − m e a n s k-means kmeans算法也叫 k k k均值算法。这里的k指的是要将数据划分为几个簇(也就是几堆)。这里的均值指的是每个聚类中心(质心)都是由各个维度求均值来确定的。

  1. 簇的个数 K K K的值

  2. 质心(聚类中心):有几个簇就有几个质心,即向量(在实际计算中数据以向量的形式表示)各维求平均

    计算质心

    在一个二维平面中,一簇数据点的质心的横坐标就是这一簇数据点的横坐标的均值,质心的纵坐标就是这一簇数据点的纵坐标的均值,同理可推广至高维空间。

  3. 距离的度量:常用欧几里得距离和余弦相似度,需要先对数据进行标准化操作,原本的数据范围可能非常大,数据间距离也很大,标准化即将数据映射到一个较小的范围内,方便操作。

    一般情况下,在欧式空间中采用的是欧式距离,在处理文档中采用的是余弦相似度函数,有时候也采用曼哈顿距离作为度量

    • 欧几里得距离

      d ( x , y ) = ( x 1 − y 1 ) 2 + ( x 2 − y 2 ) 2 + ⋯ + ( x n − y n ) 2 = ∑ i = 1 n ( x i − y i ) 2 \mathrm{d}(\mathrm{x}, \mathrm{y})=\sqrt{\left(\mathrm{x}_{1}-\mathrm{y}_{1}\right)^{2}+\left(\mathrm{x}_{2}-\mathrm{y}_{2}\right)^{2}+\cdots+\left(\mathrm{x}_{\mathrm{n}}-\mathrm{y}_{\mathrm{n}}\right)^{2}}=\sqrt{\sum_{\mathrm{i}=1}^{\mathrm{n}}\left(\mathrm{x}_{\mathrm{i}}-\mathrm{y}_{\mathrm{i}}\right)^{2}} d(x,y)=(x1y1)2+(x2y2)2++(xnyn)2 =i=1n(xiyi)2

    • 余弦相似度

      给定两个属性向量,A和B,其余弦相似性 θ 由点积和向量长度给出,如下所示

      cos ⁡ ( θ ) = A ⋅ B ∥ A ∥ ∥ B ∥ = ∑ i = 1 H A i × B i ∑ i = 1 n ( A i ) 2 × ∑ i = 1 n ( B i ) 2 \cos (\theta)=\frac{\mathrm{A} \cdot \mathrm{B}}{\|\mathrm{A}\|\|\mathrm{B}\|}=\frac{\sum_{\mathrm{i}=1}^{\mathrm{H}} \mathrm{A}_{\mathrm{i}} \times \mathrm{B}_{\mathrm{i}}}{\sqrt{\sum_{\mathrm{i}=1}^{\mathrm{n}}\left(\mathrm{A}_{\mathrm{i}}\right)^{2}} \times \sqrt{\sum_{\mathrm{i}=1}^{\mathrm{n}}\left(\mathrm{B}_{\mathrm{i}}\right)^{2}}} cos(θ)=A∥∥BAB=i=1n(Ai)2 ×i=1n(Bi)2 i=1HAi×Bi

      给出的相似性范围从-1到1:-1意味着两个向量指向的方向正好截然相反,1表示它们的指向是完全相同的,0通常表示它们之间是独立的,而在这之间的值则表示中间的相似性或相异性。

    • 曼哈顿距离

      d ( i , j ) = ∣ x i − x j ∣ + ∣ y i − y j ∣ \mathrm{d}(\mathrm{i}, \mathrm{j})=|\mathrm{xi}-\mathrm{xj}|+|\mathrm{yi}-\mathrm{yj}| d(i,j)=xixj+yiyj

  4. 优化的目标 m i n ∑ i = 1 k ∑ x ∈ C i d i s t ( c i , x ) 2 min \sum\limits_{i=1}^{k} \sum\limits_{x \in C_i} dist(c_i,x)^2 mini=1kxCidist(ci,x)2

2.2 基本流程⏳️

在这里插入图片描述

通过上面这张图中的实际例子来感受一下 k − m e a n s k-means kmeans聚类的基本流程

(a)加载数据,这里用绿色的点表示

(b)随机生成两个初始的聚类中心(红色× 和 蓝色×)

(c)计算所有点与这两个聚类中心的距离(欧几里得距离),如果离红色聚类中心近则将其该数据点归为红色类,否则为蓝色类

(d)重新计算聚类中心,每一个聚类中心所归属的点x轴、y轴求平均,获得新的聚类中心

(e)重复(c)

(f)重复(d)

(g)聚类中心基本不发生变化,退出循环

2.3 优缺点🛡️
  1. 优点👍️

    • 简单、快速、适合常规数据集
  2. 缺点👎️

    • k值难以确定,不同的k会有不同的结果


      在这里插入图片描述

    • 复杂度与样本呈线性关系,因为每一次更新都需要计算所有点与聚类中心的距离

    • 很难发现任意形状的簇

    • 每一次运行结果可能不相同,需要多次实验取平均,尤其是复杂数据集,例如以下两张图

      在这里插入图片描述
      在这里插入图片描述

2.4 可视化展示

这里介绍一个可视化展示 k − m e a n s k-means kmeans的网站,通过这种方式可以更加直观理解算法,网址为:https://www.naftaliharris.com/blog/visualizing-k-means-clustering/

在这里插入图片描述


3. D B S C A N DBSCAN DBSCAN 聚类

3.1 基本概念📚️

同样的先来看一下定义

D B S C A N DBSCAN DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一个比较有代表性的基于密度的聚类算法。与划分和层次聚类方法不同,它将簇定义为密度相连的点的最大集合,能够把具有足够高密度的区域划分为簇,并可在噪声的空间数据库中发现任意形状的聚类。

这里着重解释以下什么是基于密度,这里的密度指的是在半径r的圆中点的个数

接下来介绍几个核心概念,方便了解算法流程

  1. 核心对象:若某个点的密度达到算法设定的阈值则其为核心点(即r邻域内点的输入不小于 m i n P t s minPts minPts

  2. ∈ − \in- 邻域的距离阈值:设定的半径 r r r

  3. 直接密度可达:若某点 p p p在点 q q q r r r邻域内,且 q q q是核心点,则 p − q p-q pq直接密度可达

    q q q是核心点且点 p p p在以点 q q q为圆心半径为 r r r的圆内

  4. 密度可达:若有一个点的序列 q 0 , q 1 、 ⋯ q k q_0,q_1、\cdots q_k q0,q1qk,对任意的 q i − q i − 1 q_i-q_{i-1} qiqi1是直接密度可达的,则称 q 0 q_0 q0 q k q_k qk密度可达,这里实际上是直接密度可达的“传播”。类似于传销,每个点都可以发展下线,下线也可以发展下线。

  5. 密度相连:若从某核心点 p p p出发,点 p p p和点 k k k都是密度可达的,则称点 q q q和点 k k k是密度相连的。

  6. 边界点:属于某一个类的非核心点,不能发展下线了

  7. 直接密度可达:若某点 p p p在点 q q q r r r邻域内,且 q q q是核心点则 p − q p-q pq直接密度可达。

  8. 噪声点:不属于任何一个类簇的点,从任何一个核心点出发都是密度不可达的。

上面纯理论的介绍可能比较抽象,接下来通过图直观了解

在这里插入图片描述

其中

  • A A A(红色):核心对象
  • B , C B,C B,C(黄色):边界点
  • N N N(蓝色):离群点

在实际应用中离群点不可以随意抛弃,在缺陷检测中,缺陷和故障就属于离群点。

3.2 基本流程⏳️

➡️ 工作流程

用通俗的话讲此算法的工作流程和传销很类似,传销头目 1 1 1可以发展下线,下线也可以发展下线,直到发展不了下线了,这时第一个簇的所有点被分出来了。接着传销头目 2 2 2也重复传销头目 1 1 1的操作,于是第二个簇也全部分出来,以此类推,所有的簇都可以分出来。

伪代码是对算法相对规范的描述,此算法的伪代码比较好理解,这里不赘述了。

算法伪代码如下:

在这里插入图片描述

  • 参数 D D D:输入数据集
  • 参数 ∈ \in : 指定半径
  • M i n P t s MinPts MinPts:密度阈值

➡️ 参数选择

  • 半径 ∈ \in :可以根据 K K K距离来设定,找突变点

    K K K距离:给定数据集 P = p ( i ) ; i = 0 , 1 , ⋯ n P={p(i);i=0,1,\cdots n} P=p(i);i=0,1,n,计算点 p ( i ) p(i) p(i)到集合 D D D的子集 S S S中所有点之间的距离,距离按照从小到大的顺序排序, d ( k ) d(k) d(k)就被成为 k − 距离 k-距离 k距离

    突变点即为 k k k距离突然发生较大变化的点

  • M i n P t s MinPts MinPts k − 距离 k-距离 k距离 k k k的值,一般取的小一些,多次尝试

3.3 优缺点🛡️
  1. 优点👍️
    • 不需要指定簇的个数
    • 可以发现任意形状的簇
    • 擅长找到离群点(检测任务)
    • 只需要确定两个参数
  2. 缺点👎️
    • 高维数据有些困难(可以做降维)
    • 参数的值难以选择(参数对结果的影响非常大)
    • s k l e a r n sklearn sklearn中效率很慢(数据削减策略)
3.4 可视化展示

同样的 D B S C A N DBSCAN DBSCAN的可视化网站如下:https://www.naftaliharris.com/blog/visualizing-dbscan-clustering/

很明显这是同一个人开发的 K − M E A N S K-MEANS KMEANS D B S C A N DBSCAN DBSCAN可视化网站

在这里插入图片描述


参考博客:https://blog.csdn.net/weixin_43283397/article/details/105241340

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/154869.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

过线检测判断方向

过线检测时需要判断目标是从哪个方向经过的 L1向量:(-1,-7) L2向量:(-5,0) 叉乘:L1 X L2 (-1x0 - (-5 x -7)) 0 - 35 -35 点乘:L1 L2 -1 x -5 -7 x 0…

管道设计软件:PIPEDATA-PRO

PIPEDATA-PROPipedata-Pro 提高了管道设计的效率,减轻了查找管道信息的负担。它可以直观、轻松地检索最新的管道和设计数据。尺寸和重量单位可以设置为公制或美国惯用单位。 Pipedata-Pro 于 1996 年由 Zeataline Projects 推出,现在已遍布全球&#xff…

靶机测试DomDom笔记

靶机描述Back to the TopHow well do you understand PHP programs? How familiar are you with Linux misconfigurations? This image will cover advanced Web attacks, out of the box thinking and the latest security vulnerabilities.Please note that this is captur…

阿里云中MindOpt优化器在python中如何安装

文章目录1 背景2 目的3 Bug4 安装教程6 小丑竟是我自己1 背景 我需要本地下载安装使用阿里元的MindOpt,安装教程可以看官网说明文档(方方面面都有,不过细节部分有点欠缺,可能会踩一些坑,但总体问题不大)。…

盘点 | CES2023落幕!新能源车、显示技术、AI/元宇宙、芯片…百花齐放百家争鸣中……

美国时间1月8日,全球规模最大、水平最高、影响力最广泛的国际消费电子展(CES 2023)在美国拉斯维加斯闭幕。这场堪比科技“春晚”的消费电子盛宴以“技术如何应对世界上最大的挑战”为主题,来自全球170多个国家与地区的3200余家科技…

OpenResty(Nginx+Redis+Lua)实现缓存限流

OpenResty介绍 OpenResty(又称:ngx_openresty) 是一个基于 nginx的可伸缩的 Web 平台,由中国人章亦春发起,提供了很多高质量的第三方模块。 OpenResty 是一个强大的 Web 应用服务器,Web 开发人员可以使用 Lua 脚本语言调动 Ngin…

2013-2021年核心城市空气质量日度数据

2013-2021年核心城市空气质量日度数据 1、时间:2013年12月-2021年4月13日 2、城市包括:北京 上海 广州 深圳 杭州 天津 成都 南京 西安 武汉 3、指标:日期、AQI、范围、质量等级、PM2.5、PM10、SO2、CO、NO2、O3、城市 4、来源&#xff1…

MYSQL基础——DML语句

DML语句 DML英文全称是Data Manipulation Language(数据操作语言),用来对数据库中表的数据进行增(INSERT)、删(DELETE)、改(UPDATE)操作。 接下来代码演示所用的数据表如下: desc employee; 添加 添加数据语法格式如下: # 给指定字段添加…

IEEE | DSConv: Efficient Convolution Operator

论文标题 :DSConv: Efficient Convolution Operator 论文链接 :https://arxiv.org/abs/1901.01928v2 发表时间 :2019年11月 创新点 实现更低的内存使用,并且加快了计算速度 概要 引入了一种称为 DSConv(分布移位卷…

【服务器数据恢复】服务器卷被误删除的raid5数据恢复案例

服务器数据恢复环境&故障: 某品牌服务器,搭建raid5磁盘阵列。 用户误操作删除服务器上的卷。 经过检测发现服务器不存在物理故障,可以从raid5磁盘阵列层面进行数据恢复。 服务器数据恢复过程: 1、对故障服务器所有硬盘以只读…

Chromedriver安装教程【无需翻墙】

第一步 查看你当前Chrome浏览器的版本,如下图所示: 第二步 查看当前Chrome浏览器的版本号,如下图所示,版本 108.0.5359.125(正式版本) (64 位)中的,108就是我们的版本号。 第三…

第47讲:SQL优化之主键优化

文章目录1.主键优化方面的概念1.1.数据的组织方式1.2.主键顺序写入的过程1.3.主键乱序写入引发页分裂的现象1.4.页合并的概念2.主键的设计原则1.主键优化方面的概念 1.1.数据的组织方式 在InnoDB存储引擎中,表的数据都是根据主键顺序组织然后存放的,这…

集成开发工具IDEA导入新项目,update index时间过长

集成开发工具IDEA导入新项目,update index时间过长,一般这种场景出现在: 1.继承开发工具比较新(使用了优化的索引算法,这种算法一般是前期编译比较慢,一旦编译完,存入缓存,后期搜索就…

为何国家应该大力推行IPV9而不是IPv6.md

不得不说,中国的发展突飞猛进,你看连神舟16号都已经提升了日程。 我们见证了中国的崛起,更见证了中国的力量,集中力量办大事的决心。 当然计算机网络体系也发生了很大的改变,从之前的IPv4到20年前的IPv6的提出,再到现在的IPV9技术的商业实施。 为何IPv6提出了20多年了,普及还是…

11点还不睡会错过肝脏排毒吗?

人体脏器有排毒时间这个说法由来已久,肝经循行时间为晚上11点-1点,这让很多人害怕自己在11点还没睡就会错过肝脏排毒的时间。这个说法是真的吗?肝脏作为人体的“生物加工厂”,24小时都在工作。工作内容包括调节代谢、合成、调节免…

JSONArray.parseArray

1. 需求 最近有个需求: 要接收某个接口的 JSON 数据,而这个JSON数据有可能是一个 JSON 对象,也有可能是一个 JSON数组。 "{name,王五,age:10}""[{name:张三,age:12},{name:李四,age:11}]"现在呢,我需要根据…

指令+运算=CPU

1 组合逻辑电路(Combinational Logic Circuit) 要实现完整CPU功能,除加法器这种电路,还需实现其他功能的电路。有这样一种电路,类似加法器,给定输入,就能得到固定输出。 但仅有组合逻辑电路还…

在风速、风向传感器中,比聚碳酸酯复合材料更好的壳体是哪个?

现如今,铝合金产品在电子行业,已经成为主流产品之一,适用范围广,在各个行业都有普及,其中就包括气象领域。其中,风速、风向变送器为气象仪器,也随着时代的发展,不断更新换代&#xf…

大一计算机新生,感觉什么都学不会怎么办?

虽然今天什么都没做,但是还是辛苦我了。。。刚开始难是正常现象,可以先梳理一下 计算基础基础很重要,实践为上 计算机组成与原理、数据结构、计算机网络、操作系统、编程语言 书看得越多,其实你越能找到自己的方向,一…

“数实融合” 新时代,解读数据治理的新风向

导语 | 数据作为国际数字主权竞争的核心资源,是国家明确增列的新型生产要素。数据质量的高低、数据价值的挖掘,是影响企业发展的关键要素之一。今天我们邀请到了中国信息通信研究院 大数据与区块链部副主任、腾讯云 TVP 姜春宇老师,带领我们解…