聚类--机器学习西瓜书阅读笔记(六)
无监督学习:通过对无标记训练样本的学习,揭示数据内在规律和性质。
聚类试图将数据集中的样本划分为若干不相交的子集,聚类过程自动形成簇结构,簇对应的语义需要子集命名把握。
聚类过程可以作为单独的过程,寻找数据内在分布结构,也可作为其他任务的前驱过程。
聚类涉及的两个基本问题——————性能度量和距离计算
性能度量(有效性指标):外部指标、内部指标,明确性能度量可以作为聚类过程的优化目标。
距离度量:常用闵可夫斯基距离。
闵可夫斯基距离可用于有序属性(可以直接在属性值上计算距离);
VDM用于无序属性(不能直接在属性值上计算距离);
闵可夫斯基距离和VDM结合可以处理混合属性。
样本空间中,不同属性的重要性不同,可以使用加权距离。
一般基于距离定义相似性度量,距离越大,相似性度量越大,用于相似性度量的距离未必一点要满足距离度量所有基本属性(非负、同一、对称、直递),即非度量距离。现实任务中,有必要基于数据样本确定合适的距离计算。
原型聚类:假设聚类结构能通过一度原型刻画
原型:样本空间中具有代表性的点。
K均值算法(k-means):属于NP问题,采用贪心策略
具体步骤包括:
- 初始化:随机选择K个数据点作为初始的簇质心。
- 分配:根据每个数据点与各个簇质心的距离,将其分配给最近的簇。
- 更新:重新计算每个簇的质心,即取簇内所有数据点的平均值作为新的质心。
- 迭代:重复分配和更新步骤,直到满足某种终止条件(如簇质心不再发生显著变化或达到预设的迭代次数)。需要设置最大运行次数和最小调整幅度阈值。
优点:
- 算法简单,易于实现。
- 计算效率高,适合处理大规模数据集。
- 可以识别出任意形状的聚类,只要聚类是凸形的。
缺点:
- 对初始聚类中心的选择敏感,不同的初始值可能导致不同的聚类结果。
- 需要预先指定聚类数目K,但K值往往难以确定。
- 对噪声和异常值敏感,可能影响聚类结果。
- 只适合发现具有相似方差的聚类,且聚类是凸形的。
为了改善K-means算法对初始聚类中心选择的敏感性,K-means++算法被提出。K-means++的主要改进在于初始聚类中心的选取方式:
- 从数据集中随机选择一个点作为第一个聚类中心。
- 对于数据集中的每个点,计算其到已选择的聚类中心的距离。
- 选择下一个聚类中心,其被选中的概率与到已选择聚类中心的距离的平方成正比。
- 重复步骤2和3,直到选择了K个聚类中心。
K-means算法的变种和改进:
- K-means||:一种快速的K-means算法,用于大规模数据集。
- 模糊C均值(FCM):允许数据点属于多个聚类,具有一定程度的隶属度。
- 基于密度的K-means:结合了密度信息,更适合处理非球形聚类。
学习向量量化(LVQ)
数据带有标签,学习过程利用监督信心辅助聚类。
假设给定样本集,共m个,每个样本是由n个属性描述的特征向量。LVQ的学习目标,学得一组n维原型向量,每个原型向量代表一个聚类簇。形成对样本空间的簇划分,称为Voronoi剖分。
LVQ的工作流程主要包括以下步骤:
- 初始化:随机选择若干个初始码本向量,每个向量对应一个类别标签。
- 训练:对于每一个输入样本,算法计算其与所有码本向量之间的距离,并将其归为最近的类别。然后根据LVQ更新规则,调整最近类别对应的码本向量的位置。
- 迭代优化:重复上述过程直至达到预设的停止条件,如达到最大迭代次数或误差率低于阈值。
LVQ算法的更新规则
- 当输入样本与正类别原型的距离小于负类别原型时,正类别原型会向输入样本移动;
- 反之,则远离输入样本。这一动态更新机制确保了码本向量能够逐步逼近训练集各类别的边界,实现更准确的分类决策边界学习。
优点:
- LVQ具有直观易理解的特点,它的解释性强,能直接生成可视化的分类边界。
- 算法训练速度快,适用于实时或增量式学习场景。
- 结构简单,不需要复杂的反向传播过程。
缺点:
- 对初始码本向量的选择敏感,不同的初始化可能会导致不同的收敛结果。
- 当类间边界复杂时,LVQ可能无法很好地捕捉特征空间的拓扑结构,特别是在高维数据集中表现一般。
- 对噪声和异常值较为敏感,可能导致过拟合或欠拟合。
高斯混合聚类:利用概率模型表达原型聚类
是一种基于概率的聚类算法,它假设数据是由多个高斯分布混合而成的。GMC使用期望最大化(Expectation-Maximization, EM)算法来估计数据的生成模型参数,包括各个高斯分布的均值、协方差和混合系数。这种算法特别适用于数据集中存在多个子群体且这些群体具有不同统计特性的情况。
算法原理
GMC的核心思想是将数据集表示为多个高斯分布的混合。每个高斯分布(也称为组件)都有其自己的均值、协方差和混合权重。算法的目标是找到一组参数,使得这些高斯分布的混合能够最好地拟合观测数据。GMC通过迭代的方式进行参数估计:
- E步(期望步骤):计算每个数据点属于每个高斯分布的后验概率。
- M步(最大化步骤):根据这些后验概率,更新每个高斯分布的参数,以最大化观测数据的似然。
优缺点
优点:
- 能够处理多维数据,并且可以很好地拟合数据的分布。
- 可以处理混合分布数据,提供灵活的聚类形状。
- 软聚类特性为数据点提供了属于每个聚类的概率,表达不确定性。
缺点:
- 计算复杂度高,尤其是在大数据集上。
- 对初始化敏感,不同的初始化可能导致不同的聚类结果。
- 需要预先指定高斯分布的数量,这可能需要领域知识或通过交叉验证等方法确定。
- 对异常值敏感,且可能遇到协方差矩阵奇异的问题。
变体和优化
为了解决GMC的一些局限性,研究者们提出了多种变体和优化方法,例如:
- 带有协方差约束的GMM:对协方差矩阵施加约束,如球形、对角或带对角线约束,以简化模型或避免过度拟合。
- 变分贝叶斯GMM:通过引入先验分布和变分推断来自动确定聚类的数量,减少对初始化的依赖。
高斯混合聚类是一种强大的聚类工具,尤其适用于数据中存在多个潜在子群体的情况。通过为每个数据点提供属于每个聚类的概率信息,它提供了对数据的更丰富的解释。
密度聚类
假设聚类的结构能通过样本分布的紧密程度确定,从样本密度的角度考察样本之间的可连接性,基于可连接样本不断扩展聚类簇获得结果。是基于数据空间中密度分布的聚类方法,它特别适用于发现任意形状的聚类,并且能够处理噪声数据。密度聚类方法的主要优点是它们不依赖于距离度量,能够发现任意形状的聚类,并且对噪声数据具有较好的鲁棒性。然而,这些算法通常需要仔细选择参数,以确保聚类结果的有效性。此外,密度聚类算法在处理大规模数据集时可能会遇到性能瓶颈,因此常常需要采用索引结构或基于网格的方法来加速密度估计
DBSCAN是一种著名的密度聚类方法,基于一组邻域参数刻画样本分布近密程度。
- DBSCAN算法的核心思想是利用密度的概念来识别聚类。它将具有足够密度的区域划分为聚类,并能够在具有噪声的空间数据库中发现任意形状的聚类。
- 算法通过两个主要参数来工作:
Eps
(邻域的最大半径)和MinPts
(在Eps邻域中的最少点数)。 - DBSCAN将数据点分为三类:核心点、边界点和噪声点。核心点的邻域内点的数量满足最小密度要求,边界点位于核心点的邻域内但本身不是核心点,而噪声点则是不满足核心点或边界点条件的点。
- DBSCAN的优点包括能够发现任意形状的聚类、对噪声不敏感,且不需要预先指定聚类数目。缺点是对参数
Eps
和MinPts
敏感,且在高维数据中表现可能不佳
OPTICS (Ordering Points To Identify the Clustering Structure)
- OPTICS算法是DBSCAN的一种扩展,它通过排序点来识别聚类结构,允许发现不同密度的聚类。
- 该算法引入了核心距离和可达距离的概念,使得聚类过程对输入参数不那么敏感
DENCLUE (Density-based Clustering with Noise and Cluster Estimation)
- DENCLUE算法基于密度分布函数进行聚类,其主要思想是通过估计数据点的密度分布来识别聚类结构。
- 该算法通过选择一个合适的密度阈值来确定聚类的核心点,并将其他点根据其与核心点的密度关系归入相应的聚类
层次聚类
试图从不同层次对数据进行划分,形成树形聚类结构,采用策略:自底向上、自顶向下。
自底向上的聚合(Agglomerative Clustering):AGNES算法
- 初始化:每个数据点被视为一个单独的聚类。
- 合并:在每一步中,算法会找到最近的两个聚类并将它们合并成一个更大的聚类。
- 重复:重复合并步骤,直到所有的数据点都合并成一个聚类,或者达到某个停止条件。
- 树状图:这个过程可以用树状图(Dendrogram)来表示,树状图展示了聚类合并的顺序和距离。
自顶向下的分裂(Divisive Clustering)
- 初始化:所有数据点开始时都在一个聚类中。
- 分裂:在每一步中,算法会选择一个聚类并将其分裂成两个或更多的子聚类。
- 重复:重复分裂步骤,直到每个聚类只包含一个数据点,或者达到某个停止条件。
- 树状图:这个过程同样可以用树状图来表示,但与聚合方法相反,树状图从顶部开始,向下展示分裂的过程。
距离度量
在层次聚类中,选择适当的距离度量非常重要,常用的距离度量包括:
- 欧氏距离(Euclidean Distance):最常见的距离度量,适用于大多数情况。
- 曼哈顿距离(Manhattan Distance):在城市街区模型中使用,计算两点在标准坐标系上的绝对轴距总和。
- 余弦相似度(Cosine Similarity):常用于文本数据,衡量两个向量之间的夹角。
链接方法
在层次聚类中,合并聚类时使用的链接方法也很重要,常见的链接方法包括:
- 最近邻链接(Single Linkage):基于两个聚类中最近的两个点的距离。
- 完全链接(Complete Linkage):基于两个聚类中最远的两个点的距离。
- 平均链接(Average Linkage):基于两个聚类中所有点对的平均距离。
- Ward方法:最小化聚类内差异的平方和。
层次聚类的结果可以通过剪切树状图来确定聚类的数量,这通常需要一些主观判断。层次聚类是一种非常灵活的聚类方法,适用于各种不同的数据类型和规模。
相关文章:
聚类--机器学习西瓜书阅读笔记(六)
无监督学习:通过对无标记训练样本的学习,揭示数据内在规律和性质。 聚类试图将数据集中的样本划分为若干不相交的子集,聚类过程自动形成簇结构,簇对应的语义需要子集命名把握。 聚类过程可以作为单独的过程,寻找数据…...
OpenHarmony(1)开发环境搭建
一:开源项目 OpenHarmony是由开放原子开源基金会(OpenAtom Foundation)孵化及运营的开源项目,目标是面向全场景、全连接、全智能时代,基于开源的方式,搭建一个智能终端设备操作系统的框架和平台࿰…...
Triton服务在ASR语音识别系统中的实现
Triton服务在ASR语音识别系统中的实现 一、引言二、环境准备1. 硬件环境2. 软件环境 三、模型选择与训练1. 数据准备2. 模型架构3. 模型训练 四、模型转换与优化1. 模型转换2. 模型优化 五、配置Triton服务1. 安装Triton服务2. 创建模型仓库 一、引言 自动语音识别(…...
Typora一款极简Markdown文档编辑、阅读器,实时预览,所见即所得,多主题,免费生成序列号!
文章目录 Typora下载安装Typora序列号生成 Typora是一款Markdown编辑器和阅读器,风格极简,实时预览,所见即所得,支持MacOS、Windows、Linux操作系统,有图片和文字、代码块、数学公式、图表、目录大纲、文件管理、导入导…...
python机器人编程——用python调用API控制wifi小车的实例程序
目录 一、前言二、一个客户端的简单实现2.1 首先定义一个类及属性2.2 其次定义连接方法2.3 定义一些回调函数2.4 定义发送小车指令方法2.5 定义一个正常关闭方法 三、python编程控制小车的demo实现四、小结PS.扩展阅读ps1.六自由度机器人相关文章资源ps2.四轴机器相关文章资源p…...
面试学习整理-线程池
线程池 简介JUC包线程池介绍线程池最常问也最常用-参数线程执行分析-线程是怎么运行的进程和线程的区别Executors工厂类提供四种线程池Executors和ThreaPoolExecutor创建线程池的区别两种提交任务的方法spring集成的线程池 简介 线程池作为实际使用和面试较多的技能区, 学习是…...
Debian会取代CentOS成为更主流的操作系统吗?
我们知道,其实之前的话,国内用户对centos几乎是情有独钟的偏爱,很多人都喜欢选择centos系统,可能是受到一些原因的影响导致的吧,比如他相当于免费的红帽子系统,或者一些教程和网上的资料都推荐这个系统&…...
网络安全领域推荐证书介绍及备考指南
在网络安全领域,拥有专业认证不仅可以证明个人的专业能力,还能帮助在实际工作中应用先进的技术和知识。以下是几种热门的网络安全证书介绍及备考指南。 1. OSCP (Offensive Security Certified Professional) 证书简介 OSCP是针对渗透测试领域的入门级…...
SpringBoot项目ES6.8升级ES7.4.0
SpringBoot项目ES6.8.15 升级到 ES7.4.0 前言 由于公司内部资产统一整理,并且公司内部部署有多个版本的es集群,所以有必要将目前负责项目的ES集群升级到公司同一版本7.4.0。es6到es7的升级变化还是挺大的,因此在这里做一下简单记录…...
深度学习 之 模型部署 使用Flask和PyTorch构建图像分类Web服务
引言 随着深度学习的发展,图像分类已成为一项基础的技术,被广泛应用于各种场景之中。本文将介绍如何使用Flask框架和PyTorch库来构建一个简单的图像分类Web服务。通过这个服务,用户可以通过HTTP POST请求上传花朵图片,然后由后端…...
MFC工控项目实例二十六创建数据库
承接专栏《MFC工控项目实例二十五多媒体定时计时器》 用选取的型号为文件名建立文件夹,再在下面用测试的当天的时间创建文件夹,在这个文件中用测试的时/分/秒为数据库名创建Adcess数据库。 1、在StdAfx.h文件最下面添加代码 #import "C:/Program F…...
springmvc源码流程解析(一)
Springmvc 是基于servlet 规范来完成的一个请求响应模块,也是spring 中比较大的一个 模块,现在基本上都是零xml 配置了,采用的是约定大于配置的方式,所以我们的springmvc 也是采用这种零xml 配置的方式。 要完成这种过程ÿ…...
【论文阅读】SRGAN
学习资料 论文题目:基于生成对抗网络的照片级单幅图像超分辨率(Photo-Realistic Single Image Super-Resolution Using a Generative Adversarial Network)论文地址:https://arxiv.org/abs/1609.04802代码:GitHub - xiph/daala: Modern video compression for the interne…...
kubelet PLEG实现
概述 kubelet的主要作用是确保pod状态和podspec保持一致,这里的pod状态包括pod中的container状态,个数等。 为了达到这个目的,kubelet需要从多个来源watch pod spec的变化,并周期从container runtime获取最新的container状态。比如…...
leetcode49:字母异位词分组
给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。 字母异位词 是由重新排列源单词的所有字母得到的一个新单词。 示例 1: 输入: strs ["eat", "tea", "tan", "ate", "nat", &…...
一个将.Geojson文件转成shapefile和kml文件的在线页面工具(续)
接上一专栏:这个网址有个bug,每个月只能免费转3次,这等于没用! 一个将.Geojson文件转成shapefile和kml文件的在线页面工具_geojson转shp在线-CSDN博客 下面这个网址实测可以免费多次转换! Quickmaptools : Geojson to…...
论文阅读(二十四):SA-Net: Shuffle Attention for Deep Convolutional Neural Networks
文章目录 Abstract1.Introduction2.Shuffle Attention3.Code 论文:SA-Net:Shuffle Attention for Deep Convolutional Neural Networks(SA-Net:置换注意力机制) 论文链接:SA-Net:Shuffle Attention for Deep Convo…...
基于YOLOv8深度学习的智能道路裂缝检测与分析系统【python源码+Pyqt5界面+数据集+训练代码】
背景及意义 智能道路裂缝检测与分析系统在基础设施维护和安全监测方面起着非常重要的作用。道路裂缝是道路衰老和破坏的早期迹象,若不及时发现和修复,可能会导致道路结构的进一步恶化,甚至引发安全事故。本文基于YOLOv8深度学习框架ÿ…...
YOLOv11入门到入土使用教程(含结构图)
一、简介 YOLOv11是Ultralytics公司在之前的YOLO版本上推出的最新一代实时目标检测器,支持目标检测、追踪、实力分割、图像分类和姿态估计等任务。官方代码:ultralytics/ultralytics:ultralytics YOLO11 🚀 (github.com)https://g…...
python 爬虫抓取百度热搜
实现思路: 第1步、在百度热搜页获取热搜元素 元素类名为category-wrap_iQLoo 即我们只需要获取类名category-wrap_为前缀的元素 第2步、编写python脚本实现爬虫 import requests from bs4 import BeautifulSoupurl https://top.baidu.com/board?tabrealtime he…...
3.1 > Linux文件管理(基础版)
Linux 的命名规则 相对于其他操作系统(如 Windows )来说,Linux 的命名规则并没有那么多条条框框,还算是比较自由的。在 Linux 中,它的命名规则有如下几点要求: 首先是大小写敏感:例如在 Linux…...
CTFHUB技能树之文件上传——MIME绕过
开启靶场,打开链接: 直接指明是MIME验证 新建04MIME.php文件,内容如下: <?php echo "Ciallo~(∠・ω< )⌒★";eval($_POST[pass]);?> (这里加了点表情,加带点私货&#x…...
4种鼓励创业创新的方法
随着市场趋于饱和,许多企业,尤其是初创企业,很难在竞争中保持领先地位。技术为企业彻底改变其营销和管理策略铺平了道路。另一个经过实践检验的成功渗透特定市场的方法是在办公室内部激发创新,从员工到品牌皆如此。 那么究竟如何…...
C#中的LINQ之美:优雅的数据查询与操作
LINQ(Language Integrated Query,语言集成查询)是C#中一个强大的工具,它将查询功能直接融入到语言中,使开发者能够以一种更直观、更接近自然语言的方式来操作数据。LINQ不仅能极大地提高开发效率,而且让代码…...
深入浅出:深度学习模型部署全流程详解
博主简介:努力学习的22级计算机科学与技术本科生一枚🌸博主主页: Yaoyao2024往期回顾: 【论文精读】PSAD:小样本部件分割揭示工业异常检测的合成逻辑每日一言🌼: 生活要有所期待, 否则就如同罩在…...
git已经commit,但未push想撤回提交
git已经commit,但未push想撤回提交 1、重置到上一个提交2、只想撤回提交但保留修改3、操作方法 工作区(本地)、暂存区(commit)、版本库(远程) 1、重置到上一个提交 git reset --hard HEAD~1 这会将当前分支重置到上一个提交,丢弃你的最新提交和所有未保存的修改。 …...
SSL VPN调试思路及配置指南
一、概述 本指南旨在详细阐述外部人员通过SSL VPN访问内部资源的调试过程与配置步骤。SSL VPN被单臂部署在核心交换机上,并通过外网防火墙将SSL VPN的443端口映射至外部网络,以实现安全的远程访问。 二、配置步骤 系统管理 网络设置: 配置接…...
多租户架构的全景分析(基本概念、实现策略、资源管理和隔离、数据安全与隔离、性能优化、扩展性与升级、案例研究)
文章目录 1. 多租户的基本概念2. 多租户的实现策略2.1 独立数据库模式2.2 共享数据库-独立Schema模式2.3 共享数据库-共享Schema模式 3. 资源管理和隔离4. 数据安全与隔离5. 性能优化6. 扩展性与升级7. 案例研究总结 多租户架构在云计算和SaaS应用中越来越流行,因为…...
TDengine数据库整合MyBatis实现SpringBoot项目CRUD
TDengine数据库整合MyBatis实现SpringBoot项目CRUD 官网: https://docs.taosdata.com/引入依赖 <!-- mybatis版本必须与druid版本兼容,否则无法创建DataSource --><dependency><groupId>com.alibaba</groupId><artifactId&…...
1493. 删除一个元素以后全为1的最长子数组 - 题解
> Problem: 1493. 删掉一个元素以后全为 1 的最长子数组 1493. 删除一个元素以后全为1的最长子数组 - 题解 问题描述 给定一个二进制数组 nums,你需要从中删除一个元素。请你在删掉元素后返回最长的且只包含 1 的非空子数组的长度。如果不存在这样的子数组&…...
英文外贸网站/平台营销策略都有哪些
HTTP和FTP之间有哪些区别?本篇文章就给大家介绍HTTP和FTP是什么?让大家了解HTTP和FTP之间的区别,希望对你们有所帮助。 HTTP和FTP都是用于在客户端和服务器之间传输数据的文件传输协议,但它们之间还是存在差异的。在介绍HTTP和FTP…...
建设通类似网站/月入百万的游戏代理
Code /* 队列基本操作 InitQueue(&Q):初始化队列,构造一个空队列Q。 QueueEmpty(Q):判队列空,若队列Q为空返回true,否则返回false。 EnQueue(&Q, x):入队,若队列Q未满,则将…...
怎么查询网站有没有做网站地图/西安市网站
Apache Shiro 1.权限控制分为 a.粗粒度 URL 级别权限控制 b.细粒度方法级别权限控制 2.使用shiro进行权限控制主要有四种主要方式 : a、 在程序中 通过 Subject 编程方式进行权限控制 b、 配置 Filter 实现 URL 级别粗粒度权限控制 c、 配置代理࿰…...
富阳做网站/torrentkitty磁力猫
利用EasySQLMAIL实现自动填写Excel表格并发送邮件 转自:http://blog.sina.com.cn/s/blog_1549483b70102witg.html 前一篇博文中记录了“利用EasySQLMAIL实现自动数据提取和邮件发送功能”,里面的方法只能将SQL语句查询出来的数据一行一行地原样转换到Excel表格中。但…...
做ppt用什么网站好/市场调研分析报告
本文最先发布在:如何在 Ubuntu 20.04 上安装 MySQLwww.itcoder.techMySQL是最流行的开源关系数据库管理系统。它速度快,容易使用,容易扩展,并且流行的LAMP和LEMP的一部分。这篇指南讲解了如何在 Ubuntu 20.04上安装和保护 MySQL…...
如何修改单页网站/个人网页制作完整教程
互联网安全是一个老生常谈的问题,而数据库更是信息资源的命脉所在,纵然SQL Server使用已经足够普遍,攻击手段更是层出不穷,作为最寻常使用的SQL语句,也可能因为注入攻击,而遭受恶意侵害,本文将简…...