数学建模 matlab 数据建模基础

article/2025/8/26 18:01:57

一、数据的获取

1.从Excel中读取数据

(1)xlsread函数 :从EXCEL读入数据到MATLAB中。
例如:
在这里插入图片描述
a = xlsread(‘D:\adc.xlsx’,1,‘A1:D2’)
其中,‘D:\abc.xlsx’表示读入的EXCEL数据所在的路径以及EXCEL的文件名称;1表示位于sheet1;'A1:D2’表示需要读入的数据范围。
在这里插入图片描述
(2)xlswrite函数:从MATLAB中往EXCEL写入数据。
xlswrite(‘D:\adc.xlsx’,a,1,‘A1:D2’)
其中,‘D:\abc.xlsx’表示写入EXCEL工作簿所在的位置,如果指定位置不存在指定的EXCEL文件,则MATLAB会自动创建工作簿;a表示待写入的数据;1表示sheet1;'A1:D2’表示写入EXCEL中的具体位置。
在这里插入图片描述
注意,不要在MATLAB正在读写操作的时候打开EXCEL工作簿,这样有可能使程序终止运行。

2.从TXT中读取数据

(1)load函数:从TXT中读取数据。
load(‘***.txt’)
实操:
在这里插入图片描述
在这里插入图片描述
(2)textread函数: 如果TXT文件中存储了不同类型的字符或者数据,分类读取数据就需要使用textread函数了。textread读取信息的好处是,可以做到控制输出更精准,以及不需要使用fopen命令打开文件就可以直接读取TXT里的内容。
[A,B,C,…]=textread(‘filename’,‘format’,N,‘headerlines’,M)
其中,filename表示需要读取的TXT文件名称;format表示所读取变量的字段格式;N表示读取的次数,每一次读取一行;headerlines表示从第M+1行开始读入。
实操:
在这里插入图片描述

3.读取图片

imread函数: MATLAB中读取图片的常用函数。
A = imread(filename)
A = imread(filename,fmt)
A = imread(___,idx)
A = imread(___,Name,Value)
[A,map] = imread(___)
[A,map,transparency] = imread(___)

其中,A为返回的数组,用于存放图像中的像素矩阵。
实操:
在这里插入图片描述
在这里插入图片描述

4.读取视频

VideoFileReader :在MATLAB中使用计算机视觉工具箱中的VideoFileReader来读取视频数据,包括mp4、avi等格式的视频文件。
实操:
![在这里插入图片描述]](https://img-blog.csdnimg.cn/20200530202023784.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1MDU5NDU3,size_16,color_FFFFFF,t_70)
在这里插入图片描述
在这里插入图片描述
运行结果:
在这里插入图片描述

5.总结

(1)用xlsread(),xlswrite()函数从Excel读取数据
(2)用textread()函数读取txt文档
(3)用imread()函数读取图片
(4)工具箱中VideoFileReader来读取视频数据

二、数据的预处理

为什么需要数据预处理?
原因:
收集数据的设备可能出故障;
输入错误数据;
当用户不希望提交个人信息时,可能故意向强制输入字段输入不正确的值;
错误也可能在数据传输中出现,这些可能是由于技术的限制。
由命名约定或所用的数据代码不一致,或输入字段的格式不一致而导致的。
影响数据质量的另外两个因素是可信性和可解释性。可信性反映有多少数据是用户信赖的,而可解释性反映数据是否容易理解。
我们并不需要过多关注数据质量差的原因,只需关注如何让数据质量更好,也就是说,如何对数据进行预处理,以提高数据质量,满足数据挖掘的需要。

1.缺失值处理

(1)均值插补。如果缺失值是定距型的,就以该属性存在值的平均值来插补缺失的值;如果缺失值是非定距型的,就根据统计学中的众数原理,用该属性的众数来补齐缺失的值;如果数据符合较规范的分布规律,则还可以用中值插补。
( 2)回归插补。利用线性或非线性回归技术得到的数据来对某个变量的缺失数据进行插补。

在这里插入图片描述
( 3)极大似然估计。在缺失类型为随机缺失的条件下,假设模型对于完整的样本是正确的,那么通过观测数据的边际分布可以对未知参数进行极大似然估计。

2.噪声过滤

1、回归法:用一个函数拟合数据来光滑数据。
在这里插入图片描述

2、均值平滑法:对于具有序列特征的变量用邻近的若干数据的均值来替换原始数据的方法。
在这里插入图片描述
3、离群点分析:通过聚类等方法来检测离群点,并将其删除,从而实现去噪的方法。
4、小波过滤法(又称小波去噪):在数学上,小波去噪问题的本质是一个函数逼近问题,即如何在由小波母函数伸缩和平移所展成的函数空间中,根据提出的衡量准则,寻找对原信号的最佳逼近,以完成原信号和噪声信号的区分。
在这里插入图片描述

3.数据集成

数据集成就是将若干个分散的数据源中的数据,逻辑地或物理地集成到一个统一的数据集合中
实现数据集成的系统称作数据集成系统,它为用户提供统一的数据源访问接口,执行用户对数据源的访问请求。
在这里插入图片描述

4.数据归约

数据归约的目的:得到能够与原始数据集近似等效甚至更好但数据量却较少的数据集。
在这里插入图片描述

5.数据变换

数据变换是指将数据从一种表示形式变为另一种表现形式的过程。
在这里插入图片描述

三、数据的统计

1.基本描述性统计

在这里插入图片描述

2.分布描述统计

在这里插入图片描述

3.总结

(1)表示位置的统计量:算术平均值和中位数
(2)表示数据散点的统计量:标准差、方差和极差
(3)表示分布形状的统计量:偏度和峰度

四、数据可视化

1.基本可视化

基本可视化是最常用的方法。在对数据进行可视化探索时,通常先用plot这样最基本的绘图命令来绘制各变量的分布趋势,以了解数据的基本特征。
实操:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
上图是用plot绘制的数据最原始的分布形态,通过该图能了解数据大致的分布中心、边界、数据集中程度等信息。

2.数据分布形状可视化

在数据建模中,数据的分布特征对我们了解数据是非常有利的。
在这里插入图片描述

3.数据关联可视化

数据关联可视化对分析哪些变量更有效具有更直观的效果,所以在进行变量筛选前,可以先利用关联可视化了解各变量间的关联关系。
实操:
在这里插入图片描述

变量间相关性关联图
在这里插入图片描述
绘制变量间相关性强度图
在这里插入图片描述

4.数据分组可视化

数据分组可视化是指按照不同的分位数将数据进行分组,典型的图形是箱体图。箱体图的含义如下图所示。
在这里插入图片描述
绘制箱体图的MATLAB命令是boxplot。
实操:
在这里插入图片描述
画所有变量的箱体图
在这里插入图片描述
绘画dv1和eva两个变量的箱体图
在这里插入图片描述

5.总结

(1)基本可视化看总体
(2)分布可视化辨别各个变量是否对数据建模有意义
(3)数据关联可视化在进行变量筛选前使用
(4)数据分组可视化可以看出分布特征和异常值得数量,典型图形是箱体图,绘制箱体图的MATLAB命令是boxplot。

五、数据降维

1.主成分分析(PCA)基本原理及算法步骤

主成分分析是采取一种数学降维的方法,其所要做的就是设法将原来众多具有一定相关性的变量,重新组合为一组新的相互无关的综合变量来代替原来变量。
算法步骤
(1)对原始数据进行标准化处理
(2)计算样本相关系数矩阵
(3)计算相关系数矩阵的特征值和相应的特征向量
(4)选择重要的主成分,并写出主成分表达式
(5)计算主成分得分
(6)依据主成分得分的数据,进一步对问题进行后续的分析和建模。

2.案例

为了系统分析某IT类企业的经济效益,选择了8个不同的利润指标,对15家企业进行了调研,并得到下表所示的数据。请根据这些数据对这15家企业进行综合实力排序。
在这里插入图片描述
代码:
%% 导入数据
clc, clear, close all
A = xlsread(‘D:\数学建模\第3章 数据建模基础\5.数据降维\Coporation_evaluation.xlsx’,‘Sheet1’,‘B2:I16’);

%%数据标准化处理
a=size(A,1);
b=size(A,2);
for i=1:b
SA(:,i)=(A(:,i)-mean(A(:,i)))/std(A(:,i))
end

%%特征值、特征向量
CM=corrcoef(SA)
[V,D]=eig(CM)
for j=1:b
DS(j,1)=D(b+1-j,b+1-j)
end
for i=1:b
DS(i,2)=DS(i,1)/sum(DS(:,1));
DS(i,3)=sum(DS(1:i,1))/sum(DS(:,1))
end
T=0.9;
for K=1:b
if DS(K,3)>=T
Com_num=K;
break;
end
end

%%提取主成分对应的特征向量
for j=1:Com_num
PV(:,j)=V(:,b+1-j);
end

new_score=SA*PV;
for i=1:a
total_score(i,2)=sum(new_score(i,:))
total_score(i,1)=i;
end
new_score_s=sortrows(total_score,-2)

%%显示结果
disp(‘特征值及贡献率:’)
DS
disp(‘阀值T对应的主成分数与特征向量:’)
Com_num
PV
disp(‘主要分分数:’)
new_score
disp(‘主成分分数排序:’)
new_score_s

运行结果:
主成分分数排序:

new_score_s =

9.0000 4.2350
1.0000 3.9717
8.0000 2.3677
6.0000 1.9710
5.0000 1.7984
13.0000 1.1033
15.0000 0.7527
14.0000 0.1682
2.0000 -0.2923
10.0000 -1.0075
7.0000 -1.5238
4.0000 -2.0545
11.0000 -2.5137
3.0000 -3.6435
12.0000 -5.3327

3.相关系数降维

相关系数用r表示,r在-1到+1之间取值。相关系数r 的绝对值大小(即| r |),表示两个变量之间的直线相关强度;相关系数r的正负号,表示相关的方向,分别是正相关和负相关。
| r | =0:零相关;
| r | =1:完全相关。
0.7<|r |<1:高度相关;
0.4<|r |<0.7:中度相关;
0.2<|r |<0.4:低度相关;
|r |<0.2:极低相关或接近零相关。

4.总结

(1)数据的读取有表格的读取,txt文档的读取,照片和视频的读取等等。
(2)数据的预处理帮助我们优化数据,满足建模需要。
(3)数据统计我们可以从算数平均值、中位数、标准差、方差、极差、偏度、峰度、概率分布函数、概率密度函数入手。
(4)数据的可视化让我们更好掌握数据的总体情况和各个变量的重要性。
(4)数据降维有两种方法:主成分分析法和相关系数法。


http://chatgpt.dhexx.cn/article/dPvfZZU6.shtml

相关文章

【数学建模】数学建模(一)——数学模型概述

一. 模型 1. 原型和模型 原型指人们在现实世界里关心、研究或从事生产、管理的实际对象。模型则指为了某个特定目的将原型的某一部分信息简缩、提炼而构造的原型替代物。 按照模型替代原型的方式&#xff0c;模型可以分为物质模型&#xff08;形象模型&#xff09;和理想模型&a…

数学建模——MATLAB基础知识

前言&#xff1a;MATLAB和我们平时学的C语言相类似&#xff0c;大体也是由于三部分组成的。任何的复杂的程序由顺序结构&#xff0c;选择结构&#xff0c;循环结构组成的。 一、顺序结构 1.数据的输入&#xff1a; input 用法&#xff1a;Ainput(字符串)-->>影响程序流…

数学建模竞赛基础知识

国际大学生数学建模 世界大学生数学建模 美国大学生数学建模竞赛&#xff0c;一个比赛多个称呼而已&#xff0c;美赛是一项面向高中生、大学本科层次的一个国际性比赛。 美赛可分为两种&#xff1a; The Mathematical Contest in Modeling (MCM): 俗称数学建模竞赛&#xf…

数学建模——基础

目录 第1章 MATLAB基础知识 1&#xff0c;矩阵的表示 1&#xff0c;数值矩阵的生成 2&#xff0c;符号矩阵的生成 3&#xff0c;特殊矩阵生成 4&#xff0c;一般矩阵运算 5&#xff0c;基本图形绘制 6&#xff0c;简单图像处理 7&#xff0c;建立函数文件/.M文件 8&a…

数据库除法理解

理解 给定关系R和关系S&#xff0c;求RS。 关系R和关系S拥有共同的属性A2、A3 &#xff0c; 首先确定得到的属性为A1。&#xff08;RS得到的属性是关系R包含而关系S不包含的属性&#xff0c;即A1&#xff09; 其次确定A1中符合条件的属性值为{a,d}。&#xff08;关系R中A1的…

数据库课程设计——MOOC学习平台

文章目录 1. 项目介绍&#xff1a;2.代码部分 1. 项目介绍&#xff1a; 采用JDBC接口连接数据库&#xff0c;简单实现Mooc学习平台相关功能。 2.代码部分 1.方法类 package com.mooc; import untlis.DButlis; import java.sql.PreparedStatement; import java.sql.ResultS…

oracle数据库怎么创建数据库 oracle数据库工作流程

oracle数据库怎么创建数据库 数据库用户的创建、权限的分配 数据库安装完成后&#xff0c;有两个系统级的用户&#xff1a; system 默认密码为&#xff1a;manager sys 默认密码为&#xff1a;change_on_install 在安装的数据库目录中找到 \oracle\product\9.2\bin 中的sq…

数据库复习--并发控制

1、并发控制:为了保证事务的隔离性和一致性&#xff0c;数据库管理系统需要对并发操作进行正确调度 并发控制的主要技术有:封锁、时间戳、乐观控制法、多版本并发控制等 并发操作带来的数据不一致性: 丢失修改:两个事务T1和T2读入同一数据并修改&#xff0c;T2提交的结果破坏了…

gbase 连接数据库

1.gbase客户端 gbase data studio 2.gbase数据源 #数据库驱动 spring.datasource.driver-class-namecom.informix.jdbc.IfxDriver #数据源地址 spring.datasource.urljdbc:informix-sqli://10.2.35.142:9088/mztj:INFORMIXSERVERgbaseserver;NEWCODESETUTF8,zh_cn.UTF8,573…

数据库使用率对比【CSDN指数】

所有数据来自【CSDN指数】 mysql、sqlserver、redis、oracle数据库使用率对比 从以下数据可得&#xff0c;最抢手的数据库依然是【mysql】&#xff0c;但是每年的【11】月份【oracle】的使用率会突然增高&#xff0c;说明很多国有企业年底查数据的时候都会对数据做一次大清洗。…

ClickHouse 数据库建库

1 创建数据库 create database test[ ENGINE Atomic] 库引擎 1 Atomic 2 其他库引擎 MySQL 注意大小写 实验性阶段&#xff0c;使用mysql binlog 日志复制

数据库原理

绪论 数据&#xff1a;描述事物的符号记录称为数据&#xff0c;数据的含义称为语义数据库&#xff08;DB&#xff09;&#xff1a;数据库是长期存储在计算机内&#xff0c;有组织的&#xff0c;可共享的大量数据的集合数据库管理系统&#xff08;DBMS&#xff09;&#xff1a;…

记录一下数据库大作业

查看服务器 select servername python语句增删减改数据但数据库未保存 connect.commit() 这句话一定要加上&#xff0c;是在我发现修改数据后发现数据库并没有保存才知道的 设置登录名安全性 新建登录名后设置各个表的插入、查询等权限&#xff0c;具体是在表的属性然后权…

数据库的介绍

1. 数据库的介绍 数据库(Database DB)是按照数据结构来组织、存储和管理数据的仓库(存储数据的仓库)&#xff0c;它产生于距今六十多年前&#xff0c;随着信息技术和市场的发展&#xff0c;特别是二十世纪九十年代以后&#xff0c;数据管理不再仅仅是存储和管理数据&#xff0c…

【数据库】数据库基本概念和类型

一、数据库基本概念 1、数据 所谓数据&#xff08;Data&#xff09;是指对客观事物进行描述并可以鉴别的符号&#xff0c;这些符号是可识别的、抽象的。它不仅仅指狭义上的数字&#xff0c;而是有多种表现形式&#xff1a;字母、文字、文本、图形、音频、视频等。现在…

Linux下ll命令

ll命令其实就是ls -l&#xff0c;当然如果想显示隐藏信息就是 ls -al。 我个人是特别喜欢ll代替ls -al命令&#xff0c;并且还要有颜色的那种。 今天卸载软件重新安装环境变量怎么都不对了&#xff0c;一生气把环境变量都清空了。命令&#xff1a;unset PATH 然后就手动添加…

【Linux】ll命令报错-bash: ll: command not found

报错信息 &#xff1a; -bash: ll: command not found root用户没有显示 普通用户下&#xff0c;即目录的拥有者&#xff0c;可以使用ll命令 报错原因&#xff1a; root用户在当前目录没权限&#xff0c;或者&#xff0c; ll 并不是Linux 下一个基本的命令&#xff0c;它实际上…

语法分析:LL(1)分析

本篇介绍的LL(1)分析&#xff0c;这是一种自上而下分析的方法&#xff0c;第一个 L 表示从左向右扫描&#xff0c; 第二个 L 表示分析过程是最左推导&#xff0c;(1)表示每次只向前看一个符号进行分析 关于语法描述的概念 本文中&#xff0c;若无特别说明&#xff0c;小写字母[…

Linux命令 ls 和 ll 的使用方法与基本区别

Linux命令 ls 和 ll 的使用方法与基本区别 Linux 命令 ls 和 ll 的使用方法&#xff1a; ll&#xff1a;罗列出当前文件或目录的详细信息&#xff0c;含有时间、读写权限、大小、时间等信息 &#xff0c;像Windows显示的详细信息。ll是“ls -l"的别名。相当于Windows里的…