机器学习——聚类算法详解

2023/11/29 12:50:25

1.聚类问题

1)聚类问题与核心概念

聚类算法做的事情,就是对无标签的数据,基于数据分布进行分群分组,使得相似的数据尽量落在同一个簇内。

聚类算法详解; 聚类问题; 核心概念;

 

我们先对比区分一下聚类和分类

  • 聚类是一种无监督学习,而分类是一种有监督的学习。
  • 聚类只需要人工指定相似度的标准和类别数就可以,而分类需要从训练集学习分类的方法

聚类算法详解; 聚类问题; 分类 V.S. 聚类; 

2)主流聚类算法

我们先对聚类算法做个了解,主流的聚类算法可以分成两类:划分聚类(Partitioning Clustering)和层次聚类(Hierarchical Clustering)。他们的主要区别如图中所示:

划分聚类算法会给出一系列扁平结构的簇(分开的几个类),它们之间没有任何显式的结构来表明彼此的关联性

  • 常见算法有 K-Means / K-Medoids、Gaussian Mixture Model (高斯混合模型)、Spectral Clustering(谱聚类)、Centroid-based Clustering等。

层次聚类会输出一个具有层次结构的簇集合,因此能够比划分聚类输出的无结构簇集合提供更丰富的信息层次聚类可以认为是是嵌套的划分聚类

  • 常见算法有 Single-linkage、Complete-linkage、Connectivity-based Clustering等。

这两类算法在聚类过程中用到的具体算法不一样。聚类算法详解; 主流聚类算法; 划分聚类 V.S. 层次聚类;

 

1.K-Means聚类算法

K-Means算法是聚类算法中一个非常基础的算法,同时应用又非常广泛。

1)K-Means算法核心概念

我们提到了聚类算法要把 n个数据点按照分布分成k类。我们希望通过聚类算法得到 k个中心点,以及每个数据点属于哪个中心点的划分。

  • 中心点可以通过迭代算法来找到,满足条件:所有的数据点到聚类中心的距离之和是最小的。
  • 中心点确定后,每个数据点属于离它最近的中心点。

聚类算法详解; K-Means聚类算法; 算法核心概念;

2)K-Means算法步骤

K-Means 采用 EM算法 迭代确定中心点。流程分两步:

  • ① 更新中心点:初始化的时候以随机取点作为起始点;迭代过程中,取同一类的所有数据点的重心(或质心)作为新中心点。
  • ② 分配数据点:把所有的数据点分配到离它最近的中心点。

重复上面的两个步骤,一直到中心点不再改变为止。过程如图所示:

聚类算法详解; K-Means聚类算法; 算法步骤;

聚类算法详解; K-Means聚类算法; 算法步骤; 

2.层次聚类算法

相比于 K-Means 这类划分聚类,我们有另外一类层次化聚类算法。

1)层次聚类 vs 划分聚类

划分聚类得到的是划分清晰的几个类,而层次聚类最后得到的是一个树状层次化结构。

聚类算法详解; 层次聚类算法; 划分聚类 V.S. 层次聚类; 3. Birch算法

Birch(Balanced Iterative Reducing and Clustering using Hierarchies)是层次聚类的典型代表,天生就是为处理超大规模数据集而设计的,它利用一个树结构来快速聚类,这个树结构类似于平衡B+树,一般将它称之为聚类特征树(Clustering Feature Tree,简称CF Tree)。这颗树的每一个节点是由若干个聚类特征(Clustering Feature,简称CF)组成。

    聚类特征(CF):每一个CF都是一个三元组,可以用(N,LS,SS)表示。

N代表了这个CF中拥有的样本点的数量

LS代表了这个CF中拥有的样本点各特征维度的和向量

SS代表了这个CF中拥有的样本点各特征维度的平方和

    比如:CF中含有N=5个点,以两维样本点值为:

(3,4)、(2,6)、(4,5)、(4,7)、(3,8)

    然后计算:

        LS=(3+2+4+4+3,4+6+5+7+8)=(16,30)

        SS =(32+22+42+42+32,42+62+52+72+82)=(54,190)

CF有一个很好的性质——满足线性关系,即:

CF1+CF2=(N1+N2,LS1+LS2,SS1+SS2)

优点聚类速度快,可以识别噪音点,还可以对数据集进行初步分类的预处理;

缺点有:对高维特征数据、非凸数据集效果不好;由于CF个数的限制会导致与真实类别分布不同.

Mini Batch K-means一般用于类别数适中或者较少的时候,而BIRCH适用于类别数比较大的情况,除此之外,BIRC还可以做一些异常点检测

4.DB-SCAN算法

1)DB-SCAN算法

接下来我们学习另外一个聚类算法:DB-SCAN 算法。

DB-SCAN 是一个基于密度的聚类。如下图中这样不规则形态的点,如果用 K-Means,效果不会很好。而通过 DB-SCAN 就可以很好地把在同一密度区域的点聚在一类中。

聚类算法详解; DB-SCAN V.S. K-Means; 

聚类算法详解; DB-SCAN算法; 关键概念图解;

5. OPTICS聚类算法

基础


OPTICS聚类算法是基于密度的聚类算法,全称是Ordering points to identify the clustering structure,目标是将空间中的数据按照密度分布进行聚类,其思想和DBSCAN非常类似。

但是和DBSCAN不同的是,OPTICS算法可以获得不同密度的聚类,直接说就是经过OPTICS算法的处理,理论上可以获得任意密度的聚类。因为OPTICS算法输出的是样本的一个有序队列,从这个队列里面可以获得任意密度的聚类。

OPTICS算法的基础有两点,

  • 参数(半径,最少点数):

一个是输入的参数,包括:半径ε,和最少点数MinPtsMinPts。

  • 定义(核心点,核心距离,可达距离,直接密度可达):

在这里插入图片描述 

 

 在这里插入图片描述

 

 

 

 

 

 

 

 

 


http://www.jnnr.cn/a/505776.html

相关文章

NUC980编译错误,arm-linux-gcc: Command not found

报错问题: make: arm-linux-gcc: Command not found /bin/sh: 1: arm-linux-gcc: not found dirname: missing operand 昨天编译的时候,还小甜甜,今天就牛夫人了。啥也没干啊! -----------------------------------------------…

男子路遇“纸片鸟”,AI帮忙免惹祸

据报道,近日,河南洛阳一网友在路边偶遇一只“纸片鸟”,小鸟远看像一张纸片,样子十分奇特,而且还死死地盯着自己,像是求救,后来他用手机一查发现是二级保护动物“黄斑苇鳽”,便报警处…

chatgpt赋能python:Python图像处理优化技巧:提高网站SEO效果的必修课程

Python图像处理优化技巧:提高网站SEO效果的必修课程 介绍 在当前数字化时代,网站的SEO优化已经成为了网站营销的重要一环。在优化网站SEO的同时,提升图像处理技巧也成为了重要的一环。Python作为当前最为火热的数据科学语言之一&#xff0c…

css 实现丰富的序号效果

<ol><li><p>日本新潟佐渡岛</p></li><li><p>宣告“飞岛萱草”</p><ol><li><p>迎来最佳观赏期。</p><ol><li><p>据观光协会介绍&#xff0c;</p></li><li><p&…

华为OD机试之模拟商场优惠打折(Java源码)

模拟商场优惠打折 题目描述 模拟商场优惠打折&#xff0c;有三种优惠券可以用&#xff0c;满减券、打折券和无门槛券。 满减券&#xff1a;满100减10&#xff0c;满200减20&#xff0c;满300减30&#xff0c;满400减40&#xff0c;以此类推不限制使用&#xff1b; 打折券&…

IPython使用学习笔记

学习《利用python进行数据分析》第三章 IPython:一种交互式计算和开发环境的笔记&#xff0c;共享给大家&#xff0c;同时为自己作为备忘用。 安装ipython用pip即可。ps.博主用的是win7系统&#xff0c;所以接下来的都是在windows系统下操作的。 一.Ipython基础 启动&#xff…

RK3588平台开发系列讲解(驱动基础篇)中断相关函数

平台内核版本安卓版本RK3588Linux 5.10Android 12文章目录 一、获取中断号相关函数二、申请中断函数三、free_irq 函数四、中断处理函数五、中断使能和禁止函数沉淀、分享、成长,让自己和他人都能有所收获!😄 📢 Linux 中断有专门的中断子系统,其实现原理很复杂,但是驱…

运维小白必学篇之基础篇第十一集:系统进程实验

系统进程实验 实验作业&#xff1a; 1、利用top命令查看当前系统进程&#xff0c;要求没5秒刷新一次&#xff0c;分别按照CPU使用率&#xff0c;内存使用量&#xff0c;CPU使用时间&#xff0c;PID分别排序一次 每5秒刷新一次&#xff1a;top -d 5 按照CPU使用率排序&#xf…

PointNetGPD使用手册

1.创建环境配置环境变量 mkdir -p $HOME/code/ cd $HOME/code/ - Set environment variable PointNetGPD_FOLDER in your $HOME/.bashrc file. export PointNetGPD_FOLDER$HOME/code/PointNetGPD 2.安装 1. Install pcl-tools via sudo apt install pcl-tools. 2. An e…

仙境传说RO :ra脚本加载结构和开发语法讲解

仙境传说RO &#xff1a;ra脚本加载结构和开发语法讲解 大家好&#xff0c;我是艾西。上一篇文章中我们聊完了怎么在游戏中新建NPC&#xff0c;感觉还是有不少小伙伴没有太看懂原理。今天艾西给大家深度讲解一下脚本加载结构和开发语法环境文档。 我们最后都是以ra脚本为主要…

Spring为什么默认是单例的?

目录 一、五种作用域 二、单例bean与原型bean的区别 三、单例Bean的优势与劣势 一、五种作用域 1.singleton: singleton是Spring Bean的默认作用域&#xff0c;也就是单例模式。在整个应用程序中&#xff0c;只会创建一个实例&#xff0c;Bean的所有请求都会共享这个实例。 …

工程制图篇:公差原则与要求

目录 1、尺寸与几何公差2、公差原则3、公差要求4、关键名词解释5、常用通用量具 1、尺寸与几何公差 1&#xff09;尺寸公差1&#xff1a;上极限尺寸减去下极限尺寸之差&#xff0c;或上极限偏差减去下极限偏差只差。它是允许尺寸的变动量。尺寸公差是一个没有符号的绝对值&…

JavaWeb12(实现基础分页模糊查询的分页)

目录 一. 效果预览 ​编辑 二. 实现基本分页 2.1 分页sql --每页3条 取第二页 --由于伪列不能作用与大于符号也不能作用于between....and --因此需要将伪列----->名列 2.2 万能公式 2.3 首页&上一页&下一页实现 ②前端代码 2.4 末页实现&优化 ①底层代…

java并发编程:重排序与happens-before介绍

文章目录 什么是重排序&#xff1f;顺序一致性模型与JMM的保证数据竞争与顺序一致性顺序一致性模型JMM中同步程序的顺序一致性效果JMM中未同步程序的顺序一致性效果 happens-before什么是happens-before?天然的happens-before关系 什么是重排序&#xff1f; 计算机在执行程序…

IIS日志分析

一、下载IIS日志分析软件 地址如下&#xff1a; 开放网盘: 寄存一些分享出来的文件之类的东西 其中就是LogParser和LPS两个压缩文件 二、安装软件 1、需要先安装Log Parser 运行安装上面的文件。 2. 运行Log Parser Studio 在解压的LPSV2.D1文件夹中运行LPS.exe 出现下面…

智警杯赛前准备2.4--SQL多表查询

目录 多表连接 内连接 左外连接 &#xff08;只管左表死活&#xff0c;不管右表&#xff09; 右外连接 &#xff08;与左外连接类似&#xff0c;主表变成右表&#xff09; 全连接 组合查询 union 去重 交叉连接--笛卡尔积 书写顺序及执行顺序 窗口函数 多表连接 内连接…

第3章:SpringMVC获取请求参数

一、SpringMVC获取请求参数 1.通过servletAPI获取 将HttpServletRequest作为控制器方法的形参&#xff0c;此时HttpServletRequest类型的参数表示封装了当前请求的请求报文的对象 <a th:href"{/testServletAPI(usernameadmin,password123456)}">测试API<…

基于图像处理的圆检测与深度学习

基于图像处理的圆检测与深度学习 摘 要一、 绪论二 、图像预处理2.1 滤波算法2.2 边缘检测 三 、圆识别与定位算法3.2 定位算法3.2.1 迭代算法 4.1 数据处理 五、深度学习介绍&#xff1a;参考文献 摘 要 本文主要论述在图像处理的的基础上&#xff0c;为了克服图像背景中的亮…

Hugging Face 介绍

Hugging Face 是一家在自然语言处理和人工智能领域著名的公司&#xff0c;以开发开源的软件库和工具为主要贡献&#xff0c;其中最受欢迎的是 Transformers 库&#xff0c;广泛应用于诸如语言翻译、情感分析和问答等多种自然语言处理任务。此外&#xff0c;Hugging Face 还开发…

0501源码分析-启动过程-springboot2.7.x系列

文章目录 1前言2 启动第一阶段2.1 deduceFromClasspath 推断应用类型2.2 getSpringFactoriesInstances(Class)2.3 ApplicationContextInitializer2.4 ApplicationListener2.5 自定义接口实现配置示例 3 启动第二阶段3.1 SpringApplicationRunListener3.2 容器创建和准备 4 总结…
最新文章