数学建模-数据的处理

news2024/11/25 2:36:01

MATLAB数学建模方法与实践(第3版)——读书笔记

  • 数据的准备
    • 数据获取
    • 数据处理
      • 缺失值处理
      • 噪音过滤
      • 数据集成
      • 数据归约
      • 数据变换
        • 标准化
        • 离散化
    • 数据统计
      • 基本描述性统计
      • 分布描述性统计
    • 数据可视化
    • 数据降维
      • 主成分分析(PCA)
      • 相关系数降维

数据的准备

数据获取

%1.从excel读取数据
xlsread('excel所在位置',3,'B1:C5')
%3代表sheet3;B1:C5代表读入数据范围
%写入
xlsread('excel所在位置',a,3,'B1:C5')
%a代表待写入数据;3代表sheet3;B1:C5代表具体位置


%2.从TXT读取数据
load('***.txt')
%保存
save c:\***.txt a -ascii;
%a是变量 以ASCII码存放


%3.如果TXT文件存储了不同类型数据,分类读取就需要textread
[name,type,x,y,answer]=textread('**.txt','format',N,'headerlines',M)
%format 代表格式;N表示读取的次数,每次读一行;headerlines表示从M+1行开始读取。


%4.将信息写入TXT,可以控制写入精度
file=fopen('**.txt','w')
fprintf(file,'%6.2f',3.14)%6.2f表示输出宽度为6,精确到小数点2位


%5.读取图片
A=imread(filename)
%A存放像素矩阵


%6.读入并将图像拼接。此程序需要一定的算法提高拼接正确率
%% 读取图片
%链接:https://pan.baidu.com/s/1Ow6L7a-ArvFllaK4M6j4tw 
%提取码:sqyx
%链接:https://pan.baidu.com/s/1z0NPoyB96CT4FEQUJsZCfg 
%提取码:u3df
% 《MATLAB数学建模方法与实践》(《MATLAB在数学建模中的应用》升级版),北航出版社,卓金武、王鸿钧编著. 
clc, clear, close all
a1=imread('000.bmp');
[m,n]=size(a1);
%% 批量读取图片
dirname = 'ImageChips';
files = dir(fullfile(dirname, '*.bmp'));
a=zeros(m,n,19);
pic=[];
for ii = 1:length(files)
  filename = fullfile(dirname, files(ii).name);
  a(:,:,ii)=imread(filename);
  pic=[pic,a(:,:,ii)];
end
double(pic);
figure
imshow(pic,[])


%7.读取视频
%% 读取视频数据
% 《MATLAB数学建模方法与实践》(《MATLAB在数学建模中的应用》升级版),北航出版社,卓金武、王鸿钧编著. 
videoFReader = vision.VideoFileReader('vippedtracking.mp4');%写上自己视频的名字

% 播放视频文件
videoPlayer = vision.VideoPlayer;
while ~isDone(videoFReader)
  videoFrame = step(videoFReader);
  step(videoPlayer, videoFrame);
end
release(videoPlayer);

%% 设置播放方式
% 重置播放器
reset(videoFReader)
% 增加播放器的尺寸
r = groot;
scrPos = r.ScreenSize;
%  Size/position is always a 4-element vector: [x0 y0 dx dy]
dx = scrPos(3); dy = scrPos(4);
videoPlayer = vision.VideoPlayer('Position',[dx/8, dy/8, dx*(3/4), dy*(3/4)]);
while ~isDone(videoFReader)
  videoFrame = step(videoFReader);
  step(videoPlayer, videoFrame);
end
release(videoPlayer);
reset(videoFReader)

%% 获取视频中的图像
videoFrame = step(videoFReader);
n = 0;
while n~=15
  videoFrame = step(videoFReader);
  n = n+1;
end
figure, imshow(videoFrame)
release(videoPlayer);
release(videoFReader)

数据处理

缺失值处理

  • 删除法:删除小部分

在这里插入图片描述

  • 插补法:
    a. 均值插补:定距用平均值、非定距用众数。
    b. 回归插补。
    c.极大似然估计(ML):观测数据的边际分布对未知参数进行极 大似然估计。也可以通过期望最大化来参数估计。有效样本的数量足够保证ML估计值是渐进无偏的并服从正态分布。

噪音过滤

noise是数据随机误差,正常的,但会影响变量真值反映。

方法有:

  • a. 回归法:前提是要有线性趋势。
    回归法是用函数拟合数据来光滑数据,线性回归得到两个属性的最佳直线,使得通过一个预测另一个。多元线性回归的属性多于两个。通过回归后的函数值代替原始数据,避免噪声感染。
  • b.均值平滑法:前提是具有序列特征的变量。
    用临近的若干数据均值替换原来数据。
  • c. 离散点分析:通过聚类的方法检测离散点,删除它。
  • d.小波过滤法:本质是一个函数逼近问题。
    即如何在小波母函数伸缩和平移所展成的函数空间中,根据提出的衡量准则,对原信号的最佳逼近,完成原信号和噪声信号的区分。也就是从实际信号空间到小波函数空间的最佳映射,从而得到原信号的最佳恢复。

数据集成

将分散的数据源中的数据,集成到一个统一的数据集合。(针对数学建模。就是获取所需要的数据)

数据归约

  • 属性选择:删除不相关的属性:通过数据相关性分析、数据统计分析、数据可视化、主成分分析。
  • 样本选择。

数据变换

标准化

在这里插入图片描述

离散化

  • 离散化:消除连续观察点之间的差异
  • 语义转换:将{非常好,好,一般,差,非常差}–>{1,2,3,4,5}

数据统计

基本描述性统计

  • 表示位置的统计量:算术平均值和中位数
    在这里插入图片描述

  • 表示数量散度的统计量:方差、极差、标准差
    在这里插入图片描述

  • 表示分布形态的统计量:偏度和峰度
    在这里插入图片描述

分布描述性统计

在这里插入图片描述

数据可视化

柱状图和基本绘图

% 数据可视化——基本绘图
% 《MATLAB数学建模方法与实践》(《MATLAB在数学建模中的应用》升级版),北航出版社,卓金武、王鸿钧编著. 
% 读取数据
clc, clear al, close all
X=xlsread('dataTableA2.xlsx');
% 绘制变量dv1的基本分布
N=size(X,1);
id=1:N;
figure
plot( id', X(:,2),'LineWidth',1)
set(gca,'linewidth',2);
xlabel('编号','fontsize',12);
ylabel('dv1', 'fontsize',12);
title('变量dv1分布图','fontsize',12);
% 同时绘制变量dv1-dv4的柱状分布图
figure
subplot(2,2,1);
hist(X(:,2));
title('dv1柱状分布图','fontsize',12)
subplot(2,2,2);
hist(X(:,3));
title('dv2柱状分布图','fontsize',12)
subplot(2,2,3);
hist(X(:,4));
title('dv3柱状分布图','fontsize',12)
subplot(2,2,4);
hist(X(:,5));
title('dv4柱状分布图','fontsize',12)

在这里插入图片描述
在这里插入图片描述

hist(x) 基于向量 x 中的元素创建直方图条形图。x 中的元素有序划分入 x 轴上介于 x 的最小值和最大值间的 10 个等间距 bin 中。hist 将 bin 显示为矩形,这样每个矩形的高度就表示 bin 中的元素数量。

标记常用度量值

% 数据可视化——数据分布形状图
% 《MATLAB数学建模方法与实践》(《MATLAB在数学建模中的应用》升级版),北航出版社,卓金武、王鸿钧编著. 
% 读取数据
clc, clear al, close all
X=xlsread('dataTableA2.xlsx');
dv1=X(:,2);

% 绘制变量dv1的柱状分布图
h = -5:0.5:5;
n = hist(dv1,h);
figure
bar(h, n)

% 计算常用的形状度量指标
mn = mean(dv1); % 均值
sdev = std(dv1); % 标准差
mdsprd = iqr(dv1); % 四分位数
mnad = mad(dv1); % 中位数
rng = range(dv1); % 极差

% 标识度量数值

%四分位数值
x = round(quantile(dv1,[0.25,0.5,0.75]));%quantile函数中dv1是矩阵或者向量,[0.25,0.5,0.75]是百分比
y = (n(h==x(1)) + n(h==x(3)))/2;
line(x,[y,y,y],'marker','x','color','r')%line(x,y) 使用向量 x 和 y 中的数据在当前坐标区中绘制线条。如果 x 和 y 中有一个是矩阵或两者都是矩阵,则 line 将绘制多个线条。与 plot 函数不同,line 会向当前坐标区添加线条,而不删除其他图形对象或重置坐标区属性。
%标准差
x = round(mn + sdev*[-1,0,1]);
y = (n(h==x(1)) + n(h==x(3)))/2;
line(x,[y,y,y],'marker','o','color',[0 0.5 0])
%中位数
x = round(mn + mnad*[-1,0,1]);
y = (n(h==x(1)) + n(h==x(3)))/2;
line(x,[y,y,y],'marker','*','color',[0.75 0 0.75])
%最大最小值
x = round([min(dv1),max(dv1)]);
line(x,[1,1],'marker','.','color',[0 0.75 0.75])

legend('Data','Midspread','Std Dev','Mean Abs Dev','Range')

在这里插入图片描述

数据关联可视化

% 数据可视化——变量想相关性
% 《MATLAB数学建模方法与实践》(《MATLAB在数学建模中的应用》升级版),北航出版社,卓金武、王鸿钧编著. 
% 读取数据
clc, clear al, close all
X=xlsread('dataTableA2.xlsx');
Vars = X(:,7:12);
%  绘制变量间相关性关联图
figure
plotmatrix(Vars)
%plotmatrix(X,Y) 创建一个子坐标区矩阵,包含了由 X 的各列相对 Y 的各列数据组成的散点图。
%plotmatrix(X) 与 plotmatrix(X,X) 相同。例如,用 histogram(X(:,i)) 替换了第 i 列中对角线上的子坐标区
%  绘制变量间相关性强度图
covmat = corrcoef(Vars);
%R = corrcoef(A) 返回 A 的相关系数的矩阵,其中 A 的列表示随机变量,行表示观测值。
figure
imagesc(covmat);
grid;
colorbar;

在这里插入图片描述
在这里插入图片描述
相关系数举例:
在这里插入图片描述

数据分组可视化

在这里插入图片描述

% 数据可视化——数据分组
% 《MATLAB数学建模方法与实践》(《MATLAB在数学建模中的应用》升级版),北航出版社,卓金武、王鸿钧编著. 
% 读取数据
clc, clear al, close all
X=xlsread('dataTableA2.xlsx');
dv1=X(:,2);
eva=X(:,12);
% Boxplot
figure
boxplot(X(:,2:12))
figure
boxplot(dv1, eva)
figure
boxplot(X(:,5))
%boxplot(x) 创建 x 中数据的箱线图。如果 x 是向量,boxplot 绘制一个箱子。如果 x 是矩阵,boxplot 为 x 的每列绘制一个箱子。在每个箱子上,中心标记表示中位数,箱子的底边和顶边分别表示第 25 个和 75 个百分位数。须线会延伸到不是离群值的最远端数据点,离群值会以 '+' 符号单独绘制。

数据降维

主成分分析(PCA)

数学建模常用算法之主成分分析

相关系数降维

在这里插入图片描述

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

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

相关文章

K8S 使用(1)- 基本命令

根据上文完成部署k8s后,我们需要了解如何使用k8s.首先我们需要了解如何使用K8S的一些基础命令及主要概念。 尚不清楚如何部署的请参考:单master部署简要步骤 如果您熟悉了k8s基本命令,可以跳过此章节。 目录 先看一下这张图 2. 节点 nod…

2.2、IOC容器的实现流程

​一、类图 二、容器的实现接口 Spring容器并不是只有一个。Spring自带多个容器实现,可以归位两种不同的类型。 (1)Bean工厂(由org.springframework.beans.factory.BeanFactory接口定义)是简单的容器实现工厂&#x…

数学内容的概述

前言 作为一名文科生,学习编程最大的阻碍莫过于数学知识。 学习数学的必要性 跟开发APP和后台服务器相比,机器学习、深度学习需要大量的数学知识。 数据处理和清洗:数据分析涉及大量的数据处理和清洗工作,需要掌握基本的数学概…

linux系统LAMP架构

文章目录 一、LAMP简介与概述二、LAMP各组件主要作用1.构建LAMP平台顺序 三、编译安装Apache httpd服务1.将所需软件安装包下载到/opt目录下解压2.移动两个文件并改名3.安装依赖环境4.编译安装5.做软连接,使文件可执行6.优化配置文件路径,并把httpd服务的…

《面试1v1》Redis主从架构

🍅 作者简介:王哥,CSDN2022博客总榜Top100🏆、博客专家💪 🍅 技术交流:定期更新Java硬核干货,不定期送书活动 🍅 王哥多年工作总结:Java学习路线总结&#xf…

crossover虚拟机软件好用吗?22.1.1版本有哪些优点

苹果系统虽然安全稳定,但有些应用程序并不提供苹果系统的安装包,使用双系统或在苹果电脑安装虚拟机可以帮我们提升设备使用效率,除了这两种解决方案外,还可以使用类虚拟机软件crossover,crossover mac的优点在于不会占…

使用HTTP/2实现服务端主动推送消息给客户端

77. 使用HTTP/2实现服务端主动推送消息给客户端 HTTP/2协议的服务器主动推送机制是通过服务器在接收到客户端请求后,主动向客户端推送相关资源的方式来实现的。下面将详细解释如何在服务器端和客户端实现HTTP/2的服务器主动推送,并给出相应的代码示例。…

华为OD机试真题(Java),素数伴侣(100%通过+复盘思路)

一、题目描述 若两个正整数的和为素数,则这两个正整数称之为“素数伴侣”,如2和5、6和13,它们能应用于通信加密。现在密码学会请你设计一个程序,从已有的 N ( N 为偶数)个正整数中挑选出若干对组成“素数伴…

老鸟是这样实现springboot日志打印的~

文章目录 前言一、实现一个全局日志打印二、使用步骤1. 新增一个自定义注解2. 拦截注解,并实现相应的打印日志功能3. 使用 总结 前言 项目中有时候为了与前端,与后端(微服务/远程调用http) 等撕逼,我们不得不做好应对措施,最终的就是打印清晰我们的入参出参日志,这为以后撕逼,…

Nik Silver Efex 黑白胶片效果滤镜

Nik Silver Efex 为获得优质黑白效果而精心设计算法,是世界领先级的黑白胶片滤镜集。 内置 64 个黑白(包括单色、双色等)预设供选择,主要分为经典 Classic、现代 Modern、复古 Vintage、阿弗格 En Vogue等四大风格,另外…

银行数字化转型导师坚鹏:兴业银行《天才与算法》读书拆解培训

兴业银行杭州分行《天才与算法》读书拆解培训圆满结束 兴业银行股份有限公司(简称“兴业银行”)成立于1988年8月,2022年总资产9.27万亿元,是经国务院、中国人民银行批准成立的首批股份制商业银行之一,总行设在福州市。…

【MySQL 高级(进阶)SQL 语句】

目录 一、命令操作1、select ----显示表格中一个或数个字段的所有数据记录2、select 指定字段的显示顺序3、select distinct 不显示重复的数据记录4、where 有条件的查询5、and和or 命令 ---- 且和或6、in 显示已知的值的数据记录7、between 显示两个值范围内的数据记录8、通配…

最短路径算法(Python数学建模)

0. 前言 最短路径算法是一种用于计算图中两个节点之间最短路径的算法。在图论中,最短路径通常指的是图中连接两个节点的路径中具有最小权重(或成本)的路径。 以下是两种常见的最短路径算法: Dijkstra算法:Dijkstra算…

Python对csv文件一键多值保存为json本地文件再读取加速效率(3)

最近发现做办公自动化表格匹配的时候还是csv格式的文件最快、效率是最高的 今天接到一个需求就是大致内容之这样的 1、给我一张表格直邮一列A列,内容是运单号 2、需要用相同的单号去另外一张表格匹配数据 3、其实就是Excel中的常见的vlookup 但是想要匹配的表格有几…

D351周赛复盘:美丽下标对数目(互质/数学运算)+数组划分若干子数组

文章目录 6466.美丽下标对数目思路互质的含义 python写法cpp写法 6910. 将数组划分成若干好子数组的方式思路完整版ans (ans * (ls[i 1] - ls[i]))含义重要问题1:为什么ls[i 1] - ls[i]能代表所有这两个1划分出来的子数组?重要问题2:为什么…

java 版本企业招标投标管理系统源码,多个行业+及时准确+全程电子化

计算机与网络技术的不断发展,推动了社会各行业信息化的步伐。时至今日,电子政务、电子商务已经非常普及,云计算、大数据、工业4.0、“互联网”等发展理念也逐步深入人心,如何将传统行业与互联网科技有效结合起来,产生1…

谷歌浏览器无法翻译成中文,谷歌翻译,最新(沉浸式翻译和划词翻译,chrome无法翻译,谷歌浏览器无法翻译此网页)

简介:谷歌浏览器自带的翻译功能,对我们来说用处很大,但有的时候突然就会变成“无法翻译此网页”,之前给大家提供过两种无法翻译此网页的解决方案,这次再给大家分享下两款别的翻译方法; 一、上次介绍&#x…

如何用ChatGPT使开发效率提高50%以上?

简介 ChatGPT是一个大型语言模型,由OpenAI开发。它被训练用于进行对话式交互,能够理解和生成自然语言文本。ChatGPT可以用于多种任务和场景,包括但不限于:智能助手、创意生成、语言学习、编程辅助等。ChatGPT的优势在于它的广泛知…

搭建个人音乐库-navidrome

文章目录 前言navidrome 服务搭建准备音乐材料客户端 前言 搭建个人音乐库。好玩而已。 没有做过多的筛选。在navidrome 和 koel 之间,选择了navidrome来搭建音乐库。 主要分为这几个步骤: 在服务器上搭建navidrome服务(web端)。准备音乐材料。手机上…

免费去除视频水印的几个方法!记得收藏好!

怎么去除视频水印?相信大家应该不难发现,现在很多网上的视频保存下来都会有水印,原本是想拿这些视频当作素材来使用,结果就是让人很苦恼,但其实我们可以借助记灵在线工具将它们的水印去掉,下面我给大家分享…