聚类
文章目录一、定义二、相似度/距离计算方法总结三、k-means算法1.基本思想2.迭代过程3.简单应用4.总结四、层次聚类五、密度聚类DBSCAN算法1相关概念2算法流程一、定义聚类就是对大量未知标注的数据集按照数据内在的相似性将数据集划分为多个类别使类别内的数据相似度较大而类别间的数据相似度较小属于无监督的学习方法。给定一个有N个对象的数据集构造数据的k个簇k≤n满足以下条件每个簇至少包含一个对象每个对象属于且仅属于一个簇将满足上述条件的k个簇称作一个合理划分二、相似度/距离计算方法总结三、k-means算法1.基本思想对于给定的类别数目k首先给出初始划分通过迭代改变样本和簇的隶属关系使得每一次改进之后的划分方案都较前一次好。2.迭代过程假定输入样本为S x 1 , x 2 , . . . . . , x n Sx_1,x_2,.....,x_nSx1​,x2​,.....,xn​则算法步骤为选择初始的k个类别中心μ 1 , μ 2 , . . . . . , μ k μ_1,μ_2,.....,μ_kμ1​,μ2​,.....,μk​可以根据先验知识对于每个样本x i x_ixi​将其标记为距离类别中心最近的类别这里的距离度量方案我们经常使用欧式距离将每个类别的中心更新为隶属该类别的所有样本的均值重复最后两步直到类别中心的变化小于某阈值3.简单应用对于这样的一些数据点初始情况下的散点图如下使用聚类算法进行聚类importnumpyasnpimportrandomimportpandasaspdimportmatplotlib.pyplotasplt times50# 迭代次数# 随机选取k个聚类质心点defselect_center(data,k,m,n):cluster_centernp.zeros((k,n))idsrandom.sample(range(m),k)foriinrange(k):cluster_center[i]data[ids[i]]returncluster_center# 计算两点的欧式距离defdistance(p1,p2):returnnp.sum((p1-p2)**2)**0.5# 求解某样本到各聚类质心点的最近点defget_cluster(point,cluster_center):disdistance(point,cluster_center[0])nearest0foriinrange(1,len(cluster_center)):new_disdistance(point,cluster_center[i])ifnew_disdis:disnew_dis nearestireturnnearestdefk_means(data,k):mlen(data)# 样本数量nlen(data[0])# 每条数据的维度# 初始化聚类质心点cluster_centernp.zeros((k,n))idsrandom.sample(range(m),k)# 随机产生k个不重复的indexforiinrange(k):cluster_center[i]data[ids[i]]clusternp.zeros(m,dtypenp.int)# 初始情况下所有点均没有聚类# 迭代times次foriinrange(times):next_cnp.zeros((k,n))# 下一轮聚类质心点c_numbernp.zeros(k)# 每个簇的样本数量forjinrange(m):cluster[j]get_cluster(data[j],cluster_center)next_c[cluster[j]]data[j]c_number[cluster[j]]1fortinrange(k):cluster_center[t]next_c[t]/c_number[t]# 更新每个聚类的质心点坐标returnclusterif__name____main__:datanp.array(pd.read_table(data.txt,headerNone,names[x,y]))x[item[0]foritemindata]y[item[1]foritemindata]clusterk_means(data,4)color[red,yellow,blue,black]forx,y,iinzip(x,y,cluster):plt.scatter(x,y,colorcolor[i])plt.show()得到这样的结果4.总结优点是解决聚类问题的一种经典算法简单、快速对处理大数据集该算法保持可伸缩性和高效率当簇近似为高斯分布时它的效果较好缺点在簇的平均值可被定义的情况下才能使用可能不适用于某些应用必须事先给出k(要生成的簇的数目)而且对初值敏感对于不同的初始值可能会导致不同结果。不适合于发现非凸形状的簇或者大小差别很大的簇将簇中所有点的均值作为新质心若簇中含有异常点将导致均值偏离严重对躁声和孤立点数据敏感四、层次聚类层次聚类方法试图在不同层次上对数据集进行划分对给定的数据集进行层次的分解直到某种条件满足为止。具体又可分为凝聚的层次聚类AGNES算法一种自底向上的策略首先将每个对象作为一个簇两个簇间的距离由这两个不同簇中距离最近的数据点对的相似度来确定聚类的合并过程反复进行直到所有的对象最终满足簇数目。分裂的层次聚类DIANA算法采用自顶向下的策略首先将所有的对象初始化到一个簇中然后根据一些原则(比如最大的欧式距离)将该簇分类。直到到达用户指定的簇数目或者两个簇之间的距离超过了某个阈值。AGNES中簇间距离的不同定义最小距离两个集合中最近的两个样本的距离容易形成链状结构最大距离两个集合中最远的两个样本的距离若存在异常值则不稳定平均距离两个集合中样本间两两距离的平均值方差使得簇内距离平方和最小簇间平方和最大五、密度聚类密度聚类方法的指导思想是只要样本点的密度大于某阈值则将该样本添加到最近的簇中。这类算法能克服基于距离的算法只能发现“类圆形”(凸)的聚类的缺点可发现任意形状的聚类且对噪声数据不敏感。但计算密度单元的计算复杂度大需要建立空间索引来降低计算量。DBSCAN算法1相关概念对象的ε-邻域给定对象在半径ε内的区域核心对象对于给定的数目m如果一个对象的ε-邻域内对象不包括自己的数量≥m则称该对象为核心对象直接密度可达给定一个对象集合D如果p在q的ε-邻域内而q是一个核心对象则我们说对象p从对象q出发是直接密度可达的。密度可达如果存在一个对象链p 1 p 2 . . . . p n , p 1 q , p n p p_1p_2....p_n,p_1q,p_npp1​p2​....pn​,p1​q,pn​p对p i ∈ D , ( 1 ≤ i ≤ n ) p_i \in D,(1≤i≤n)pi​∈D,(1≤i≤n)p i 1 p_{i1}pi1​是从p i p_ipi​关于ε和m直接密度可达的则对象p是从对象p关于ε和m密度可达的。密度相连如果对象集合D中存在一个对象o使得对象p和q是从o关于ε和m密度可达的那么对象p和q是关于ε和m密度相连的簇密度相连的点所形成的样本的集合噪声不包含在任何簇中的对象成为噪声2算法流程如果一个点p的ε-邻域包含多于m个对象则创建一个p作为核心对象的新簇寻找并合并核心对象直接密度可达的对象没有新点可以更新簇时算法结束未完待续。。。

相关新闻

物联网设备安全芯片SE050配置与实战应用

物联网设备安全芯片SE050配置与实战应用

1. 为什么物联网设备需要专用安全芯片? 在智能家居和工业物联网项目中,我曾亲眼见证过因安全漏洞导致的灾难性后果——某工厂的温控系统被入侵后,攻击者通过未加密的MQTT协议篡改了设备固件,导致价值数百万的药品原料全部报废。这…

2026/7/28 14:45:15阅读更多 →
开源模型 vs. 闭源 API:独立开发者的技术选型复盘

开源模型 vs. 闭源 API:独立开发者的技术选型复盘

开源模型 vs. 闭源 API:独立开发者的技术选型复盘 一、选型讨论中的「情绪」与「理性」 过去18个月,在技术社区关于「开源模型 vs. 闭源 API」的讨论中,情绪化的声音一直不少。一方说「闭源 API 是卖羊毛,开源模型才是未来」&…

2026/7/28 14:45:15阅读更多 →
NBM5100A与STM32F427ZI的物联网低功耗能量管理方案

NBM5100A与STM32F427ZI的物联网低功耗能量管理方案

1. 项目背景与核心需求解析在物联网和便携式设备设计中,电池寿命和瞬时电流供应能力一直是工程师面临的两大挑战。以典型的Li-SOCl₂锂电池为例,虽然其能量密度高达700Wh/kg,但在应对无线模块发射、传感器唤醒等突发负载时,电池内…

2026/7/28 14:45:15阅读更多 →
告别手忙脚乱!这款FF14智能钓鱼辅助工具让你轻松成为钓鱼大师

告别手忙脚乱!这款FF14智能钓鱼辅助工具让你轻松成为钓鱼大师

告别手忙脚乱!这款FF14智能钓鱼辅助工具让你轻松成为钓鱼大师 【免费下载链接】Fishers-Intuition 渔人的直感,最终幻想14钓鱼计时器 项目地址: https://gitcode.com/gh_mirrors/fi/Fishers-Intuition 还在为错过幻海流最佳时机而懊恼吗&#xff…

2026/7/28 15:49:39阅读更多 →
从图形化编程到Python海龟绘图:四色旋转方块阵实战解析

从图形化编程到Python海龟绘图:四色旋转方块阵实战解析

1. 项目概述:当图形化编程遇上Python海龟如果你接触过图形化编程,比如Scratch或者Mind,那你一定对拖拽积木、控制角色移动、绘制图案这些操作不陌生。它们直观、有趣,是很多编程启蒙课程的首选。但当我们想画一个更复杂、更炫酷的…

2026/7/28 15:49:39阅读更多 →
存储型XSS窃取Cookie攻防全解析:从漏洞利用到纵深防御实践

存储型XSS窃取Cookie攻防全解析:从漏洞利用到纵深防御实践

1. 项目概述:一次关于Web安全核心威胁的深度对话最近在复盘一些内部渗透测试和应急响应的案例,发现一个老生常谈却又屡禁不止的问题——存储型跨站脚本攻击。特别是当它被用来窃取用户会话凭证时,其危害性往往被低估。很多人知道XSS&#xff…

2026/7/28 15:49:39阅读更多 →
Android studio  CodeGlance 右侧预览功能消失

Android studio CodeGlance 右侧预览功能消失

如果是确认已经安装CodeGlance了,后来不知道什么原因右侧不显示预览的话,快捷键:CTRLSHIFTG,这个是打开关闭的快捷键。当然如果你不想使用快捷键来打开关闭的话,也可以去Android studio中 file --> settings-->搜…

2026/7/28 15:49:39阅读更多 →
EdgeRemover终极指南:如何彻底卸载Windows 10/11的Microsoft Edge浏览器

EdgeRemover终极指南:如何彻底卸载Windows 10/11的Microsoft Edge浏览器

EdgeRemover终极指南:如何彻底卸载Windows 10/11的Microsoft Edge浏览器 【免费下载链接】EdgeRemover A PowerShell script that correctly uninstalls or reinstalls Microsoft Edge on Windows 10 & 11. 项目地址: https://gitcode.com/gh_mirrors/ed/Edge…

2026/7/28 15:49:39阅读更多 →
基于FastAPI搭建PDF翻译微服务:从架构到部署(附完整代码)

基于FastAPI搭建PDF翻译微服务:从架构到部署(附完整代码)

前言 最近在做一个企业内部文档中台项目,需要把PDF翻译能力封装成微服务,供前端、IM机器人、定时任务等多个消费者调用。调研了一圈,发现市面上的方案要么太重(直接部署商业软件),要么太轻(纯脚…

2026/7/28 15:47:39阅读更多 →
覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

🔹 工具基础介绍 OpenClaw 是开源生态中一款实用性较强的本地智能工具,凭借本地离线运行、可视化图形操作和任务自动化三大核心特性,赢得了众多用户的青睐。与普通在线对话AI工具不同,它属于能够直接操控本机软硬件的智能数字员工…

2026/7/28 4:06:39阅读更多 →
伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

所谓液压伺服阀体的精密激光焊接,是用激光束对阀座壳体(通常为不锈钢或铝合金)进行密封焊接,使阀体在21-35MPa的高压液压油或压缩气体中长期运行而不发生介质泄漏。液压伺服阀是高端液压系统的"大脑"。从航空航天飞行控…

2026/7/28 2:08:06阅读更多 →
D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 你是否还在…

2026/7/28 1:38:28阅读更多 →
告别臃肿!3步让你的暗影精灵笔记本重获新生

告别臃肿!3步让你的暗影精灵笔记本重获新生

告别臃肿!3步让你的暗影精灵笔记本重获新生 【免费下载链接】OmenSuperHub Control Omen laptop performance, fan speeds, and keyboard lighting, and unlock power limits. 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub 你是否也曾为官方Om…

2026/7/28 0:00:29阅读更多 →
RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

做 RAG 的人应该都踩过这个致命的坑:把几百页的财报、法规、技术手册扔给向量库,问一个具体问题,搜出来的全是沾边但没用的内容 —— 关键信息要么被硬切块拆碎了,要么藏在几十条结果的最下面。语义相似≠真正相关,这个…

2026/7/28 0:00:29阅读更多 →
抖音视频文案提取工具全指南:免费2026版、手机App、在线工具一网打尽

抖音视频文案提取工具全指南:免费2026版、手机App、在线工具一网打尽

2026年做短视频运营,从抖音上扒文案早就不是偷偷抄笔记的事了。我刚开始做内容的时候,每天刷半小时抖音,手动把爆款视频的口播敲进备忘录,一条2分钟的视频得花十来分钟,碰到语速快的还要反复回听。后来试了一圈工具&am…

2026/7/28 0:00:29阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/27 16:57:54阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/28 3:17:03阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/28 2:35:58阅读更多 →