数学建模-数据的处理

这篇具有很好参考价值的文章主要介绍了数学建模-数据的处理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

数据的准备

数据获取

%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)

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

相关系数降维

数学建模-数据的处理文章来源地址https://www.toymoban.com/news/detail-511367.html

到了这里,关于数学建模-数据的处理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 数学建模--数据预处理

    目录 一、数据统计 1、行列式的最大元素和最小元素 2、求向量的平均值和中值  3、对矩阵做排序  二、数据优化(数据残缺值和异常值的处理) 1、数据残缺 ①插值 ②拟合  ③邻近替换 ④KNN算法填充 2、数据异常 ①拉依达准则 ②替换异常值 3、数据变换 ①0-1标准化 ②z-

    2024年02月01日
    浏览(44)
  • 数学建模:数据的预处理

    🔆 文章首发于我的个人博客:欢迎大佬们来逛逛 常见的数据变换的方式:通过某些简单的函数进行数据变换。 x ′ = x 2 x ′ = x x ′ = log ⁡ ( x ) ∇ f ( x k ) = f ( x k + 1 ) − f ( x k ) begin{aligned}x^{prime}=x^2 \\\\begin{aligned}x^{prime}=sqrt{x}end{aligned} \\\\x\\\'=log(x) \\\\nabla fleft(x_{k})right.=f

    2024年02月11日
    浏览(40)
  • 数据预处理方法整理(数学建模)

    这篇文章主要是整理了一些作者在各种建模比赛中遇到的数据预处理问题以及方法,主要针对excel或csv格式的数据,为后续进行机器学习或深度学习做前期准备 导入库和文件,这里使用的是绝对路径,可改为相对路径 传入的为csv格式的文件,如果是xlsx格式的文件,建议先使

    2024年02月14日
    浏览(54)
  • 【数学建模+数据处理类】2021数学建模国赛B题 乙醇偶合制备C4烯烃

    对附件1中每种催化剂组合,分别研究乙醇转化率、C4烯烃的选择性与温度的关系,并对附件2中350度时给定的催化剂组合在一次实验不同时间的测试结果进行分析。 step1:对实验数据进行探索性分析 数据的预处理(A11的缺失) 可视化、数据关系展示 包括画出各个因变量(不同

    2024年02月16日
    浏览(44)
  • 【数学建模】数据处理与可视化

    两类基本对象 ndarray(N-dimensional Array Object):存储单一数据类型的多维数组 ufunc(Universal Funciton Object):对数组进行处理的通用函数 数组创建 向array函数传入列表/元组 利用arange、linspace、empty等函数生成数组 数组属性 数组元素索引 array数组和list列表的区别:list中的元素可以不

    2024年01月18日
    浏览(44)
  • 数学建模Matlab之数据预处理方法

    本文综合代码来自文章 作者通常首先判断是否具有异常值,因为如果有异常值的话,咱们就会剔除异常值,使其变成缺失值,然后再做缺失值处理会好很多。 对于上面的异常值检验法做讲解与扩展: 1. Mean 三倍标准差法(3σ原则) 描述 :在正态分布数据中,任何一个数值如

    2024年02月08日
    浏览(47)
  • 【数学建模】matlab正态拟合直方图 | 获取一组数据的统计特征(平均值,方差等)

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 首先给出一组数据样例: 1.1.1 平均值(期望) 获得结果: 1.1.2 中值 1.1.3 方差和标准差 A.方差 B.标准差(一般也是正态分布里面的西格玛) 1.1.4 排序 依然用之前的数据画图 从数据分布上来看大概就是个正

    2024年02月04日
    浏览(53)
  • 数学建模 Excel的批量写入与批量导出

    数学建模中编程手们常常会被要求将大量的数据进行批量的预测操作,并写入某个文件中 Excel的批量导出数据,用循环就可以简单实现,例如 同时当我们对上述的每一个文件进行预测操作之后,需要将结果输出在一个.csv或.xlsx文件中,可以这样写: 值得注意的是,result.xlsx需

    2024年02月06日
    浏览(38)
  • 2023数学建模国赛E题黄河水沙监测数据分析完整代码分析+处理结果+思路文档

    已经写出国赛E题黄河水沙监测数据分析完整代码分析+处理结果+思路分析(30+页),包括数据预处理、数据可视化(分组数据分布图可视化、相关系数热力图可视化、散点图可视化)、回归模型(决策树回归模型、随机森林回归、GBDT回归、支持向量机回归、全连接神经网络)

    2024年02月09日
    浏览(50)
  • 2023高教社数学建模国赛C题 - 蔬菜类商品的自动定价与补货决策(数据预处理部分)附详细代码

    C题用到了vlookup函数将所有数据同类项进行合并,公式如下: 单品类:=VLOOKUP(C2,[附件1.xlsx]Sheet1!A$2:D$252,2,FALSE) 大类: =VLOOKUP(C2,[附件1.xlsx]Sheet1!A$2:D$252,4,FALSE) 批发价格: =VLOOKUP(C2,[附件3.xlsx]Sheet1!B$2:C$55983,2,FALSE) 单品损耗率: =VLOOKUP(H2,[附件4.xlsx]Sheet1!B$2:CS252,2,FALSE) 价格=单位成本

    2024年02月08日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包