8 聚类算法

news2024/11/24 1:51:12

目录

0 背景

1 Kmeans

1.1 聚类数量k的确定

2 DBSCAN

2.1 三个点

2.2 算法流程

 3 层次聚类

3.1 过程

4 基于分布的聚类:高斯混合模型


 

0 背景

        聚类算法是一种无监督学习技术,用于将数据集中的数据点划分为不同的组或簇,使得同一组内的数据点彼此相似,而不同组之间的数据点则有所区别。

        天下没有免费的午餐。没有所谓最好的聚类方法,通常是需要根据不同的问题,人工进行选择的。了解算法本身原理然后与真实数据结合起来考量。说白了就是衣服(算法)适不适合你先看看然后再试试。

聚类分析的整个过程包括四个基本步骤:

A. Feature Selection or Extraction (特征选择和提取)

        特征选择是确定最有效的原始特征子集用于聚类的过程。特征提取是将一个或多个输入特征转换为初始显著特征的过程。聚类过程高度依赖于此步骤。对特征的轻率剔除会增加内卷involution(involution: a function, transformation, or operator that is equal to its inverse),并可能导致额外的无关紧要的簇(clusters).

B. Clustering Algorithm Design or Selection (聚类算法的设计和选择)

        不可能定理指出,“没有一个单一的聚类算法可以同时满足数据聚类的三个基本公理,即scale-invariance (尺度不变性)、consistency (一致性) 和 richness (丰富性)。因此,不可能为在不同的科学、社交、医学等其它领域中建立一个通用的聚类方法框架。从而,通过对应用领域的认知来精确剔除该算法是非常重要的。通常,所有算法都基于不同的输入参数,例如聚类的数量,优化/构造标准,终止条件,邻近度等。额外设计或者剔除这些不同的参数和标准,以此来作为这个步骤的前提条件。

C. Cluster Validation (聚类验证)

        将不同的聚类算法用于同一数据集可以产生不同的结果。甚至是相同的算法,不同的参数也会产生不同的聚类结果。因此,必须验证或评估该聚类方法产生的结果。评估标准分为:

1)内部指标:内部指标是通过和它的数据进行比较来评估由聚类算法产生的聚类

2)外部指标:外部指标通过利用已知的知识(例如:类别标签)来评估聚类结果。

3)相对指标:顾名思义,该标准将结果与不同算法产生的其他结果进行比较。

D. Results Interpretation (结果解析)

        聚类过程的最后一步涉及聚类的展示。聚类的最终目的是为了让人们更了解原始数据,以便它们更有效地分析和解决难题。因为“Cluster(集群)”的概念无法精确地被定义,

1 Kmeans

        聚类原则:以空间中k个点为中心进行聚类,对最靠近他们的对象归类。逐次计算各簇中心的值为新的中心值,迭代更新,直至簇中心位置不再改变或者达到最大迭代次数。

公式:

argmin J(c) = argmin\sum_{i=1}^{k}\left | x-c_{i} \right |_{2}^{2}

式中k是簇的个数,C为簇首(聚类中心)集合,共有K个簇首,x是簇中的样本。

算法流程:

1 适当选择k个类的初始中心;
2 在第n次迭代中,对任意一个样本,求其到k个中心的距离,将该样本归到距离最短的中心所在的类/簇;
3 利用均值等方法更新该类的中心值;
4 对于所有的k个聚类中心,如果利用(2)(3)的迭代法更新后,聚类中心的位置保持不变,则迭代结束;否则,则继续迭代。

优点:

速度快,简单,容易理解。

缺点:

  1. 需要预先指定簇的数量 K:在实际应用中,往往难以事先确定最佳的簇数 K,选择不合适的 K 可能导致聚类效果不佳。

  2. 对初始中心点敏感:K-means 对初始簇中心的选择敏感,不同的初始中心可能导致不同的聚类结果。

  3. 只适用于凸形状的簇:K-means 对非凸形状的簇效果较差,可能会将非凸簇分割成多个凸簇。

  4. 无法处理噪声和离群值:K-means 对噪声和离群值敏感,这些异常值可能会影响聚类结果。

  5. 欧氏距离度量的限制:K-means 使用欧氏距离来度量数据点之间的相似性,对于非球形簇或具有不同密度的簇效果可能不佳。

1.1 聚类数量k的确定

        肘部法则(Elbow method):改变聚类数K,然后进行聚类,计算损失函数,拐点处即为推荐的聚类数 (即通过此点后,聚类数的增大也不会对损失函数的下降带来很大的影响,所以会选择拐点)。手肘法是一个经验方法,缺点就是不够自动化。

由图可见,K值越大,距离和越小;并且,当K=3时,存在一个拐点,就像人的肘部一样;当K (1,3)时,曲线急速下降;当K>3时,曲线趋于平稳。手肘法认为拐点就是K的最佳值。 

2 DBSCAN

        DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一种基于密度的聚类算法,它能够有效地识别任意形状的簇,并且可以处理噪声数据。超参数:邻域半径(eps)和最小点数(minPts)。

2.1 三个点

核心点:核心点的半径范围内的样本个数≥最少点数。明星选手。

边界点:边界点的半径范围内的样本个数小于最少点数大于0。边缘选手。

噪声点:噪声点的半径范围的样本个数为0。扫把星选手。

2.2 算法流程

  1. 选择核心点:如果一个点的eps-邻域内点数超过minPts,将其标记为核心点。

  2. 构建邻域链:对每个核心点,将它的eps-邻域内所有点(包括其他核心点)连接起来,形成一个聚类。
  3. 边界点的归属:将边界点分配给与之相连的核心点的聚类。
  4. 标记噪声:最后,未被归入任何聚类的点被标记为噪声。

2.3 优点缺点

优点

  1. 基于密度的聚类:DBSCAN 根据数据点周围的密度来确定簇的形状和大小,而不需要预先指定簇的数量。

  2. 能够处理噪声和离群值:DBSCAN 能够有效地识别噪声数据点,将其标记为噪声或边界点,而不将其分配给任何簇。

  3. 适用于不规则形状的簇:由于 DBSCAN 不受簇形状的限制,因此可以识别任意形状的簇,包括非凸形状的簇。

  4. 无需预先指定簇的数量:相比于 K-means 等需要预先指定簇数量的算法,DBSCAN 不需要事先知道簇的数量,因此更加灵活。

  5. 鲁棒性强:DBSCAN 对参数的选择相对鲁棒,对于不同密度和大小的簇能够给出合理的聚类结果。

  6. 高效性:DBSCAN 在处理大规模数据集时表现良好,其时间复杂度为 O(n log n)。

  7. 边界点和核心点:DBSCAN 将数据点分为核心点、边界点和噪声点,核心点是周围邻域内有足够密度的点,边界点是靠近核心点但自身密度不足的点。

缺点

        需指定最少点个数,半径(或自动计算半径)。

实战技巧:

  1. 数据探索:在调整参数之前,对数据进行彻底的探索,包括可视化和基础统计分析。
  2. 领域知识:利用领域知识来指导初步参数的选择。
  3. 迭代实验:进行一系列的实验,逐步调整参数,每次变化后都仔细分析聚类结果的变化。

 3 层次聚类

        层次法(Hierarchicalmethods):先计算样本之间的距离。每次将距离最近的点合并到同一个类。然后,再计算类与类之间的距离,将距离最近的类合并为一个大类。不停的合并,直到合成了一个类。其中类与类的距离的计算方法有:最短距离法,最长距离法,中间距离法,类平均法等。比如最短距离法,将类与类的距离定义为类与类之间样本的最短距离。

自下而上法:凝聚型层次聚类,就是一开始每个个体(object)都是一个类,然后根据linkage寻找同类,最后形成一个“类”。

自上而下法:分裂型层次聚类,就是反过来,一开始所有个体都属于一个“类”,然后根据linkage排除异己,最后每个个体都成为一个“类”。

3.1 过程

绝大多数层次聚类属于凝聚型层次聚类,它们只是在簇间相似度的定义上有所不同。 这里给出采用最小距离的凝聚层次聚类算法流程:

(1) 将每个对象看作一类,计算两两之间的最小距离;

(2) 将距离最小的两个类合并成一个新类;

(3) 重新计算新类与所有类之间的距离;

(4) 重复(2)、(3),直到所有类最后合并成一类。

优点:

1,距离和规则的相似度容易定义,限制少;

2,不需要预先制定聚类数;

3,可以发现类的层次关系;

4,可以聚类成其它形状

缺点:

1,计算复杂度太高;

2,奇异值也能产生很大影响;

3,算法很可能聚类成链状

4 基于分布的聚类:高斯混合模型

        高斯混合模型(GMM)是统计模型中的一颗璀璨之星,它为数据提供了一种复杂而又强大的表示方法。在机器学习的许多领域,从模式识别到图像处理,GMM都被广泛地采用和研究。它背后的核心思想是使用多个高斯分布的组合来拟合数据,这种方法的优越性在于其对数据的弹性拟合能力和生成性质。

  1. 概率模型:GMM 是一个概率模型,假设数据是由多个高斯分布组合而成的混合物。

  2. 灵活性:GMM 可以拟合各种形状的数据分布,因为它是多个高斯分布的线性组合。

  3. 软聚类:GMM 提供了软聚类(soft clustering)的能力,即每个数据点都可以属于不同簇的概率,而不是硬性地分配到一个簇。

  4. 参数化:GMM 的参数包括每个高斯分布的均值、协方差矩阵和混合系数,可以通过最大似然估计或期望最大化算法(EM 算法)来估计这些参数。

  5. 处理概率密度不均匀的数据:GMM 可以很好地处理数据的概率密度不均匀的情况,因为每个高斯分布可以捕捉数据的局部特征。

  6. 模型选择:GMM 可以通过信息准则(如赤池信息准则 AIC、贝叶斯信息准则 BIC)来选择最优的模型复杂度。

  7. 生成数据:GMM 可以用于生成新的数据点,通过从每个高斯分布中随机采样并根据混合系数进行加权求和。

  8. 应用领域:GMM 在图像分割、异常检测、聚类分析等领域有着广泛的应用。

5 评估指标 

  1. 轮廓系数(Silhouette Score):轮廓系数结合了簇内数据点的紧密度和簇间数据点的分离度,取值范围在[-1, 1]之间,值越接近1表示聚类效果越好。

  2. Calinski-Harabasz 指数:Calinski-Harabasz 指数是通过簇内数据点的紧密度和簇间数据点的分离度的比值来评估聚类的紧密度,值越大表示聚类效果越好。

  3. Davies-Bouldin 指数:Davies-Bouldin 指数通过计算簇内数据点之间的平均距离和簇间中心点之间的距离来评估聚类的分离度,值越小表示聚类效果越好。

  4. 互信息(Mutual Information):互信息用于度量聚类结果与真实标签之间的相似度,值越大表示聚类结果与真实标签的一致性越高。

  5. 调整兰德指数(Adjusted Rand Index):调整兰德指数用于度量聚类结果与真实标签之间的相似度,值范围在[-1, 1]之间,值越接近1表示聚类结果与真实标签的一致性越高。

  6. 互信息增益(Normalized Mutual Information):互信息增益用于度量聚类结果与真实标签之间的相似度,值范围在[0, 1]之间,值越大表示聚类结果与真实标签的一致性越高。



5一文详解高斯混合模型原理 - 知乎

聚类的评价指标 - 知乎

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

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

相关文章

线性卷积和圆周卷积

文章目录 【 1. 线性卷积 】1.1 图解分析1.2 矩阵相乘实现线性卷积1.3 圆周卷积实现线性卷积1.4 实例:线性卷积的两种实现方法【 2. 圆周卷积 】2.1 图解分析2.2 矩阵相乘实现圆周卷积2.3 频域点乘实现圆周卷积2.4 实例:圆周卷积两种实现方法【 3. 线性卷积和圆周卷积的等价 …

算法导论 总结索引 | 第三部分 第十二章:二叉搜索树

1、搜索树数据结构 支持 许多动态集合操作,包括 SEARCH、MINIMUM、MAXIMUM、PREDECESSOR、SUCCESSOR、INSERT 和 DELETE 等。使用搜索树 既可以作为一个字典 又可以作为一个优先队列 2、二叉搜索树上的基本操作 所花费的时间 与这棵树的高度成正比。对于有n个结点的…

发卡盗u源码系统搭建ZHU

2024最新UI发卡盗U/支持多语言/更新UI界面/支持多个主流钱包去除后门板,最好是部署智能合约后用合约地址来授权包含转账支付页面盗U授权源码。 完美提U,教程包含如何提u 。功能完美。 1.Php静态 2.目录puicta 3.扩sal 4.ssl不强https

Messari 报告摘要 :Covalent Network(CQT)2024 年第一季度表现

摘要: 尽管 CQT 代币流通供应量增加了 20%(新增 1.04 亿枚 CQT),但 CQT 的质押百分比仅从 2023 年第一季度的 22% 增长到了 2024 年第一季度的 29%。 CQT 的市值季度环比增长了 28%,多次达到 2.75 亿美元&#xff0c…

QT5之事件——包含提升控件

事件概述 信号就是事件的一种,事件由用户触发; 鼠标点击窗口,也可以检测到事件;产生事件后,传给事件处理,判断事件类型,后执行事件相应函数; 类似单片机的中断(中断向量…

STL 标准模板库

以下是一些常用的STL容器: vector:动态数组,提供快速的随机访问。list:双向链表,支持快速插入和删除操作。set:有序集合,存储唯一的元素。map:有序映射,存储键值对。sta…

数据库(MySQL)—— DQL语句(基本查询和条件查询)

数据库(MySQL)—— DQL语句(基本查询和条件查询) 什么是DQL语句基本查询查询多个字段字段设置别名去除重复记录 条件查询语法条件 我们今天进入MySQL的DQL语句的学习: 什么是DQL语句 MySQL中的DQL(Data Q…

【Docker第一课】docker的基本命令和试启动容器(详细图解)

目录 知识梗概 docker的初步了解 了解docker常用命令 试开启容器(这里演示nginx、python3和mysql) 1、nginx容器的启动 2、python3容器的启动 docker的作用 虚拟机与容器的区别 写在前面: 本专栏你将了解docker一些入门知识&#xff…

【解决方案】Can‘t exec “locale”: No such file or directory

【解决方案】Cant exec “locale”: No such file or directory 还可能出现的错误: 1. 报错原因: 缺少ldconfig 2. 解决方案: sudo apt-get download libc-bin dpkg -x libc-bin*.deb unpackdir/ sudo cp unpackdir/sbin/ldconfig /sbin/ s…

机器学习:深入解析SVM的核心概念【三、核函数】

核函数 **问题一:为什么说是有限维就一定存在高维空间可分呢?**原始空间与特征空间为什么映射到高维空间可以实现可分核函数的作用 **问题二:最终怎么得到函数**从对偶问题到决策函数的步骤:结论 **问题三:为什么说特征…

Coursera: An Introduction to American Law 学习笔记 Week 04: Constitutional Law

An Introduction to American Law 本文是 https://www.coursera.org/programs/career-training-for-nevadans-k7yhc/learn/american-law 这门课的学习笔记。 文章目录 An Introduction to American LawInstructors Week 04: Constitutional LawKey Constitutional Law TermsSup…

Golang chan 实现原理

Golang:context基于go1.22版本 chan的作用和使用方法共享内存的优缺点 chan 的使用方法 chanel 的底层结构channel 结构体创建channel写流程异常处理写时有阻塞读流程写时无阻塞读流程,缓冲区有空间写时无阻塞读流程,缓冲区无空间写流程整体架…

PC通过串口发送指令控制LED+串口中断

如何让单片机接收数据? 首先要打开SCON中的串行接收控制位REN。当REN1时为允许接收状态,可以接收信息。 因此令SCON 0x50; 怎么知道收到数据? 利用RI接收中断请求标志位。当串行接收到第8位结束时由内部硬件自动置为RI1&#…

Matlab各个版本介绍、区别分析及推荐

MATLAB,由美国MathWorks公司出品,是一款广泛应用的商业数学软件。自其诞生之初,MATLAB便以其强大的矩阵计算能力、灵活的编程环境以及广泛的应用领域,赢得了全球科研工作者和工程师的青睐。本文将详细介绍MATLAB的各个版本&#x…

基于springboot+vue+Mysql的学生毕业离校系统

开发语言:Java框架:springbootJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:…

牛客美团2024年春招第一场笔试【技术】解题

1.小美的平衡矩阵 小美拿到了一个n∗n的矩阵,其中每个元素是 0 或者 1。 小美认为一个矩形区域是完美的,当且仅当该区域内 0 的数量恰好等于 1 的数量。 现在,小美希望你回答有多少个i∗i的完美矩形区域。你需要回答1≤i≤n的所有答案 输出…

ArcGIS+ChatGPT双剑合璧:从数据读取到空间分析,一站式掌握GIS与AI融合的前沿科技!

目录 专题一 AI大模型应用 专题二 ArcGIS工作流程及功能 专题三 prompt的使用技巧 专题四 AI助力工作流程 专题五 AI助力数据读取 专题六 AI助力数据编辑与处理 专题七 AI助力空间分析 专题八 AI助力遥感分析 专题九 AI助力二次开发 专题十 AI助力科研绘图 专题十一…

chrome extension插件替换网络请求中的useragent

感觉Chrome商店中的插件不能很好的实现自己想要的效果,那么就来自己动手吧。 本文以百度为例: 一般来说网页请求如下: 当前使用的useragent是User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safar…

【模板】差分

原题链接:登录—专业IT笔试面试备考平台_牛客网 目录 1. 题目描述 2. 思路分析 3. 代码实现 1. 题目描述 2. 思路分析 差分模板。 b[0]a[0]; b[1]a[1]-a[0]; b[2]a[2]-a[1]; ...... b[n-1]a[n-1]-a[n-2]; b[n]a[n]-a[n-1]; 差分标记:b[l]k,b…

Springboot+mybatis升级版(Postman测试)

一、项目结构 1.导入依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apach…