哪有什么三教九流,物以类聚罢了——kmeans聚类算法

观察人类社会,亦或说车水马龙中的光怪陆离,不难发现《马原》中介绍的人类社会中的个体,总是通过某种方面的“类似”聚在一起,文学上称这种现象叫做物以类聚,人以群分。


一.引言

前文提到,每个数据项,或者说每个对象,都有着自身固有、后天的一些属性。我们通过某些评判规则,将他们分成不同的类别。

将事物分为三教九流?不妨通过logistic回归-CSDN博客文章浏览阅读831次,点赞20次,收藏13次。和多元线性回归一样,逻辑回归也是建立“”型变量之间的线性关系——也即找出线性方程的近似解。有所不同的是,,这倒是有点像bool型和int型之间的区别了。以此解决特殊的问题要求~https://jslhyh32.blog.csdn.net/article/details/142070034

        不过作为社会中的人类,我们在做出决策时难免会有不同程度的主观性,并不是任何时候都能做出所谓的合理【分类】——过于随性地将事物分成三教九流指责,与人们所抨击的天庭又有什么区别。

但实际上,有些时候我们并不需要做出这种【主观】角度的【分类】,好比在湖里丢入一颗铅球,很快就会沉底,而如果搁置一叶扁舟,则可以漂浮在水面上。由于自然界的规律,重力高的事物就会沉底,而重力低的则会浮在水面,这也是某种角度的“物以类聚”。 

数据科学里面也有这种所谓的自然规律,即某种算法,将事物划分为有限的那么几类,也就是本帖归纳的聚类算法。官方给出的定义是:将物理或抽象对象的集合分成由类似的对象组成的多个类的过程被称为聚类。由聚类所生成的簇是一组数据对象的集合,这些对象与同一个簇中的对象彼此相似,与其他簇中的对象相异。 

本帖主要讲解k均值聚类算法,有关DBSCAN聚类算法已经发布,感兴趣的筒子可以点击下方链接:

DBSCAN聚类算法——MATLAB实现_dbscan聚类算法matlab代码-CSDN博客文章浏览阅读5.1k次,点赞15次,收藏85次。前两个函数分别保存为独立的m文件,将其与主函数放置同一文件夹目录之下即可。此外,自己的数据要独立保存为.mat文件,也在同一目录之下。DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一个比较有。作为经典的聚类算法,DBSCAN聚类在数学建模竞赛中用到的概率很大。本文不详细展开讲解DBSCAN的原理,只介绍相关代码的使用步骤。不同,它将簇定义为密度相连的点的最大集合,能够把具有足够。的区域划分为簇,并可在噪声的。_dbscan聚类算法matlab代码https://jslhyh32.blog.csdn.net/article/details/130048940

二.原理

1.算法流程

  • 指定需要划分的簇的个数K值(也即所谓【类】的个数);
  • 随机地选择K个数据对象作为初始的聚类中心 
  • 计算其余的各个数据对象到这K个初始聚类中心的距离,把数据对象划归到距离它最近的那个中心所处在的簇类中;
  • 调整新类并且重新计算出新类的中心;(更新这个类中的代表)
  • 循环步骤三和四,看中心是否收敛(不变),如果收敛或达到迭代次数则停止循环;
  • 直到结束

在理解的角度上需要注意:虽然我们无法规定每一个个体是哪一类,但是我们可以人为规定个体可以划分为几类。 

因此相信大家不难发现,k均值聚类是有他的局限性的:一方面,我们根本就不知道所谓的三教九流是什么样子,但是这里却要求我们规定种类个数——相当于还是要先入为主地知道,到底是【几教几流】;另一方面算法的随机性较大,对于初始给定的聚类中心如果不同,最终聚类结果可能差距很大;此外就是对于比较独立的点很难处理。

2.升级版——Kmeans++算法

基本原则是:初始的聚类中心之间的相互距离要尽可能的远。

步骤:

  • 随机选取一个样本作为第一个聚类中心;
  • 计算每个样本与当前已有聚类中心的最短距离(即与最近一个聚类中心的距离),这个值越大,表示被选取作为聚类中心的概率较大;最后,用轮盘法(依据概率大小来进行抽选)选出下一个聚类中心;
  • 重复步骤二,直到选出K个聚类中心。(选出初始点后相当于是普通的k均值了)~

三.SPSS实现

现有数据如下:

省份食品衣着家庭设备医疗交通娱乐居住杂项
北京2959.19730.79749.41513.34467.871141.82478.42457.64
天津2459.77495.47697.33302.87284.19735.97570.84305.08
河北1495.63515.9362.37285.32272.95540.58364.91188.63
山西1406.33477.77290.15208.57201.5414.72281.84212.1
内蒙古1303.97524.29254.83192.17249.81463.09287.87192.96
辽宁1730.84553.9246.91279.81239.18445.2330.24163.86
吉林1561.86492.42200.49218.36220.69459.62360.48147.76
黑龙江1410.11510.71211.88277.11224.65376.82317.61152.85
上海3712.31550.74893.37346.935271034.98720.33462.03
江苏2207.58449.37572.4211.92302.09585.23429.77252.54
浙江2629.16557.32689.73435.69514.66795.87575.76323.36
安徽1844.78430.29271.28126.33250.56513.18314151.39
福建2709.46428.11334.12160.77405.14461.67535.13232.29
江西1563.78303.65233.81107.9209.7393.99509.39160.12
山东1675.75613.32550.71219.79272.59599.43371.62211.84
河南1427.65431.79288.55208.14217337.76421.31165.32
湖南1942.23512.27401.39206.06321.29697.22492.6226.45
湖北1783.43511.88282.84201.01237.6617.74523.52182.52
广东3055.17353.23564.56356.27811.88873.061082.82420.81
广西2033.87300.82338.65157.78329.06621.74587.02218.27
海南2057.86186.44202.72171.79329.65477.17312.93279.19
重庆2303.29589.99516.21236.55403.92730.05438.41225.8
四川1974.28507.76344.79203.21240.24575.1430.36223.46
贵州1673.82437.75461.61153.32254.66445.59346.11191.48
云南2194.25537.01369.07249.54290.84561.91407.7330.95
西藏2646.61839.7204.44209.11379.3371.04269.59389.33
陕西1472.95390.89447.95259.51230.61490.9469.1191.34
甘肃1525.57472.98328.9219.86206.65449.69249.66228.19
青海1654.69437.77258.78303244.93479.53288.56236.51
宁夏1375.46480.89273.84317.32251.08424.75228.73195.93
新疆1608.82536.05432.46235.82250.28541.3344.85214.4

打开SPSS录入数据,并选择分类-k均值聚类:

此处我们规定类数为3,也即将上述省份分为3个档次:

看下表,分别展示了3个不同簇的聚类中心(也即代表性个体):上述中心并非具体哪个省份,而是数值上的一个虚拟存在而已!

 

这个表展示了各个簇里面的成员个数:

保留成员所属类别,看看就行:

省份北京天津河北山西内蒙古辽宁吉林黑龙江上海
所属123333331
省份江苏浙江安徽福建江西山东河南湖南湖北
所属223233333
省份重庆四川贵州云南西藏陕西甘肃青海宁夏
所属233223333
省份广西广东新疆海南
所属3133

相信各位看出来一些端倪了:所谓的3档里面,经济实力也分三六九等。这就是对类别把控的主观局限性所在,在数模比赛的实战中,建议多尝试几个数值,最终言之有理即可。

四.案例

聚类在处理大规模数据时还是相当实用的,博主在22年国赛使用过一次,23年正大杯使用过一次,还有一篇北大核心的论文,这里就不展示了,大同小异~

22年国赛:

 23年正大杯:


写在最后:

复习过考研数学的筒子兴许有同样感受——所谓的聚类算法很像线性代数中的线性相关。也即选取一个代表即可表示整个向量组的成员,也就是所谓的极大无关组。当然实际上根本不能这样比喻,这里强调的是,聚类中心对整个聚类簇的代表性~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/148035.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot项目License证书生成与验证(TrueLicense) 【记录】

SpringBoot项目License证书生成与验证(TrueLicense) 【记录】 在非开源产品、商业软件、收费软件等系统的使用上,需要考虑系统的使用版权问题,不能随便一个人拿去在任何环境都能用。应用部署一般分为两种情况: 应用部署在开发者自己的云服务…

Qt笔记(十七)cmake编译Qt项目

Qt笔记(十七)cmake编译Qt项目 1. 文件内容与文件结构1.1.文件目录1.2. CMakeLists.txt内容1.3. main.cpp文件1.4. mouseevent.h1.5. mouseevent.cpp1.6. 生成Visual Studio项目后编译报错1.7. 界面显示中文乱码问题 1. 文件内容与文件结构 1.1.文件目录…

jdk11特性介绍

JDK 11(也称为Java 11)是Java平台的一个重要版本,它引入了许多新特性和改进,旨在提高开发者的生产力和Java平台的性能。以下是一些JDK 11的主要特性: 局部变量类型推断(Local-Variable Syntax for Lambda P…

2009考研数学真题解析-数二:

第一题: 解析:先找间断点:分母不能等于0,分母是sinΠx, 因此不难看出间断点是x0,-1,-2,-3。。。。。 接着一个一个来算这些点是什么间断点。 ,从x趋于2开始,分…

JavaScript是如何来的~~

文章目录 前言一、网络的诞生 ( The birth of the Web )二、Mosaic 浏览器三、Netscape 浏览器四、JavaScript的诞生 ~ 千呼万唤始出来总结 前言 例如:想要了解一门语言的发展历程,首先你得知道它是怎么来的,所以本文开篇介绍了网络的基本发…

智能BI平台项目

1.项目介绍 BI商业智能:数据可视化、报表可视化系统 4)发布订阅 Resource 是基于名称进行查找的,而Spring框架中更常用的 Autowired 则是基于类型进行查找的。如果找不到匹配的bean,Autowired 会抛出异常,而 Resource…

EAGLE——探索混合编码器的多模态大型语言模型的设计空间

概述 准确解释复杂视觉信息的能力是多模态大型语言模型 (MLLM) 的关键重点。最近的研究表明,增强的视觉感知可显著减少幻觉并提高分辨率敏感任务(例如光学字符识别和文档分析)的性能。最近的几种 MLLM 通过利用视觉编码器的混合来实现这一点…

网络层协议 —— IP协议

目录 0.前言 1.IP协议的格式 2.IP地址 2.1IP地址的划分 国际间IP地址的划分 公有IP 私有IP 特殊的IP地址 国内IP地址的划分 2.2IP地址不足问题 2.3IP地址的功能 2.4如何使用IP地址 2.5IP地址的构成 3.网段划分 以前的方案 现在的方案 4.认识宏观网络 5.路由 …

SpringCloud config native 配置

SpringCloud config native 配置 1.概述 最近项目使用springCloud 框架,使用config搭建git作为配置中心。 在私有化部署中,出现很多比较麻烦的和鸡肋的设计。 每次部署都需要安装gitlab 有些环境安装完gitlab,外面不能访问,不给开…

QT实现升级进度条页面

一.功能说明 在Qt中实现固件升级的进度条显示窗口,你可以通过创建一个自定义的对话框(Dialog)来完成。这个对话框可以包含一个进度条(QProgressBar)、一些文本标签(QLabel)用于显示状态信息&am…

SSL 最长签发时间是多久?

在当今数字化的时代,网络安全变得至关重要。为了确保数据在网络传输中的安全性,SSL(Secure Sockets Layer,安全套接层)证书被广泛应用。那么,SSL最长签发时间是多久呢? SSL证书是一种数字证书&…

差分数组介绍

差分数组 差分数组介绍定义性质性质1: 计算数列第i项的值性质2: 计算数列第i项的前缀和应用场景差分数组具体示例【leetcode】370.区间加法题目描述题解【leetcode】1109. 航班预订统计题目描述题解【leetcode】2848.与车相交的点题目描述题解差分数组介绍 定义 对于已知有n个…

C#如何把写好的类编译成dll文件

1 新建一个类库项目 2 直接改写这个Class1.cs文件 3 记得要添加Windows.Forms引用 4 我直接把在别的项目中做好的cs文件搞到这里来,连文件名也改了(FilesDirectory.cs),这里using System.Windows.Forms不会报错,因为前…

制造解法 Manufactured Solutions 相关的论文的阅读笔记

Verification of Euler/Navier–Stokes codes using the method of manufactured solutions https://doi.org/10.1002/fld.660 粘性项与扩散项之间的平衡 For the Navier–Stokes simulations presented herein, the absolute viscosity is chosen to be a large constant va…

【Java】掌握Java:基础概念与核心技能

文章目录 前言:1. 注释2. 字面量3. 变量详解3.1 变量的定义3.2 变量里的数据存储原理3.3 数据类型3.4 关键字、标识符 4. 方法4.1 方法是啥?4.2 方法的完整定义格式4.3 方法如何使用:4.4 方法的其他形式4.5 方法的其他注意事项4.5.1 方法是可…

如何充分使用芝士AI呢?一文讲清楚助力论文完成无忧

为了解决各位学弟学妹们的论文烦恼,助力大家毕业无忧,芝士AI由985硕博团队的学长学姐们潜心研发出来的一款集齐论文选题、开题报告、论文初稿、论文查重、论文降重、论文降AIGC率、论文答辩稿、论文答辩PPT,一站式解决困扰大家已久的论文问题…

如何创建标准操作规程(SOP)[+模板]

创建、分发和管理流程文档和逐步说明的能力是确定企业成功的关键因素。许多组织依赖标准操作规程(SOP)作为基本形式的文档,指导他们的工作流程操作。 然而,SOP不仅仅是操作路线图;它们就像高性能车辆中的先进GPS系统一…

机器视觉-7 检测原理之预处理(图像增强)

在图像处理领域,图像增强是一个非常重要的技术,目的是通过调整图像的某些特征来改善图像的视觉效果,或为后续的图像分析和处理做准备。在 OpenCV 中,C 提供了多种图像增强方法,包括直方图均衡化、对比度拉伸、锐化、边…

双向链表-

链表特性:带头/不带头 循环/非循环 --->排列组合后,共有8种链表结构 一.双向链表的定义 前一个节点存了后一个节点的地址,后一个节点也存了前一个节点的地址,即循环链表 二.代码解析 //双向链表 //与非循环链表区别&#…

面试官:Spring是如何解决循依赖问题?

Spring 的循环依赖一直都是 Spring 中一个很重要的话题,一方面是 Spring 为了解决循环依赖做了很多工作,另一个方面是因为它是面试 Spring 的常客,因为他要求你看过 Spring 的源码,如果没有看过 Spring 源码你基本上是回答不了这个…