8 聚类算法

目录

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.mzph.cn/web/5389.shtml

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

相关文章

nginx缓存清理

背景 昨天打开我的gpt镜像网站,意外发现静态图片资源全都无法获取了 CoCo-AI 一番排查下来,发现是引用的cdn链接失效了 且cdn源是属于七牛云的,且不再维护,于是果断切换到cloudflare export function getEmojiUrl(unified: str…

Qt简单离线音乐播放器

有上传本地音乐文件&#xff0c;播放&#xff0c;暂停&#xff0c;拖拉进度条等功能的播放器。 mainwindow.cpp #include "mainwindow.h" #include "ui_mainwindow.h" #include <QMediaPlayer> #include <QFileDialog> #include <QTime&g…

【Leetcode每日一题】 分治 - 排序数组(难度⭐⭐)(69)

1. 题目解析 题目链接&#xff1a;912. 排序数组 这个问题的理解其实相当简单&#xff0c;只需看一下示例&#xff0c;基本就能明白其含义了。 2.算法原理 归并排序&#xff08;Merge Sort&#xff09;是一种采用“分而治之”&#xff08;Divide and Conquer&#xff09;策略…

Python 语音识别系列-实战学习-DFCNN_Transformer的实现

DFCNN_Transformer的实现 前言1.定义声学模型和获取数据的函数2.训练声学模型3.定义语言模型4.训练语言模型5.模型测试5.总结 前言 此博客是基于华为云中的DFCNN_Transformer的教程进行的学习和实践。本文将介绍一个结合了深度全卷积网络&#xff08;DFCNN&#xff09;和Trans…

stm32mp135d u-boot 引导流程

stm32mp135d u-boot 引导流程 一、U-Boot启动流程1. bootcmd_stm32mp 确定当前设备2. distro_bootcmd 进入当前设备启动3. bootcmd_mmc1 设置当前设备号4. mmc_boot 设置当前设备类型5. scan_dev_for_boot_part 扫描设备分区6. scan_dev_for_boot 扫描指定分区7. scan_dev_for_…

Elasticsearch索引定义

1. 前言 索引是具有相同结构的文档的集合&#xff0c;每个索引都拥有一个唯一的索引名称&#xff0c;它是ES里面非常重要的概念。一个ES集群中可以有多个索引&#xff0c;不同的索引代表不同的业务类型数据。 什么时候需要创建新的索引呢&#xff1f;一般来说有两类场景&…

数字电路-5路呼叫显示和8路抢答器

本内容涉及两个电路&#xff0c;分别为5路呼叫显示电路和8路抢答器电路&#xff0c;包含Multisim仿真原文件&#xff0c;为掌握FPGA做个铺垫。紫色文字是超链接&#xff0c;点击自动跳转至相关博文。持续更新&#xff0c;原创不易&#xff01; 目录&#xff1a; 一、5路呼叫显…

【百度Apollo】探索自动驾驶:百度Apollo视觉感知模块的实践与创新

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《linux深造日志》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 文章目录 引入一、百度Apollo视觉感知模块概述二、启动感知模块步骤一&#xff1a;进入 Docker 环境并启动 Dreamview步骤二…

HOOPS Exchange导入数据时如何使用CATIA缓存选项?

1、什么是CATIA缓存选项和CGR文件&#xff1f; CATIA V5默认的工作方式是加载几何图形。加载大型程序集时&#xff0c;这可能会导致性能下降&#xff0c;因为所需的内存很重要。 在这种情况下&#xff0c;我们可能需要使用缓存选项。这将生成仅包含曲面细分数据而不包含几何图…

Docker容器---docker-Consul部署

一、Docker-consul简介 1、概述 consul是google开源的一个使用go语言开发的服务管理软件。支持多数据中心、分布式高可用的、服务发现和配置共享。采用Raft算法&#xff0c;用来保证服务的高可用。内置了服务注册与发现框架、分布一致性协议实现、健康检查、Key/Value存储、多…

【Hadoop】-Hive客户端:HiveServer2 Beeline 与DataGrip DBeaver[14]

HiveServer2 & Beeline 一、HiveServer2服务 在启动Hive的时候&#xff0c;除了必备的Metastore服务外&#xff0c;我们前面提过有2种方式使用Hive&#xff1a; 方式1&#xff1a; bin/hive 即Hive的Shell客户端&#xff0c;可以直接写SQL方式2&#xff1a; bin/hive --…

绕过Windows 11的安装门槛

&#x1f9d0; Win11安装门槛 自从Win11发布以来&#xff0c;微软提高了对电脑配置的要求&#xff0c;如TPM支持、特定CPU型号限制等&#xff0c;让不少小伙伴的升级之路变得坎坷。不过&#xff0c;俗话说得好&#xff0c;道高一尺魔高一丈&#xff0c;今天就让我们一起来看看…

大语言模型与词向量表示

大语言模型&#xff08;Large Language Models, LLMs&#xff09;与词向量表示之间的关系是紧密相连的。以下是几个关键点&#xff0c;说明了它们之间的联系&#xff1a; 1. 高质量词向量的生成 大语言模型能够生成高质量的词向量表示。这些模型通过在大量文本数据上的预训练学…

ES基础查询,term级参数介绍

Term级别查询 term这个单词汉语翻译是术语、条款等意思&#xff0c;在es中翻译过来我总感觉怪怪的。es官网将ids、term、terms、fuzzy等查询方式放在这个分类下&#xff0c;他们是dsl语句中最基本的语句&#xff0c;大都是单条件查询。其中ids、esists、range、term、terms等查…

MongoDB聚合运算符:$strLenCP

MongoDB聚合运算符&#xff1a;$strLenCP $strLenCP聚合运算符返回指定字符串中 UTF-8 代码点的数量。 语法 { $strLenCP: <string expression> }<expression>为可解析为字符串的表达式&#xff0c;如果解析为null或引用了不存在的字段&#xff0c;返回错误。 …

二,网络安全常用术语

黑客&#xff08;hacker&#xff09;——对计算机技术非常擅长的人&#xff0c;窃取数据&#xff0c;破坏计算机系统&#xff1b;全球最知名的一个黑客组织匿名&#xff08;Anonymous&#xff09;。 脚本小子——刚刚入门安全行业&#xff0c;学习了一些技术&#xff0c;只会用…

美国天然气期货价格因高库存水平和天气预报因素下跌

近期&#xff0c;美国天然气期货价格出现下跌&#xff0c;主要原因是高库存水平继续对价格形成压力。纽约商品交易所(NYMEX)的天然气期货价格收跌2.4美分&#xff0c;至每百万英热1.614美元&#xff0c;跌幅为1.5%。这一价格下跌反映了天然气市场受多种因素影响的复杂局面。 库…

完美解决AttributeError: module ‘backend_interagg‘ has no attribute ‘FigureCanvas‘

遇到这种错误通常是因为matplotlib的后端配置问题。在某些环境中&#xff0c;尤其是在某些特定的IDE或Jupyter Notebook环境中&#xff0c;可能会因为后端配置不正确而导致错误。错误信息提示 module backend_interagg has no attribute FigureCanvas 意味着当前matplotlib的后…

数智新重庆 | 推进信号升格 打造算力山城

2024年&#xff0c;是实现“十四五”规划目标任务的关键一年&#xff0c;高质量的5G网络、强大的AI能力作为新质生产力的重要组成部分&#xff0c;将有效赋能包括制造业在内的千行万业数字化化、智能化、绿色化转型升级&#xff0c;推动融合应用新业态、新模式蓬勃兴起&#xf…

【javaWeb项目】基于网页形式,通过浏览器访问的java应用程序,就称为javaweb程序

JavaWeb前端 第一章 1、javaWeb是什么 //基于网页形式&#xff0c;通过浏览器访问的java应用程序&#xff0c;就称为javaweb程序2、web程序的分类 //1、静态web程序特点&#xff1a;网页上的内容是固定不变的&#xff0c;不能动态加载&#xff0c;例如web前端//2、动态web程序…