聚类
📅 2026/7/28 14:47:14
👁️ 次浏览
文章目录一、定义二、相似度/距离计算方法总结三、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_npp1p2....pn,p1q,pnp对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作为核心对象的新簇寻找并合并核心对象直接密度可达的对象没有新点可以更新簇时算法结束未完待续。。。
1. OpenClaw一键部署方案概述OpenClaw作为新兴的智能代理框架,其传统安装方式需要用户在终端逐行输入命令,这对非技术背景用户构成了显著门槛。我们设计的这套方案实现了三大突破:首先,通过批处理脚本封装所有依赖安装和环境配置步…
📅 2026/7/28 14:46:13
Helm Chart 避坑:values嵌套、hook和回滚的陷阱
基础设施不需要漂亮话。
Helm 是 Kubernetes 生态里用得最广的包管理工具,但它的设计有不少隐藏陷阱。过去半年我们管理了 30 多个 Chart,踩过的坑大部分集中在三个维度:values 文件…
📅 2026/7/28 14:46:13
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:13
1. 从“配方”到“成品”:二元合金相图与凝固的工程意义搞材料、冶金或者机械加工的同行,肯定都绕不开“相图”这张图。它就像一份合金的“烹饪食谱”,告诉你不同“食材”(组元)按什么比例混合,在什么“火候…
📅 2026/7/29 2:40:43
2026年一站式网站建设公司推荐!这些选型干货你知道吗?据中国互联网络信息中心(CNNIC)发布的数据,截至2025年12月,我国网民规模已达11.25亿人,互联网普及率达80.1%,全国网站数量为438…
📅 2026/7/29 2:40:43
1. 从“究极”二字说起:我们到底在追求什么样的户外烧烤体验?“究极BBQ小车车”,这个标题本身就充满了想象力和野心。它不是一个简单的“便携烧烤架”或者“户外野餐车”,而是将“究极”和“小车车”这两个看似矛盾的词组合在了一…
📅 2026/7/29 2:40:43
1. 减速机空载电流大的常见原因解析 减速机在空载状态下电流异常偏高,往往是设备存在潜在问题的信号。作为一名在工业设备维护领域摸爬滚打多年的从业者,我见过太多因为忽视这个"小问题"而导致重大损失的案例。空载电流超标看似不起眼…
📅 2026/7/29 2:40:43
1. 工业级物联网通信的核心挑战与选型考量在工业物联网(IIoT)领域,通信模块的选型直接决定了整个系统的可靠性和生命周期。传统消费级通信模块在工业场景中常常面临三大致命问题:温度适应性差导致频繁断连、电磁干扰下的信号不稳定、以及缺乏硬件级的安全…
📅 2026/7/29 2:40:43
做生信分析最痛苦的不是跑不通代码,而是明明看着教程一步步来,结果出来的图丑得没法看,或者P值全是0.05,导师还问你为什么没显著性。今天不聊高大上的算法,就聊聊这个看似简单实则坑多的geo2r简介。很多人以为这就是个在线工具,点两下就完事,大错特错。我去年带的一个实…
📅 2026/7/29 2:39:07
解密Seq的核心功能:如何利用Pipeline实现高效基因组数据处理 【免费下载链接】seq A high-performance, Pythonic language for bioinformatics 项目地址: https://gitcode.com/gh_mirrors/se/seq
Seq作为一款高性能的生物信息学专用语言,其Pipel…
📅 2026/7/29 0:00:00
Flask-Blogging插件开发指南:打造属于你的个性化博客功能 【免费下载链接】Flask-Blogging A Markdown Based Python Blog Engine as a Flask Extension. 项目地址: https://gitcode.com/gh_mirrors/fl/Flask-Blogging
Flask-Blogging是一个基于Markdown的Py…
📅 2026/7/29 0:00:00
近日,国际专注开放式技术研发的声学品牌Nank南卡,正式官宣实力艺人曾舜晞担任品牌代言人。消息一经发出便轰动全网。为什么耳机品牌不选择流量明星、老牌歌手?而且是选择曾舜晞?让我们一起来探索一下!比起短期的流量&a…
📅 2026/7/29 0:01:00
更多请点击:
https://codechina.net
第一章:AI帮助理解数学概念 人工智能正以前所未有的方式重塑数学学习的路径。通过自然语言处理与符号计算的深度融合,AI不仅能解析抽象定义,还能将定理、证明和几何直觉转化为可交互、可验证的…
📅 2026/7/29 1:14:44
1. 项目背景与核心价值去年参与的一个短剧项目让我深刻体会到传统创作流程的痛点:编剧团队花了三周打磨剧本,角色设计反复修改了七版,最后成片时又因为演员档期问题不得不临时调整分镜。这种低效的创作模式在快节奏的内容行业越来越难以为继。…
📅 2026/7/29 1:14:44
remix-i18next TypeScript类型安全实践:确保翻译键与类型定义同步 【免费下载链接】remix-i18next The easiest way to translate your React Router framework mode apps 项目地址: https://gitcode.com/gh_mirrors/re/remix-i18next
在开发多语言应用时&am…
📅 2026/7/29 1:14:46
目录
第一步:选对模板,省心一半
第二步:打开扫码点餐功能
开启功能按钮
桌台管理与桌码生成
第三步:个性化设计,打造品牌感
调整点餐页面
设置点餐规则 你还在让顾客站着排队点餐吗?2025年ÿ…
📅 2026/7/28 7:13:45
在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…
📅 2026/7/28 17:14:18
FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE
你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…
📅 2026/7/28 5:13:40