MATLAB聚类工具箱

本文借鉴了数学建模清风老师的课件与思路,可以点击查看链接查看清风老师视频讲解:【1】MATLAB聚类工具箱:提前预览工具箱的核心功能_哔哩哔哩_bilibili

关于工具箱的获取,在数学建模学习交流公众号里发送: 567891

%% 本工具箱对MATLAB的要求:
% (1)MATLAB版本为2021a及以上版本
% (2)只支持windows系统,不支持苹果电脑的MAC系统
% (3)MATLAB APP中有统计和机器学习工具箱(Statistics and Machine Learning Toolbox)

%% 使用下面的代码加载Kmeans工具箱(精简版,无使用期限) 
% 不要在压缩包中直接打开文件,先解压后再打开,MATLAB的当前文件夹也记得更改
%【Matlab新手经常遇到的一些问题】 https://b23.tv/EopJrWI 

P_mainfunction_KmeansCluster_Simple_Version


%% (1)示例1:鸢尾花数据集
% 工具箱中附带了鸢尾花的数据集,这是MATLAB内置的数据集
% 你可以看到在MATLAB的工作区有一个名为meas的矩阵(大小是150*4)
% 这表示数据集中有150个样本,4个指标:
% 花萼长  花萼宽  花瓣长  花瓣宽(单位都是cm)
meas=  [5.1 3.5 1.4 0.2;4.9 3 1.4 0.2;4.7 3.2 1.3 0.2;4.6 3.1 1.5 0.2;5 3.6 1.4 0.2;5.4 3.9 1.7 0.4;4.6 3.4 1.4 0.3;5 3.4 1.5 0.2;4.4 2.9 1.4 0.2;4.9 3.1 1.5 0.1;5.4 3.7 1.5 0.2;4.8 3.4 1.6 0.2;4.8 3 1.4 0.1;4.3 3 1.1 0.1;5.8 4 1.2 0.2;5.7 4.4 1.5 0.4;5.4 3.9 1.3 0.4;5.1 3.5 1.4 0.3;5.7 3.8 1.7 0.3;5.1 3.8 1.5 0.3;5.4 3.4 1.7 0.2;5.1 3.7 1.5 0.4;4.6 3.6 1 0.2;5.1 3.3 1.7 0.5;4.8 3.4 1.9 0.2;5 3 1.6 0.2;5 3.4 1.6 0.4;5.2 3.5 1.5 0.2;5.2 3.4 1.4 0.2;4.7 3.2 1.6 0.2;4.8 3.1 1.6 0.2;5.4 3.4 1.5 0.4;5.2 4.1 1.5 0.1;5.5 4.2 1.4 0.2;4.9 3.1 1.5 0.2;5 3.2 1.2 0.2;5.5 3.5 1.3 0.2;4.9 3.6 1.4 0.1;4.4 3 1.3 0.2;5.1 3.4 1.5 0.2;5 3.5 1.3 0.3;4.5 2.3 1.3 0.3;4.4 3.2 1.3 0.2;5 3.5 1.6 0.6;5.1 3.8 1.9 0.4;4.8 3 1.4 0.3;5.1 3.8 1.6 0.2;4.6 3.2 1.4 0.2;5.3 3.7 1.5 0.2;5 3.3 1.4 0.2;7 3.2 4.7 1.4;6.4 3.2 4.5 1.5;6.9 3.1 4.9 1.5;5.5 2.3 4 1.3;6.5 2.8 4.6 1.5;5.7 2.8 4.5 1.3;6.3 3.3 4.7 1.6;4.9 2.4 3.3 1;6.6 2.9 4.6 1.3;5.2 2.7 3.9 1.4;5 2 3.5 1;5.9 3 4.2 1.5;6 2.2 4 1;6.1 2.9 4.7 1.4;5.6 2.9 3.6 1.3;6.7 3.1 4.4 1.4;5.6 3 4.5 1.5;5.8 2.7 4.1 1;6.2 2.2 4.5 1.5;5.6 2.5 3.9 1.1;5.9 3.2 4.8 1.8;6.1 2.8 4 1.3;6.3 2.5 4.9 1.5;6.1 2.8 4.7 1.2;6.4 2.9 4.3 1.3;6.6 3 4.4 1.4;6.8 2.8 4.8 1.4;6.7 3 5 1.7;6 2.9 4.5 1.5;5.7 2.6 3.5 1;5.5 2.4 3.8 1.1;5.5 2.4 3.7 1;5.8 2.7 3.9 1.2;6 2.7 5.1 1.6;5.4 3 4.5 1.5;6 3.4 4.5 1.6;6.7 3.1 4.7 1.5;6.3 2.3 4.4 1.3;5.6 3 4.1 1.3;5.5 2.5 4 1.3;5.5 2.6 4.4 1.2;6.1 3 4.6 1.4;5.8 2.6 4 1.2;5 2.3 3.3 1;5.6 2.7 4.2 1.3;5.7 3 4.2 1.2;5.7 2.9 4.2 1.3;6.2 2.9 4.3 1.3;5.1 2.5 3 1.1;5.7 2.8 4.1 1.3;6.3 3.3 6 2.5;5.8 2.7 5.1 1.9;7.1 3 5.9 2.1;6.3 2.9 5.6 1.8;6.5 3 5.8 2.2;7.6 3 6.6 2.1;4.9 2.5 4.5 1.7;7.3 2.9 6.3 1.8;6.7 2.5 5.8 1.8;7.2 3.6 6.1 2.5;6.5 3.2 5.1 2;6.4 2.7 5.3 1.9;6.8 3 5.5 2.1;5.7 2.5 5 2;5.8 2.8 5.1 2.4;6.4 3.2 5.3 2.3;6.5 3 5.5 1.8;7.7 3.8 6.7 2.2;7.7 2.6 6.9 2.3;6 2.2 5 1.5;6.9 3.2 5.7 2.3;5.6 2.8 4.9 2;7.7 2.8 6.7 2;6.3 2.7 4.9 1.8;6.7 3.3 5.7 2.1;7.2 3.2 6 1.8;6.2 2.8 4.8 1.8;6.1 3 4.9 1.8;6.4 2.8 5.6 2.1;7.2 3 5.8 1.6;7.4 2.8 6.1 1.9;7.9 3.8 6.4 2;6.4 2.8 5.6 2.2;6.3 2.8 5.1 1.5;6.1 2.6 5.6 1.4;7.7 3 6.1 2.3;6.3 3.4 5.6 2.4;6.4 3.1 5.5 1.8;6 3 4.8 1.8;6.9 3.1 5.4 2.1;6.7 3.1 5.6 2.4;6.9 3.1 5.1 2.3;5.8 2.7 5.1 1.9;6.8 3.2 5.9 2.3;6.7 3.3 5.7 2.5;6.7 3 5.2 2.3;6.3 2.5 5 1.9;6.5 3 5.2 2;6.2 3.4 5.4 2.3;5.9 3 5.1 1.8];


%% (2)森林、草原资源数据集
%  有21个国家的数据,每个国家3项指标
%  森林覆盖率(%)	林木蓄积量(亿立方米)	草原面积(万公顷)
load data_forest.mat

%% (3)1999年全国31个省份城镇居民家庭平均每人全年消费性支出数据 
% 数据来源:嵩天Python机器学习算法课程案例
% 31个样本、8个指标
% 食品	衣着	家庭设备	医疗	交通	娱乐	居住	杂项
load data_expenditure.mat




% 本工具箱系列由清风老师和出版社合作开发,还未正式发布,目前相关合作还在洽谈阶段,仅给大家测试使用。
% 使用者不得进行任何商用行为,以免未来有版权纠纷。
% 因作者水平有限,本工具箱得到的结果不一定完全正确,请大家自行核对结果的正确性。

一、加载数据、去量纲以及缺失值

打开工具箱,运行:

P_mainfunction_KmeansCluster_Simple_Version

点击左上角“点我加载”会工作区里所有的二维数据加载到工具箱里;然后选择需要聚类的变量,点击点此确定,就会将这个变量里的所有指标导入进来,接着会提示是否需要去除量纲,根据自己需求选择即可,在左下角有两种去量纲的方法,如下图:

自己随便选择一种即可,选择了之后点击“点此确定”即可成功去除量纲,

去除量纲之后的变量会自动生成在工作区中,新的变量名叫:原变量名_qclg。

当数据中有缺失值时,会提示有缺失值,此时需要自己填补缺失值,填补的方法:缺失值和异常值的处理

点击指标名字可以修改指标名,也可批量修改。

二、聚类参数的设置、聚类结果的含义

簇的个数:可以手动设置,也可以自动寻找最优。当为自动寻优时,是通过寻找轮廓系数(越大越好)、间隔统计量等等这些评价指标最优时候的K值。这些评价指标详细过程可参考旁边的参考文档。也可以绘制肘部图来看,在哪里变化幅度开始减小时,K值就是谁。

计算距离的公式:一般时平方欧几里得聚类。

聚类中心的初始化方法:推荐K_Means++算法。

单次聚类允许的最大迭代数:一般不会超过1000。

使用不用的初始聚类中心重复聚类的次数:设置成几次,就会聚几次,然后将最好的结果返回,电脑性能好的话,可以设置的大一点。

固定随机数种子:设置随机数种子,可以将结果固定下来。因为每次都是随机的,不固定住的,结果可能会不一样。

点击开始聚类,即可生成聚类结果。

注:没完成一个操作,在任务栏就会生成这次操作的代码,运行这部分代码和操作工具箱得到的结果是一样的。

三、计算统计量解释聚类结果

自行选择数据源,然后点击“计算不同簇的统计量”,可以从数据特征中找到这3类的特点。

比如,第一类的特点就是花萼长和花瓣长最小,花萼宽最大;第二类特点花萼长最大和花瓣长最大。

四、二维和三维散点图

得到的散点图更加直观。

聚类中心的位置就是每一个簇的中心位置

 上面这个图第一类和第二类,一个靠近y州上面,一个靠近x轴右边,说明这俩类一个花萼宽更大,一个花萼长更大,第二类则位于中间。

鉴于后面的绘图都需要完整版,目前完整版又用不起,就没看后面的视频了。

五、区域图

六、平行坐标图

七、箱线图

八、主成分分析图

九、分组散点图矩阵

十、对聚类结果假设检验

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

idea 安装免费Ai工具 codeium

目录 概述 ide安装 使用 chat问答 自动写代码 除此外小功能 概述 这已经是我目前用的最好免费的Ai工具了,当然你要是有钱最好还是用点花钱的,比如copilot,他可以在idea全家桶包括vs,还有c/c的vs上运行,还贼强&am…

数据加密-mysql

想要实现数据加密可以在mysql数据库表实现数据加密,来确保数据安全。下面就是加密算法AES_ENCRYPT,其他加密算法类似。 1 创建一张临时表test_table CREATE TABLE test_table (name varchar(20) DEFAULT NULL,id blob ) ENGINEInnoDB DEFAULT CHARSETu…

【JavaEE】_基于UDP实现网络通信

目录 1. 服务器 1.1 实现逻辑 1.2 代码 1.3 部分代码解释 2. 客户端 2.1 实现逻辑 2.2 代码 2.3 客户端部分代码解释 3. 程序运行结果 4. 服务器客户端交互逻辑 此篇内容为实现UDP版本的回显服务器echo server; 普通服务器:收到请求&#xff…

领略指针之妙

𝙉𝙞𝙘𝙚!!👏🏻‧✧̣̥̇‧✦👏🏻‧✧̣̥̇‧✦ 👏🏻‧✧̣̥̇:Solitary-walk ⸝⋆ ━━━┓ - 个性标签 - :来于“云”的“羽球人”。…

【高等数学之极限】

一、引言 我们先思考一下,上面三个表达式,是否可以将极限值直接代入求值,我们在计算之前需要先分析一下,如果将极限值代入,那么表达式将会变成什么形式? 经过上面的分析,我们发现第一个式子可以直接带入&a…

微电网优化MATLAB:遗传算法(Genetic Algorithm,GA)求解微电网优化(提供MATLAB代码)

一、微网系统运行优化模型 微电网优化是指通过对微电网系统中各个组件的运行状态进行监测和调节,以实现微电网系统的高效运行和能源利用的最大化。微电网是由多种能源资源(如太阳能、风能、储能等)和负载(如建筑、工业设备等&…

通用人工智能的能力评估框架-Levels of AGI Operationalizing Progress on the Path to AGI

通用人工智能的能力评估框架-Levels of AGI: Operationalizing Progress on the Path to AGI 译自’Levels of AGI: Operationalizing Progress on the Path to AGI’,有所删节.笔者能力有限,敬请勘误。 摘要 Google DeepMind提出一种针对通用人工智能 …

端口映射的定义、特点、场景、实例、常见问题回答(Port Mapping)

目 录 一、端口映射(Port Mapping) 二、端口映射应用场景(什么时候用到端口映射) (一)、使用端口映射的条件 (二)使用端口映射的具体场景 三、端口映射技术的特点 …

LLM之RAG实战(十七)| 高级RAG:通过使用LlamaIndex重新排序来提高检索效率

基本RAG的检索是静态的,会检索到固定数字(k)个相关文档,而如果查询需要更多的上下文(例如摘要)或更少的上下文,该怎么办? 可以通过在以下两个阶段来实现动态检索: 预检索…

Python对Excel文件中不在指定区间内的数据加以去除的方法

本文介绍基于Python语言,读取Excel表格文件,基于我们给定的规则,对其中的数据加以筛选,将不在指定数据范围内的数据剔除,保留符合我们需要的数据的方法。 首先,我们来明确一下本文的具体需求。现有一个Exc…

Centos 7 单机部署 consul

一、下载安装 参考官网文档 Install | Consul | HashiCorp Developer 进入Centos 执行下面命令 sudo yum install -y yum-utils sudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo sudo yum -y install consul 这种方法安装完成…

Javascript简介(全部是基础)

js初识 js是一种解释性语言,不需要编译,直接由浏览器解析执行 组成 ECMAScript是一种开放的,被国际上广为接收的,标准的脚本语言规范,主要描述:语法,变量,数据类型,运算…

什么是DOM?(JavaScript DOM是什么?)

1、DOM简洁 DOM是js中最重要的一部分,没有DOM就不会通过js实现和用户之间的交互。 window是最大的浏览器对象,在它的下面还有很多子对象,我们要学习的DOM就是window对象下面的document对象 DOM(Document Object Model&#xff09…

C++ 学习系列 -- std::function 与 std::bind

一 std::function 与 std::bind 的介绍 1. std::function std::function 是 c 11 的新特性 &#xff0c;包含在头文件<functional>中&#xff0c;为了更方便的调用函数而引入。 std::function 是一个函数包装器&#xff08;function wrapper&#xff09;&#xff0c;…

Cmake(1)——Cmake的基本介绍和原理、Cmake的安装、如何使用Cmake构建项目

Cmake的基本介绍和原理、Cmake的安装、如何使用Cmake构建项目 插播&#xff01;插播&#xff01;插播&#xff01;亲爱的朋友们&#xff0c;我们的Cmake课程上线啦&#xff01;感兴趣的小伙伴可以去下面的链接学习哦~ https://edu.csdn.net/course/detail/39261 1、Cmake的基…

在微信公众号中加入ChatGPT聊天的方法

1 介绍 开源项目 "chatgpt-on-wechat" 支持通过微信公众号进行调用&#xff0c;这意味着用户可以在与公众号的交互中体验 ChatGPT。由于服务是部署在远端服务器上的&#xff0c;因此用户只需拥有一部手机&#xff0c;就可以在任何环境下与 ChatGPT 进行交流。例如&am…

fabric.js 组件 图片上传裁剪并进行自定义区域标记

目录 0. 前言 1. 安装fabric与引入 2. fabric组件的使用 3. 属性相关设置 4. 初始化加载 4. 方法 5. 全代码 0. 前言 利用fabric组件&#xff0c;实现图片上传、图片”裁剪“、自定义的区域标记一系列操作 先放一张效果图吧&#x1f447; 1. 安装fabric与引入 npm i …

Flink(十三)【Flink SQL(上)SqlClient、DDL、查询】

前言 最近在假期实训&#xff0c;但是实在水的不行&#xff0c;三天要学完SSM&#xff0c;实在一言难尽&#xff0c;浪费那时间干什么呢。SSM 之前学了一半&#xff0c;等后面忙完了&#xff0c;再去好好重学一遍&#xff0c;毕竟这玩意真是面试必会的东西。 今天开始学习 Flin…

“GPC爬虫池有用吗?

作为光算科技的独有技术&#xff0c;在深入研究谷歌爬虫推出的一种吸引谷歌爬虫的手段 要知道GPC爬虫池是否有用&#xff0c;就要知道谷歌爬虫这一概念&#xff0c;谷歌作为一个搜索引擎&#xff0c;里面有成百上千亿个网站&#xff0c;对于里面的网站内容&#xff0c;自然不可…

虚拟机安装宝塔的坑

问题&#xff1a; 在虚拟机中centos7和centos8中安装宝塔之后&#xff0c;无法访问面板。 解决&#xff1a; 1.先关闭防火墙&#xff08;如果本机能够ping通相关端口&#xff0c;则不用关闭防火墙&#xff09; 2.最新的宝塔会自动开启ssl协议&#xff0c;需要手动关闭。…
最新文章