聚类
文章目录一、定义二、相似度/距离计算方法总结三、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作为核心对象的新簇寻找并合并核心对象直接密度可达的对象没有新点可以更新簇时算法结束未完待续。。。

相关新闻

Grasscutter Tools终极指南:原神私服玩家的可视化管理解决方案

Grasscutter Tools终极指南:原神私服玩家的可视化管理解决方案

Grasscutter Tools终极指南:原神私服玩家的可视化管理解决方案 【免费下载链接】grasscutter-tools A cross-platform client that combines launcher, command generation, and mod management to easily play Grasscutter; 一个结合了启动器、命令生成、MOD管理等…

2026/7/28 14:46:19 阅读更多 →
如何轻松掌控华硕笔记本性能:G-Helper轻量级控制工具终极指南

如何轻松掌控华硕笔记本性能:G-Helper轻量级控制工具终极指南

如何轻松掌控华硕笔记本性能:G-Helper轻量级控制工具终极指南 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, Vivobook, Zenb…

2026/7/28 14:46:19 阅读更多 →
字节顺序:大端法与小端法

字节顺序:大端法与小端法

一、什么是大端法、小端法 假设变量 x 的类型为 int,位于地址 0x100 处,它的 16 进制值为 0x01234567,地址范围 0x100 ~ 0x103 的字节顺序依赖于机器的类型: 大端法,就是按照地址从低到高的顺序,先存储数据…

2026/7/28 14:46:19 阅读更多 →

最新新闻

射频系统中噪声系数的概念、测量与应用

射频系统中噪声系数的概念、测量与应用

1. 噪声系数的基本概念与定义 噪声系数(Noise Figure,简称NF)是射频工程中最基础也最重要的性能指标之一。它量化了一个系统或器件对信号信噪比(SNR)的劣化程度。简单来说,任何信号通过射频系统时都会叠加额…

2026/7/28 14:55:22 阅读更多 →
C++ std::fill算法详解:从原理到实战,告别手写循环

C++ std::fill算法详解:从原理到实战,告别手写循环

1. 项目概述:为什么我们需要 std::fill 在C的日常开发中,无论是处理一个刚分配好内存的数组,还是重置一个复杂容器的状态,我们经常面临一个看似简单却频繁出现的任务:将一段连续的内存区域或容器中的元素&#xff0c…

2026/7/28 14:55:22 阅读更多 →
六祎-Java文件的上传和下载原理

六祎-Java文件的上传和下载原理

文件上传的原理1.1Eazy实现文件上传下载1-2上传原理1.3entype表单属性​​​​​​​2.文件下载的原理——

2026/7/28 14:55:22 阅读更多 →
测试

测试

测试 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 新的改变 我们对Markdown编辑器进行了一些功能拓展与语法支持&…

2026/7/28 14:55:22 阅读更多 →
Claude Agent Skills开发指南:大模型技能封装与实践

Claude Agent Skills开发指南:大模型技能封装与实践

1. Claude Agent Skills 入门指南:大模型时代的新生产力工具 最近在技术社区看到不少关于Claude Agent Skills的讨论,作为一个长期关注AI应用的开发者,我发现这套工具确实能显著提升大模型的使用效率。不同于传统的大模型调用方式&#xff0c…

2026/7/28 14:55:22 阅读更多 →
焊接缺陷如何分辨

焊接缺陷如何分辨

焊接缺陷如何分辨 一、 一般常见的焊接缺陷可分为四类: (1)焊缝尺寸不符合要求:如焊缝超高、超宽、过窄、高低差过大、焊缝过渡到母材不圆滑等。 (2)焊接表面缺陷:如咬边、焊瘤、内凹、满溢、未焊透、表面气孔、表面裂纹等。 (3)焊缝内部缺陷:如气孔、夹渣、裂纹…

2026/7/28 14:54:22 阅读更多 →

日新闻

告别臃肿!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:43 阅读更多 →
RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

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

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

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

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

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

2026/7/28 0:00:43 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/28 12:04:22 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/28 8:29:16 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/28 5:03:42 阅读更多 →

月新闻