聚类--机器学习西瓜书阅读笔记(六)

news2024/10/24 5:28:33

无监督学习:通过对无标记训练样本的学习,揭示数据内在规律和性质。

聚类试图将数据集中的样本划分为若干不相交的子集,聚类过程自动形成簇结构,簇对应的语义需要子集命名把握。

聚类过程可以作为单独的过程,寻找数据内在分布结构,也可作为其他任务的前驱过程。

聚类涉及的两个基本问题——————性能度量和距离计算

性能度量(有效性指标):外部指标、内部指标,明确性能度量可以作为聚类过程的优化目标。

距离度量:常用闵可夫斯基距离。

闵可夫斯基距离可用于有序属性(可以直接在属性值上计算距离);

VDM用于无序属性(不能直接在属性值上计算距离);

闵可夫斯基距离和VDM结合可以处理混合属性

样本空间中,不同属性的重要性不同,可以使用加权距离

一般基于距离定义相似性度量,距离越大,相似性度量越大,用于相似性度量的距离未必一点要满足距离度量所有基本属性(非负、同一、对称、直递),即非度量距离。现实任务中,有必要基于数据样本确定合适的距离计算。

原型聚类:假设聚类结构能通过一度原型刻画

原型:样本空间中具有代表性的点。

K均值算法(k-means):属于NP问题,采用贪心策略

具体步骤包括:

  1. 初始化:随机选择K个数据点作为初始的簇质心。
  2. 分配:根据每个数据点与各个簇质心的距离,将其分配给最近的簇。
  3. 更新:重新计算每个簇的质心,即取簇内所有数据点的平均值作为新的质心。
  4. 迭代:重复分配和更新步骤,直到满足某种终止条件(如簇质心不再发生显著变化或达到预设的迭代次数)。需要设置最大运行次数和最小调整幅度阈值。

优点

  • 算法简单,易于实现。
  • 计算效率高,适合处理大规模数据集。
  • 可以识别出任意形状的聚类,只要聚类是凸形的。

缺点

  • 初始聚类中心的选择敏感,不同的初始值可能导致不同的聚类结果。
  • 需要预先指定聚类数目K,但K值往往难以确定。
  • 噪声和异常值敏感,可能影响聚类结果。
  • 只适合发现具有相似方差的聚类,且聚类是凸形的

为了改善K-means算法对初始聚类中心选择的敏感性,K-means++算法被提出。K-means++的主要改进在于初始聚类中心的选取方式:

  1. 从数据集中随机选择一个点作为第一个聚类中心。
  2. 对于数据集中的每个点,计算其到已选择的聚类中心的距离。
  3. 选择下一个聚类中心,其被选中的概率与到已选择聚类中心的距离的平方成正比。
  4. 重复步骤2和3,直到选择了K个聚类中心。

K-means算法的变种和改进:

  • K-means||:一种快速的K-means算法,用于大规模数据集。
  • 模糊C均值(FCM):允许数据点属于多个聚类,具有一定程度的隶属度。
  • 基于密度的K-means:结合了密度信息,更适合处理非球形聚类。

学习向量量化(LVQ)

数据带有标签,学习过程利用监督信心辅助聚类。

假设给定样本集,共m个,每个样本是由n个属性描述的特征向量。LVQ的学习目标,学得一组n维原型向量,每个原型向量代表一个聚类簇。形成对样本空间的簇划分,称为Voronoi剖分。

LVQ的工作流程主要包括以下步骤:

  1. 初始化:随机选择若干个初始码本向量,每个向量对应一个类别标签。
  2. 训练:对于每一个输入样本,算法计算其与所有码本向量之间的距离,并将其归为最近的类别。然后根据LVQ更新规则,调整最近类别对应的码本向量的位置。
  3. 迭代优化:重复上述过程直至达到预设的停止条件,如达到最大迭代次数或误差率低于阈值。

LVQ算法的更新规则

  • 当输入样本与正类别原型的距离小于负类别原型时,正类别原型会向输入样本移动;
  • 反之,则远离输入样本。这一动态更新机制确保了码本向量能够逐步逼近训练集各类别的边界,实现更准确的分类决策边界学习。

优点

  • LVQ具有直观易理解的特点,它的解释性强,能直接生成可视化的分类边界。
  • 算法训练速度快,适用于实时或增量式学习场景。
  • 结构简单,不需要复杂的反向传播过程。

缺点

  • 初始码本向量的选择敏感,不同的初始化可能会导致不同的收敛结果。
  • 当类间边界复杂时,LVQ可能无法很好地捕捉特征空间的拓扑结构,特别是在高维数据集中表现一般。
  • 噪声和异常值较为敏感,可能导致过拟合或欠拟合。

高斯混合聚类:利用概率模型表达原型聚类

是一种基于概率的聚类算法,它假设数据是由多个高斯分布混合而成的。GMC使用期望最大化(Expectation-Maximization, EM)算法来估计数据的生成模型参数,包括各个高斯分布的均值、协方差和混合系数。这种算法特别适用于数据集中存在多个子群体且这些群体具有不同统计特性的情况。

算法原理

GMC的核心思想是将数据集表示为多个高斯分布的混合。每个高斯分布(也称为组件)都有其自己的均值、协方差和混合权重。算法的目标是找到一组参数,使得这些高斯分布的混合能够最好地拟合观测数据。GMC通过迭代的方式进行参数估计:

  1. E步(期望步骤):计算每个数据点属于每个高斯分布的后验概率。
  2. M步(最大化步骤)根据这些后验概率,更新每个高斯分布的参数,以最大化观测数据的似然。

优缺点

优点

  • 能够处理多维数据,并且可以很好地拟合数据的分布。
  • 可以处理混合分布数据,提供灵活的聚类形状。
  • 软聚类特性为数据点提供了属于每个聚类的概率,表达不确定性。

缺点

  • 计算复杂度高,尤其是在大数据集上。
  • 初始化敏感,不同的初始化可能导致不同的聚类结果。
  • 需要预先指定高斯分布的数量,这可能需要领域知识或通过交叉验证等方法确定。
  • 异常值敏感,且可能遇到协方差矩阵奇异的问题。

变体和优化

为了解决GMC的一些局限性,研究者们提出了多种变体和优化方法,例如:

  • 带有协方差约束的GMM:对协方差矩阵施加约束,如球形、对角或带对角线约束,以简化模型或避免过度拟合。
  • 变分贝叶斯GMM:通过引入先验分布和变分推断来自动确定聚类的数量,减少对初始化的依赖。

高斯混合聚类是一种强大的聚类工具,尤其适用于数据中存在多个潜在子群体的情况。通过为每个数据点提供属于每个聚类的概率信息,它提供了对数据的更丰富的解释。

密度聚类

假设聚类的结构能通过样本分布的紧密程度确定,从样本密度的角度考察样本之间的可连接性,基于可连接样本不断扩展聚类簇获得结果。是基于数据空间中密度分布的聚类方法,它特别适用于发现任意形状的聚类,并且能够处理噪声数据。密度聚类方法的主要优点是它们不依赖于距离度量,能够发现任意形状的聚类,并且对噪声数据具有较好的鲁棒性。然而,这些算法通常需要仔细选择参数,以确保聚类结果的有效性。此外,密度聚类算法在处理大规模数据集时可能会遇到性能瓶颈,因此常常需要采用索引结构或基于网格的方法来加速密度估计

DBSCAN是一种著名的密度聚类方法,基于一组邻域参数刻画样本分布近密程度。

  • DBSCAN算法的核心思想是利用密度的概念来识别聚类。它将具有足够密度的区域划分为聚类,并能够在具有噪声的空间数据库中发现任意形状的聚类。
  • 算法通过两个主要参数来工作:Eps(邻域的最大半径)和MinPts(在Eps邻域中的最少点数)。
  • DBSCAN将数据点分为三类:核心点、边界点和噪声点。核心点的邻域内点的数量满足最小密度要求,边界点位于核心点的邻域内但本身不是核心点,而噪声点则是不满足核心点或边界点条件的点。
  • DBSCAN的优点包括能够发现任意形状的聚类、对噪声不敏感,且不需要预先指定聚类数目。缺点是对参数EpsMinPts敏感,且在高维数据中表现可能不佳

OPTICS (Ordering Points To Identify the Clustering Structure)

  • OPTICS算法是DBSCAN的一种扩展,它通过排序点来识别聚类结构,允许发现不同密度的聚类。
  • 该算法引入了核心距离和可达距离的概念,使得聚类过程对输入参数不那么敏感

DENCLUE (Density-based Clustering with Noise and Cluster Estimation)

  • DENCLUE算法基于密度分布函数进行聚类,其主要思想是通过估计数据点的密度分布来识别聚类结构。
  • 该算法通过选择一个合适的密度阈值来确定聚类的核心点,并将其他点根据其与核心点的密度关系归入相应的聚类

层次聚类

试图从不同层次对数据进行划分,形成树形聚类结构,采用策略:自底向上、自顶向下。

自底向上的聚合(Agglomerative Clustering):AGNES算法

  1. 初始化:每个数据点被视为一个单独的聚类。
  2. 合并:在每一步中,算法会找到最近的两个聚类并将它们合并成一个更大的聚类。
  3. 重复:重复合并步骤,直到所有的数据点都合并成一个聚类,或者达到某个停止条件。
  4. 树状图:这个过程可以用树状图(Dendrogram)来表示,树状图展示了聚类合并的顺序和距离。

自顶向下的分裂(Divisive Clustering)

  1. 初始化:所有数据点开始时都在一个聚类中。
  2. 分裂:在每一步中,算法会选择一个聚类并将其分裂成两个或更多的子聚类。
  3. 重复:重复分裂步骤,直到每个聚类只包含一个数据点,或者达到某个停止条件。
  4. 树状图:这个过程同样可以用树状图来表示,但与聚合方法相反,树状图从顶部开始,向下展示分裂的过程。

距离度量

在层次聚类中,选择适当的距离度量非常重要,常用的距离度量包括:

  • 欧氏距离(Euclidean Distance):最常见的距离度量,适用于大多数情况。
  • 曼哈顿距离(Manhattan Distance):在城市街区模型中使用,计算两点在标准坐标系上的绝对轴距总和。
  • 余弦相似度(Cosine Similarity):常用于文本数据,衡量两个向量之间的夹角。

链接方法

在层次聚类中,合并聚类时使用的链接方法也很重要,常见的链接方法包括:

  • 最近邻链接(Single Linkage):基于两个聚类中最近的两个点的距离。
  • 完全链接(Complete Linkage):基于两个聚类中最远的两个点的距离。
  • 平均链接(Average Linkage):基于两个聚类中所有点对的平均距离。
  • Ward方法:最小化聚类内差异的平方和。

层次聚类的结果可以通过剪切树状图来确定聚类的数量,这通常需要一些主观判断。层次聚类是一种非常灵活的聚类方法,适用于各种不同的数据类型和规模。

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

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

相关文章

win10下用vscode和pycharm运行odoo18的速度对比

我很少用win平台开发odoo,主要原因就是速度太慢,效率太低,这次odoo18发布,我做odoo18的基础培训教程的时候,发现odoo运行速度相比以前有大大改观,虽然还是不如ubuntu,但是确实提高很多了环境&am…

如何搭建一部引人入胜的短剧小程序

在移动互联网时代,短剧小程序以其轻便、快捷的特点迅速成为人们消遣娱乐的新宠。无论是在通勤途中、休息时间还是等待间隙,用户都能通过手机轻松观看精彩短剧,享受碎片化时间的娱乐盛宴。如果你是一位对内容创作充满热情的创作者,…

网络安全领域推荐证书介绍及备考指南

在网络安全领域,拥有专业认证不仅可以证明个人的专业能力,还能帮助在实际工作中应用先进的技术和知识。以下是几种热门的网络安全证书介绍及备考指南。 1. OSCP (Offensive Security Certified Professional) 证书简介 OSCP是针对渗透测试领域的入门级…

GRU神经网络理解

全文参考以下B站视频及《神经网络与深度学习》邱锡鹏,侧重对GPU模型的理解,初学者入门自用记录,有问题请指正【重温经典】GRU循环神经网络 —— LSTM的轻量级版本,大白话讲解_哔哩哔哩_bilibili 更新门、重置门、学习与输出 注&a…

Django 项目的创建

1.安装Django pip install django 2.创建项目 在想要创建的项目我文件位置同时按住Shift右键打开Powershell窗口。 输入命令 django-admin startproject myproject 这里 myproject 是你的项目名称,你可以根据需要替换为其他名称。。 3. 理解项目结构 创建项目…

Netty简单应用

1.服务端构建 接收客户端请求,打印请求消息;消息采用内置String作为编码与解码器;开启信息输入监听线程,发送消息至客户端; 1.1 服务端消息处理类 import io.netty.channel.Channel; import io.netty.channel.Chann…

一款好用的搜索软件——everthing(搜索比文件资源管理器快)

everthing官网链接 在官网选择下载 1.下载后双击打开 2.点击OK(需要其他语言自己选择) 3.选择安装位置(路径最好别带中文和空格) 继续点击下一步 4. 点击下一步 5.继续点击安装 6.然后就完成了 7.点击打开然后就可以搜索了

零代码快速开发智能体 |甘肃旅游通

在互联网信息爆炸的时代,寻找一处让人心动的旅游胜地往往需要花费大量的时间和精力。而今天,我要向大家介绍一款能够帮助你轻松规划甘肃之行的智能体——“甘肃旅游通”。这款智能体通过低代码开发,集合了丰富的旅游信息和个性化推荐功能&…

Viky图片压缩 v3.1 超简单,一键压缩,高压缩率,肉眼无损

下载:https://pan.quark.cn/s/166406040a7b 软件介绍: 使用方法 拖入即压缩 功能 智能压缩,高压缩率,肉眼无损 支持WebP、JPG、JPEG、PNG格式 多线程处理,提升批量压缩速度 带进度显示,以及压缩前后对比 …

QT枚举类型转字符串和使用QDebug<<重载输出私有枚举类型

一 将QT自带的枚举类型转换为QString 需要的头文件&#xff1a; #include <QMetaObject> #include <QMetaEnum> 测试代码 const QMetaObject *metaObject &QImage::staticMetaObject;QMetaEnum metaEnum metaObject->enumerator(metaObject->indexOf…

pikachu靶场CSRF-post测试报告

目录 一、测试环境 1、系统环境 2、使用工具/软件 二、测试目的 三、操作过程 1、抓包使用burp生成csrf脚本 四、源代码分析 五、结论 一、测试环境 1、系统环境 渗透机&#xff1a;本机(127.0.0.1) 靶 机&#xff1a;本机(127.0.0.1) 2、使用工具/软件 Burp sui…

基于Session的认证方式

基于Session的认证方式 认证流程创建工程创建maven工程Spring 容器配置servletContext配置加载 Spring容器 实现认证功能认证页面认证接口 实现会话功能实现授权功能小结 认证流程 基于Session认证方式的流程是&#xff0c;用户认证成功后&#xff0c;在服务端生成用户相关的数…

详解Oracle审计(一)

题记&#xff1a; 有段时间没写过oracle了&#xff0c;今天回归。 本文将详细介绍oracle的审计功能&#xff0c;基于11g版本&#xff0c;但对12c&#xff0c;19c也同样适用。 审计&#xff08;Audit&#xff09;用于监视用户所执行的数据库操作&#xff0c;并且 Oracle 会将审…

Hallo2 长视频和高分辨率的音频驱动的肖像图像动画 (数字人技术)

HALLO2: LONG-DURATION AND HIGH-RESOLUTION AUDIO-DRIVEN PORTRAIT IMAGE ANIMATION 论文&#xff1a;https://arxiv.org/abs/2410.07718 代码&#xff1a;https://github.com/fudan-generative-vision/hallo2 模型&#xff1a;https://huggingface.co/fudan-generative-ai/h…

TCP(三次握手)和UDP(面向无连接)的原理以及区别

TCP(三次握手)和UDP&#xff08;面向无连接&#xff09;的原理以及区别 网络协议是每个前端工程师都必须要掌握的知识&#xff0c;TCP/IP 中有两个具有代表性的传输层协议。 概述 &#x1f4e1;TCP&#xff08;Transmission Control Protocol&#xff09;是一种网络协议&#…

YOLO V3 网络构架解析

YOLO V3&#xff08;You Only Look Once version 3&#xff09;是由Joseph Redmon等人于2018年提出的一种基于深度学习的目标检测算法。它在速度和精度上相较于之前的版本有了显著提升&#xff0c;成为计算机视觉领域的一个重要里程碑。本文将详细解析YOLO V3的网络架构&#x…

【Origin科技绘图】最新Origin2024中文版软件安装教程

Origin是由OriginLab公司开发的一个科学绘图、数据分析软件,支持在MicrosoftWindows下运行。Origin支持各种各样的2D/3D图形。Origin中的数据分析功能包括统计,信号处理,曲线拟合以及峰值分析。Origin中的曲线拟合是采用基Levernberg-Marquardt算法(LMA)的非线性最小二乘法拟合…

网站漏扫:守护网络安全的关键防线

网站漏洞扫描&#xff0c;简称漏扫&#xff0c;是一种针对网站进行漏洞检测的安全服务。网站漏洞扫描在网络安全中占据着至关重要的地位。 网站漏扫在及时发现和修复漏洞方面发挥着关键作用 通过对网站和系统的全面扫描&#xff0c;能够快速识别出各种潜在的漏洞&#xff0c;…

VMware ESXi 8.0U3 Huawei (华为) 定制版更新 OEM BIOS 2.7 支持 Windows Server 2025

VMware ESXi 8.0U3 Huawei (华为) 定制版更新 OEM BIOS 2.7 支持 Windows Server 2025 VMware ESXi 8.0U3 macOS Unlocker & OEM BIOS Huawei (华为) 定制版 ESXi 8.0U3 标准版&#xff0c;Dell (戴尔)、HPE (慧与)、Lenovo (联想)、Inspur (浪潮)、Cisco (思科)、Hitach…

[实时计算flink]数据摄入YAML作业快速入门

实时计算Flink版基于Flink CDC&#xff0c;通过开发YAML作业的方式有效地实现了将数据从源端同步到目标端的数据摄入工作。本文介绍如何快速构建一个YAML作业将MySQL库中的所有数据同步到StarRocks中。 前提条件 已创建Flink工作空间&#xff0c;详情请参见开通实时计算Flink版…