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.mfbz.cn/a/586085.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【微信公众平台】扫码登陆

文章目录 前置准备测试号接口配置 带参数二维码登陆获取access token获取Ticket拼装二维码Url编写接口返回二维码接收扫描带参数二维码事件编写登陆轮训接口测试页面 网页授权二维码登陆生成ticket生成授权地址获取QR码静态文件支持编写获取QR码的接口 接收重定向参数轮训登陆接…

Linux的vim下制作进度条

目录 前言: 回车和换行有区别吗? 回车和换行的区别展示(这个我在Linux下演示) 为什么会消失呢? 回车和换行的区别 为什么\r和\n产生的效果不同? 打印进度条: (1)打印字符串 …

【再探】设计模式—抽象工厂及建造者模式

抽象工厂模式和建造者模式都属于创建型模式。两者都能创建对应的对象,而创建者模式更侧重于创建复杂对象,将对象的创建过程封装起来,让客户端不需要知道对象的内部细节。 1 抽象工厂模式 需求: 在使用工厂方法模式时&#xff0…

TCP协议关于速率的优化机制-滑动窗口详解

在上一章中,我们讲述了TCP协议在传输过程中的可靠性http://t.csdnimg.cn/BsImO,这里衔接上一篇文章继续讲,TCP协议的特性,TCP协议写完之后就写,Http和Https等内容吧 1. 滑动窗口 这里的滑动窗口不是指算法里面的双指…

品牌百度百科词条需要什么资料?

品牌百度百科词条是一个品牌的数字化名片,更是品牌历史、文化、实力的全面展现。 作为一个相当拿得出手的镀金名片,品牌百度百科词条创建需要什么资料,今天伯乐网络传媒就来给大家讲解一下。 一、品牌基本信息:品牌身份的明确 品…

用 PyTorch 构建液态神经网络(LNN)

用 PyTorch 构建液态神经网络(LNN) 文章目录 什么是液态神经网络为什么需要液态神经网络LNN 与 RNN 的区别用 PyTorch 实现 LNNStep 1. 导入必要的库Step 2. 定义网络架构Step 3. 实现 ODE 求解器Step 4. 定义训练逻辑 LNN 的缺陷总结 什么是液态神经网络…

C语言-嵌入式-STM32:FreeRTOS说明和详解

Free即免费的,RTOS的全称是Real time operating system,中文就是实时操作系统。 注意:RTOS不是指某一个确定的系统,而是指一类操作系统。比如:uc/OS,FreeRTOS,RTX,RT-Thread 等这些都…

docker自定义java运行环境镜像

一、下载jre/jdk 压缩包,centos:7基础镜像 1、 下载jdk/dre 下载jdk或jre 官网下载 根据需求下载 jdk:SE Development Kit(开发环境) jre: SE Runtime Environment (运行环境)2、下载centos:7 # 下载centos7 docker镜像 docker pull centos:7#centos查看系统时间 …

面试经典算法题之双指针专题

力扣经典面试题之双指针 ( 每天更新, 每天一题 ) 文章目录 力扣经典面试题之双指针 ( 每天更新, 每天一题 )验证回文串收获 392. 判断子序列 验证回文串 思路 一: 筛选 双指针验证 class Solution { public:bool isPalindrome(string s) {// 所有大写字母 > 小写 去除非字母…

对比mongodb查询的执行计划,说一说组合索引的优化方案(上)

一、背景 Mongodb数据库,有个160w数据量规模的集合,字段多达几十个,随着需求的迭代,查询条件也是五花八门。 为了提高某个查询的效率,结果都以新增索引解决问题,最后多达16个索引。 这里仅贴出本文会提及…

引领农业新质生产力,鸿道(Intewell®)操作系统助力农业机器人创新发展

4月27日至29日,2024耒耜国际会议在江苏大学召开。科东软件作为特邀嘉宾出席此次盛会,并为江苏大学-科东软件“农业机器人操作系统”联合实验室揭牌。 校企联合实验室揭牌 在开幕式上,江苏大学、科东软件、上交碳中和动力研究院、遨博智能研究…

Spring Boot Admin

概述 Spirng Boot Admin 登录页面 Spring Boot Admin是一个用于管理Spring Boot应用的监控工具,它允许你查看和管理多个Spring Boot应用实例。用于应用信息进行界面化的展示,常常辅助我们开发人员快速查看服务运行状态在微服务架构中,Spring Boot Admin通…

中科院突破:TalkingGaussian技术实现3D人脸动态无失真,高效同步嘴唇运动!

DeepVisionary 每日深度学习前沿科技推送&顶会论文分享,与你一起了解前沿深度学习信息! 引言:探索高质量3D对话头像的新方法 在数字媒体和虚拟互动领域,高质量的3D对话头像技术正变得日益重要。这种技术能够在虚拟现实、电影…

谷粒商城实战(020 RabbitMQ-消息确认)

Java项目《谷粒商城》架构师级Java项目实战,对标阿里P6-P7,全网最强 总时长 104:45:00 共408P 此文章包含第258p-第p261的内容 消息确认 生产者 publishers 消费者 consumers 设置配置类 调用api 控制台 抵达brocker 代理 新版本ReturnCallbac…

【webrtc】MessageHandler 8: 基于线程的消息处理:处理音频输入输出断开

m98代码,看起来m114 去掉了MessageHandler :音频的录制和播放 都使用了on message,但只是用来通知并处理流的断开的。AAudioRecorder AAudioRecorder 处理流断开 OnErrorCallback :有可能 错误回调是别处来的,是其他线程, 但是这个错误的处理要再自己的线程执行: 音频播…

北京大学肖臻老师《区块链技术与应用》P14(ETH概述)和P15(ETH账户)

1️⃣ 参考 北京大学肖臻老师《区块链技术与应用》 P14 - ETH概述篇P15 - ETH账户篇 1️⃣4️⃣ETH概述 ① 比特币与以太坊的对比 比特币(区块链 1.0)以太坊(区块链 2.0)出块时间大约10 min十几秒mining puzzle计算密集型Memo…

【计算智能】基本遗传算法在优化问题中的应用与实验【理论到程序】

文章目录 1. 引言:遗传算法简介2. 基本遗传算法(SGA)2.1 基本遗传算法的构成要素1. 染色体编码2. 适应度函数3. 遗传算子 2.2 实验设计与方法1. 算法流程2. 伪代码3. python实现1. 导入模块2. 目标函数 f(x)3 初始化种群4. 计算适应度5. 选择…

Django后台项目开发实战二

我们的需求是开发职位管理系统 三个功能: 管理员发布职位候选人能浏览职位用户能投递职位 第二阶段 创建应用 jobs,实现职位数据的建模 python manage.py startapp jobs 然后再 setting .py 注册应用,只需添加应用名称到最后一行 INST…

VTK —— 二、教程六 - 为模型加入3D微件(按下i键隐藏或显示)(附完整源码)

代码效果 本代码编译运行均在如下链接文章生成的库执行成功,若无VTK库则请先参考如下链接编译vtk源码: VTK —— 一、Windows10下编译VTK源码,并用Vs2017代码测试(附编译流程、附编译好的库、vtk测试源码) 教程描述 本…

探索未来道路:智慧高速系统架构的革命性进步

随着科技的飞速发展,智慧高速系统架构正在成为道路交通领域的一项重要创新。这一系统结合了先进的信息技术和智能化设备,为高速公路提供了全新的管理和服务模式,极大地提升了交通运输效率和安全性。本文将深入探讨智慧高速系统架构的革命性进…