当前位置: 首页 > article >正文

聚类算法详解

聚类算法作为无监督学习的核心分支就像一位“智能分类师”能在没有标签的数据集里自动把相似的对象归为一类把不同的对象分开。它广泛应用于客户分群、图像分割、异常检测等场景接下来我们用通俗易懂的方式拆解常见聚类算法的原理、例子和代码实现。一、K-Means聚类最经典的“中心靠拢”算法原理K-Means是最常用的聚类算法之一核心思想很简单先指定要划分的类别数K随机选取K个点作为初始聚类中心然后反复做两件事一是把每个样本分配到距离最近的中心所在的类别二是根据每个类的样本重新计算新的聚类中心。直到聚类中心不再变化或者变化很小就完成了聚类。可以类比成老师要把学生分成K组先随便选K个学生当组长然后让其他学生选离自己“最合得来”的组长组队组队后每组重新选一个“最能代表大家”的新组长再重复这个过程直到每组的组长不再更换分组就稳定了。例子比如电商平台要对用户分群选取“月消费额”和“月购买次数”两个特征假设指定K3K-Means就能自动把用户分成“高消费高频次”“低消费低频次”“中等消费中等频次”三类方便平台针对不同群体做精准营销。代码实现Python我们用sklearn库实现K-Means以经典的鸢尾花数据集为例虽然鸢尾花有标签但可以当作无监督数据来聚类fromsklearn.clusterimportKMeansfromsklearn.datasetsimportload_irisimportmatplotlib.pyplotasplt# 加载数据取前两个特征方便可视化irisload_iris()Xiris.data[:,:2]# 构建K-Means模型指定聚类数为3kmeansKMeans(n_clusters3,random_state42)y_predkmeans.fit_predict(X)# 可视化聚类结果plt.scatter(X[:,0],X[:,1],cy_pred,cmapviridis)plt.scatter(kmeans.cluster_centers_[:,0],kmeans.cluster_centers_[:,1],s200,cred,markerX,label聚类中心)plt.xlabel(花萼长度)plt.ylabel(花萼宽度)plt.legend()plt.title(K-Means聚类结果)plt.show()二、层次聚类“树状图”式的逐步聚合/分裂原理层次聚类就像搭建一棵“分类树”分为两种方式凝聚式自下而上一开始每个样本都是一个单独的类然后不断把最相似的两个类合并直到所有样本聚成一个类或者达到指定的类别数。分裂式自上而下一开始所有样本是一个大类然后不断把最不相似的类拆分直到每个样本都是单独的类或者达到指定类别数。可以类比成一堆散落在地上的积木凝聚式就是先把相似的积木两两拼在一起再把拼好的小模块继续合并最后拼成一个大整体分裂式则是先把所有积木看成一个大整体然后慢慢拆成小模块直到每个积木单独分开。例子在生物分类中层次聚类可以用来构建物种的进化树从单个物种开始把亲缘关系近的物种逐步合并最终形成一棵展示物种进化关系的树状图。代码实现Python用scipy和sklearn实现凝聚式层次聚类fromsklearn.clusterimportAgglomerativeClusteringfromsklearn.datasetsimportmake_blobsimportmatplotlib.pyplotaspltfromscipy.cluster.hierarchyimportdendrogram,linkage# 生成模拟数据X,_make_blobs(n_samples50,centers3,random_state42)# 构建层次聚类模型agg_clusteringAgglomerativeClustering(n_clusters3)y_predagg_clustering.fit_predict(X)# 绘制树状图基于linkage矩阵linkedlinkage(X,ward)# ward方法使合并后的类内方差最小plt.figure(figsize(10,5))dendrogram(linked,orientationtop,distance_sortdescending,show_leaf_countsTrue)plt.title(层次聚类树状图)plt.show()# 可视化聚类结果plt.scatter(X[:,0],X[:,1],cy_pred,cmapviridis)plt.xlabel(特征1)plt.ylabel(特征2)plt.title(凝聚式层次聚类结果)plt.show()三、DBSCAN基于“密度”的异常检测能手原理DBSCAN密度基于空间聚类的应用与噪声不依赖预先指定类别数它的核心是“密度”把样本分为三类——核心点周围一定范围内有足够多的样本、边界点靠近核心点但自身不是核心点、噪声点既不是核心点也不是边界点。聚类过程就是找到所有相互可达的核心点和边界点形成一个类噪声点则被单独区分出来。可以类比成在人群中核心点就是周围有很多朋友的人边界点是靠近这些“社交达人”但自己朋友不多的人噪声点是孤零零站在角落的人。DBSCAN会把相互认识的“社交达人”和他们身边的人归为一群角落的人就是异常。例子在信用卡欺诈检测中正常交易的样本会形成密集的簇而欺诈交易因为数量少、特征异常会被DBSCAN识别为噪声点从而快速定位异常交易。代码实现Python用sklearn实现DBSCANfromsklearn.clusterimportDBSCANfromsklearn.datasetsimportmake_moonsimportmatplotlib.pyplotasplt# 生成模拟的“月亮形”数据K-Means难以处理这种非凸数据X,_make_moons(n_samples200,noise0.05,random_state42)# 构建DBSCAN模型eps是邻域半径min_samples是邻域内最少样本数dbscanDBSCAN(eps0.3,min_samples5)y_preddbscan.fit_predict(X)# 可视化聚类结果-1表示噪声点plt.scatter(X[:,0],X[:,1],cy_pred,cmapviridis)plt.xlabel(特征1)plt.ylabel(特征2)plt.title(DBSCAN聚类结果-1为噪声点)plt.show()四、高斯混合模型GMM“概率化”的聚类算法原理GMM假设每个类别的样本都服从高斯分布正态分布整个数据集是多个高斯分布的混合。它的核心是通过EM算法期望最大化估计每个高斯分布的均值、方差以及每个样本属于各个高斯分布的概率最终根据概率最大的类别给样本归类。可以类比成有几台不同的机器在生产零件每台机器生产的零件尺寸服从不同的正态分布GMM就能通过零件尺寸数据反推出有几台机器以及每个零件更可能是哪台机器生产的。例子在图像分割中GMM可以根据像素的颜色、亮度等特征把图像分成不同的区域比如把背景和前景分开因为背景和前景的像素分布通常符合不同的高斯分布。代码实现Python用sklearn实现GMMfromsklearn.mixtureimportGaussianMixturefromsklearn.datasetsimportmake_blobsimportmatplotlib.pyplotasplt# 生成模拟数据X,_make_blobs(n_samples300,centers3,random_state42)# 构建GMM模型指定组件数为3gmmGaussianMixture(n_components3,random_state42)y_predgmm.fit_predict(X)# 可视化聚类结果plt.scatter(X[:,0],X[:,1],cy_pred,cmapviridis)plt.xlabel(特征1)plt.ylabel(特征2)plt.title(高斯混合模型聚类结果)plt.show()以上只是常见聚类算法的基础介绍实际应用中还有谱聚类、OPTICS等算法不同算法适合不同的数据场景比如K-Means适合凸形簇DBSCAN适合非凸簇和异常检测。个人能力有限文中介绍的算法原理和代码实现仅为基础入门内容若需深入理解算法的数学推导和复杂场景下的调优技巧还需参考专业书籍和学术资料进一步学习。

相关文章:

聚类算法详解

聚类算法作为无监督学习的核心分支,就像一位“智能分类师”,能在没有标签的数据集里,自动把相似的对象归为一类,把不同的对象分开。它广泛应用于客户分群、图像分割、异常检测等场景,接下来我们用通俗易懂的方式拆解常…...

Visual C++运行库全家桶:终极解决方案让你告别“DLL丢失“烦恼

Visual C运行库全家桶:终极解决方案让你告别"DLL丢失"烦恼 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经遇到过这样的情况&am…...

Windows 10/11系统自建修复命令

PS C:\Users> DISM /Online /Cleanup-Image /RestoreHealth PS C:\Users> sfc /scannow...

如何彻底卸载Windows 10中的OneDrive:终极解决方案指南

如何彻底卸载Windows 10中的OneDrive:终极解决方案指南 【免费下载链接】OneDrive-Uninstaller Batch script to completely uninstall OneDrive in Windows 10 项目地址: https://gitcode.com/gh_mirrors/on/OneDrive-Uninstaller 你是否曾经为Windows 10中…...

Remix Icon 终极指南:2500+免费矢量图标库的完整使用教程

Remix Icon 终极指南:2500免费矢量图标库的完整使用教程 【免费下载链接】RemixIcon Open source neutral style icon system 项目地址: https://gitcode.com/gh_mirrors/re/RemixIcon 还在为项目找不到合适的图标而烦恼吗?Remix Icon 开源图标库…...

保姆级图解:用Wireshark抓包分析PCI总线读写的完整时序(附信号解读)

保姆级图解:用Wireshark抓包分析PCI总线读写的完整时序(附信号解读) 在嵌入式开发和硬件调试领域,能够直观观察总线通信时序是每个工程师梦寐以求的能力。传统上我们只能通过示波器观察波形或查阅芯片手册中的时序图,但…...

如何精准下载GitHub项目中的特定文件或文件夹

如何精准下载GitHub项目中的特定文件或文件夹 【免费下载链接】DownGit github 资源打包下载工具 项目地址: https://gitcode.com/gh_mirrors/dow/DownGit 在GitHub上查找开源资源时,开发者常常面临一个现实问题:如何仅获取项目中的特定模块而非整…...

SAP ABAP开发:别再只会用POPUP_TO_CONFIRM了,这5个实用弹出框函数帮你搞定90%交互场景

SAP ABAP开发:解锁5个被低估的弹出框函数,告别单调交互设计 在SAP ABAP开发中,弹出框是用户交互的重要桥梁。许多开发者习惯性地依赖POPUP_TO_CONFIRM,却忽略了SAP标准库中那些功能更强大、场景更匹配的交互方案。本文将带你深入探…...

鸣潮智能自动化助手完整指南:3步配置解放双手的全能方案

鸣潮智能自动化助手完整指南:3步配置解放双手的全能方案 【免费下载链接】ok-wuthering-waves 鸣潮 后台自动战斗 自动刷声骸 一键日常 Automation for Wuthering Waves 项目地址: https://gitcode.com/GitHub_Trending/ok/ok-wuthering-waves 厌倦了在《鸣潮…...

指纹识别入门避坑指南:用MATLAB做仿真时,为什么你的特征点总提不准?

MATLAB指纹识别仿真:特征提取不准的5大技术陷阱与解决方案 指纹识别算法开发过程中,特征提取环节的准确性直接决定了整个系统的性能表现。许多研究者在MATLAB仿真阶段就遇到了特征点定位偏差、伪特征过多等典型问题。本文将针对这些高频痛点,…...

2026.5.13总结

今天记录3件事。1.昨天是母亲节,给母亲转了1314块,父母养育之恩,不敢忘怀,时时叮咛《,只恨树欲静而风不止,子欲养而亲不待。2.刷到一个26岁送外卖3年攒30万买奥迪A6的外卖小哥,先不谈论他的做法…...

为什么你的Midjourney账单暴涨200%?3个被官方文档隐瞒的计费临界点曝光(含--tile模式下的隐性显存倍增机制)

更多请点击: https://intelliparadigm.com 第一章:Midjourney GPU时间计算的本质与计费范式重构 Midjourney 的 GPU 时间并非基于物理设备的实时秒级占用,而是通过抽象化的“任务单元”(Task Unit, TU)进行计量。每个…...

3个理由选择Clipy:重新定义你的macOS剪贴板体验

3个理由选择Clipy:重新定义你的macOS剪贴板体验 【免费下载链接】Clipy Clipboard extension app for macOS. 项目地址: https://gitcode.com/gh_mirrors/cl/Clipy Clipy是一款专为macOS用户设计的剪贴板增强应用,它不仅能记录你的剪贴板历史&…...

在多轮对话应用中观察 Taotoken 路由策略对响应速度的影响

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 在多轮对话应用中观察 Taotoken 路由策略对响应速度的影响 效果展示类,在开发一个需要连续进行多轮对话的聊天应用时&a…...

为AI编码代理构建确定性安全层:开源安全网关ai-sec实战指南

1. 项目概述:为AI编码代理构建确定性安全层如果你正在使用Claude Code、Cursor、Codex这类AI编码助手,或者正在开发基于LLM的自动化工作流,那么一个核心的痛点你一定深有体会:如何确保AI不会执行危险命令?当AI助手建议…...

Linux主机名管理进阶:除了hostnamectl,你还需要知道这些配置文件和坑

Linux主机名管理进阶:从配置文件到云环境的深度实践 在Linux系统中,主机名远不止是一个简单的标识符。它像系统的DNA,贯穿于网络通信、服务发现、日志追踪等各个环节。许多管理员习惯使用hostnamectl命令快速修改主机名,却对背后的…...

基于Electron的Claude桌面客户端开发:从封装网页到系统集成

1. 项目概述:为什么我们需要一个独立的Claude桌面客户端?作为一名长期在AI工具和效率软件领域折腾的开发者,我一直在寻找能让日常工作流更顺畅的解决方案。Claude作为一款强大的AI助手,其官方网页版虽然功能完善,但在某…...

Cursor Pro破解工具:5步实现永久免费使用的终极指南

Cursor Pro破解工具:5步实现永久免费使用的终极指南 【免费下载链接】cursor-free-vip [Support 0.45](Multi Language 多语言)自动注册 Cursor Ai ,自动重置机器ID , 免费升级使用Pro 功能: Youve reached your trial…...

MobileClaw:为OpenClaw AI Agent打造移动优先的聊天界面

1. 项目概述:为本地AI Agent打造一款移动优先的聊天界面 如果你和我一样,热衷于在本地运行大型语言模型,并且对OpenClaw这类AI Agent框架的强大能力着迷,那你一定也遇到过和我一样的烦恼:在手机上查看和管理Agent对话…...

Relic项目:用纯文本文件为AI工具打造可移植的持久记忆系统

1. 项目概述:为你的AI伙伴打造一个持久、可移植的“灵魂芯片”如果你和我一样,深度依赖各种AI工具来辅助工作、学习和创作,那你一定遇到过这个令人头疼的问题:每次切换工具,都像是在和一个“失忆”的新朋友重新建立关系…...

【RT-DETR实战】030、注意力机制改进:引入SimAM,EMA等无参注意力

从一次深夜调试说起 上周三凌晨两点,我在部署RT-DETR到边缘设备时遇到了性能瓶颈。模型在Jetson Orin上跑起来比预期慢了23%,显存占用也超出了预算。 用perf工具分析发现,注意力模块的计算开销占了近40%——这让我不得不重新审视那些“标配”的注意力机制。 我们习惯性地…...

斗鱼股权曝光:腾讯持股40% 陈少杰持股18%

雷递网 乐天 5月13日斗鱼日前向美国SEC发布20-F文件,文件显示,截至2026年3月31日,腾讯一共持有 12,070,080股,占总股本的40%;斗鱼创始人、联席CEO陈少杰持股为18%。截至2026年3月31日,斗鱼股权结构Morgan S…...

昆仑芯天池256卡超节点上个月点亮,将于6月正式上市

雷递网 乐天 5月13日5月13日,在Create2026百度AI开发者大会上,百度创始人李彦宏首次提出AI时代的“度量衡”——日活智能体数(DAA)。他认为,进入智能体时代,衡量一个平台和生态的繁荣,更应该关注…...

【RT-DETR实战】029、注意力机制改进:Transformer Encoder增强实战笔记

一、从一次深夜调试说起 上周三凌晨两点,产线视觉检测突然报错——产线上快速移动的小尺寸元件开始漏检。排查发现,当目标尺寸小于3232像素时,RT-DETR的检测置信度会从0.8骤降到0.3以下。 打开热力图可视化,发现Encoder层对微小目标的注意力响应几乎散成了噪声。 问题定…...

Taotoken的Token Plan套餐为长期项目带来了显著的成本优势

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 Taotoken的Token Plan套餐为长期项目带来了显著的成本优势 对于需要持续调用大模型API的长期项目或团队而言,成本控制是…...

Awesome-ChatGPT:社区驱动的AI资源导航与高效知识管理实践

1. 项目概述:一个汇聚ChatGPT智慧的“藏宝图”如果你和我一样,在ChatGPT爆火之后,既兴奋又有点迷茫,那么这个名为“awesome-chatpt”的项目,绝对是你探索这片新大陆的绝佳起点。它不是一个具体的软件或工具&#xff0c…...

TuxGuitar终极指南:免费开源吉他谱编辑软件的完整入门教程

TuxGuitar终极指南:免费开源吉他谱编辑软件的完整入门教程 【免费下载链接】tuxguitar Open source guitar tablature editor 项目地址: https://gitcode.com/gh_mirrors/tu/tuxguitar TuxGuitar是一款功能强大的免费开源吉他谱编辑软件,专为吉他…...

跨平台QQ数据库访问方案:从加密壁垒到数据提取的技术突破

跨平台QQ数据库访问方案:从加密壁垒到数据提取的技术突破 【免费下载链接】qq-win-db-key 全平台 QQ 聊天数据库解密 项目地址: https://gitcode.com/gh_mirrors/qq/qq-win-db-key 当你的聊天记录被加密存储时,如何安全地访问这些数据&#xff1f…...

ElevenLabs语音合成接入视频工作流:3步完成API对接,72小时内提升配音效率300%

更多请点击: https://intelliparadigm.com 第一章:ElevenLabs语音合成接入视频工作流:3步完成API对接,72小时内提升配音效率300% ElevenLabs 的高质量、低延迟语音合成 API 已成为专业视频内容生产链路中的关键组件。其情感化语音…...

完全掌握Trainers‘ Legend G:深度解析赛马娘中文本地化插件的5大核心功能

完全掌握Trainers Legend G:深度解析赛马娘中文本地化插件的5大核心功能 【免费下载链接】Trainers-Legend-G 赛马娘本地化插件「Trainers Legend G」 项目地址: https://gitcode.com/gh_mirrors/tr/Trainers-Legend-G Trainers Legend G是一款专为赛马娘Pre…...