一、数据的获取

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)数据降维有两种方法:主成分分析法和相关系数法。

数学建模 matlab 数据建模基础相关推荐

  1. UML建模之数据建模

    一.数据库模简介 二.数据建模元素 1.表(Table) 2.表索引(Table Index) 3.表触发器(Table Trigger) 4.表约束(Table Constraint) 5.视图(V ...

  2. 数据建模java_数据建模及常见分类算法

    数据建模及常见分类算法 数据建模指的是对现实世界各类数据的抽象组织,建立一个适合的模型对数据进行处理.建模流程解读 建模数据的抽取,清洗和加工以及建模算法的训练和优化会涉及大量的计算机语言和技术.比如 ...

  3. 16-数据仓库之数据建模、数据建模表的分类、数据建模步骤、数据分层的原因和优点

    九.数据仓库 9.1 数据处理方式 9.1.1 OLTP 定义理解 OLTP的全称是On-line Transaction Processing,中文名称是联机事务处理 特点 主要用于管理事物,用来处 ...

  4. 概念建模(CDM)-------数据建模(一)

    在网上也看了很多有关概念建模的理解和表述,但是都很难理解,非常的空洞,所以我决定写这个博客.谈谈我对概念建模的理解,希望大家能够提一些意见,大家一起进步. 概念 概念数据模型(CDM)中包含概念以及定 ...

  5. 数学建模 matlab 数据的拟合和回归

    根据回归方法中因变量的个数和回归函数的类型: 特殊的回归方式: 逐步回归:回归过程中可以调整变量数的回归方法: Logistic回归:以指数结构函数作为回归模型的回归方法. 一.一元回归 1.一元线性 ...

  6. ea mysql建模_UML数据建模工具之Enterprise Architect(EA)实例-UML应用

    编辑推荐: 文章主要介绍使用EA进行银行ATM机用户取款为例的建模全部过程,步骤较为详细,希望可以让大家有个新的认识. 本文来自于cnblogs,由火龙果软件依然编辑.推荐. 一.需求建模,模拟银行A ...

  7. 数据建模基础知识——实体关系图

    数据建模是设计数据库的重要组成部分.如果要获得最佳结果,请确保利用可用的数据模型.请继续阅读以了解更多信息. 每个关系数据库都有明确定义的对象以及这些对象之间的关系.它们共同构成了数据模型. 本文介绍 ...

  8. 5模型数据起别名_DMBOK 06|数据建模与设计

    数记达摩院 提供高效能数据知识体系学习解决方案 您好,欢迎来到数记达摩院,我是王兵.今天我们来一起学习,DMBOK数据管理知识体系 第五章 数据建模与设计. 开始之前,我们先回顾一下上节课讲述的内容. ...

  9. 数据建模大数据就业挑战月薪30K

    点击关注 异步图书,置顶公众号 每天与你分享 IT好书 技术干货 职场知识 本文大概 10624 字 读完共需 30 分钟 Tips 参与文末话题讨论,即有机会获得异步图书一本. 数据建模是对现实世界 ...

最新文章

  1. Android Handler sendEmptyMessageDelayed 和 sendEmptyMessage 的使用
  2. 大学计算机课英语心得体会,关于计算机网络辅助大学英语教学的思考学习心得...
  3. CSS 选择器参考手册
  4. RESTful Web Services in Spring 3(下)转载
  5. Zynq ZC702平台 QSPI + eMMC实现
  6. 虚拟机中CentOS 7 网络服务启动失败
  7. 如何快速导入SVN服务器的项目代码
  8. 《Python算法教程》——2.4 请提防黑盒子
  9. OEA ORM 框架中的冗余属性设计
  10. C程序设计--指针(用 “ 函数 ” 对 “ 多维数组 ” 进行操作)
  11. 如何使用光盘启动计算机,怎么用光盘PE安装win7系统
  12. 我体验了禾多科技的自动驾驶汽车,离量产不远了!
  13. ARM发展史,初步汇总
  14. (转)MSDN Library “已取消到该网页的导航”解决办法
  15. Opencv实现颜色检测
  16. Codeforces - Reachable Strings
  17. pr爱情模板,2.14情人节爱情告白视频模板素材
  18. 小程序遵循的语法_2020年遵循的最佳应用程序开发实践
  19. 我来告诉你,那些博客中的gif动态图是怎么弄的?
  20. 判断一句话是否中文或者英文

热门文章

  1. 工具箱@CMD实用命令
  2. OpenCV基础应用4.边缘检测
  3. SQL联合查询 join
  4. 拼多多资深程序员带你了解 ”砍一刀“的设计与实现
  5. Android内存泄漏检测工具使用手册
  6. Android WebView简介
  7. web前端 | 一条“不归路” - 学习路线
  8. xlsx怎么设置行高列宽_Excel里面如何调整行高和列宽
  9. 双目立体匹配流程详解
  10. 主力用计算机吸筹,主力进场 主力吸筹