! V5 h! z1 X# }, z 数学建模 matlab 数据建模基础* a% F. L+ F: i' |& h
一、数据的获取6 y' e4 P Z+ \
1.从Excel中读取数据* K s6 |: M; u8 V7 w/ v2 ^/ W d
(1)xlsread函数 :从EXCEL读入数据到MATLAB中。 " m* t5 _ l9 A3 ~例如: S) F+ I/ b7 M
1 j7 w3 |: E2 _8 b
( x' G& R$ z- D% ]
a = xlsread(‘D:\adc.xlsx’,1,‘A12’) 6 W- F; O6 _+ B0 Z: G% r) k其中,‘D:\abc.xlsx’表示读入的EXCEL数据所在的路径以及EXCEL的文件名称;1表示位于sheet1;'A12’表示需要读入的数据范围。 - t! f5 O8 l' }7 Q+ r$ E# b , G3 \0 Z w f% \7 g( |- J j3 f " [( O) V. t/ |& T(2)xlswrite函数:从MATLAB中往EXCEL写入数据。$ X4 ]. n( J, q( i% f
xlswrite(‘D:\adc.xlsx’,a,1,‘A12’)4 E$ l, v4 B. X) [' c
其中,‘D:\abc.xlsx’表示写入EXCEL工作簿所在的位置,如果指定位置不存在指定的EXCEL文件,则MATLAB会自动创建工作簿;a表示待写入的数据;1表示sheet1;'A12’表示写入EXCEL中的具体位置。, j$ M7 B& j" F* ]! k- _& e) F" ^
! i. z- v! }, Z3 _+ R" W& H! `- [5 i* J2 G. F+ G7 G& O
注意,不要在MATLAB正在读写操作的时候打开EXCEL工作簿,这样有可能使程序终止运行。8 a% a" M3 ?+ i6 R6 I
4 ?8 g6 T [' i* i! Z. c : p) Z; B- D* A# d1 w1 Z* @3 A4 p2.从TXT中读取数据4 [8 {5 M a4 [; `7 M7 T
(1)load函数:从TXT中读取数据。5 G( l: t! E9 H: Z
load(‘***.txt’) ' Z, p! y/ K; F* H9 M9 r7 F t1 M实操: 0 i9 S- ?* ]: a" h0 `0 R% G5 T+ `% i
' j! k4 V& x2 @1 w4 y1 l # ~& x: t; v. p8 n8 f& s/ \+ E6 E 3 e, I/ f# z' E; @1 |! I7 G |(2)textread函数: 如果TXT文件中存储了不同类型的字符或者数据,分类读取数据就需要使用textread函数了。textread读取信息的好处是,可以做到控制输出更精准,以及不需要使用fopen命令打开文件就可以直接读取TXT里的内容。 Z; K |* m' w5 \4 [; W[A,B,C,…]=textread(‘filename’,‘format’,N,‘headerlines’,M) 9 P& K( \* W- U* T! b( T+ ~# F其中,filename表示需要读取的TXT文件名称;format表示所读取变量的字段格式;N表示读取的次数,每一次读取一行;headerlines表示从第M+1行开始读入。 : Q, }3 M9 y4 U' Q实操:! N5 `/ ?. ^- q) }
5 \& P9 V, o+ e8 S( x: B0 b ; j. Z' n' k8 d1 i& G" ?$ s2 [! j& O" h
! x. @0 K5 v. X Z
3.读取图片4 N$ w3 d/ B: k
imread函数: MATLAB中读取图片的常用函数。+ i/ [) J8 h2 J' c
A = imread(filename)6 }$ m# J+ v$ u6 r8 ~
A = imread(filename,fmt)4 c* k8 ?2 n* H. Y
A = imread(___,idx)( ^" Q9 A. w. m* q- S7 L# P3 I. x
A = imread(___,Name,Value) 6 N, n# U; H- P3 `$ o* q& Y8 i[A,map] = imread(___) * m" H! A, l6 W5 q[A,map,transparency] = imread(___) ' J1 a; l" x2 T 1 U; Y7 b7 j0 n 9 P8 O7 f1 j+ y1 K# t- C其中,A为返回的数组,用于存放图像中的像素矩阵。9 z1 G) }& F8 ]% `. o
实操:* h+ w, u9 B# }9 l- i7 j: K
' @9 M) a& ^- X8 O- ^/ {/ J; @5 ]; V) w4 R# p+ s
0 c% V6 q" m8 w$ r- K5 ^& O
/ T2 g9 D6 h! v* ?/ k) b' u1 V' B1 U8 m1 r. p$ a( m
. s/ P% r) S* k3 u2 u: Z
4.读取视频 1 K- m, d7 l+ t9 k& D) d; q9 kVideoFileReader :在MATLAB中使用计算机视觉工具箱中的VideoFileReader来读取视频数据,包括mp4、avi等格式的视频文件。 ; k) ]. w6 f9 }0 g4 M- h, B- q实操: : n' k2 G! l2 ~3 v+ O$ v0 i: L![在这里插入图片描述]](https://img-blog.csdnimg.cn/20200530202023784.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1MDU5NDU3,size_16,color_FFFFFF,t_70) ; p, I; A/ D6 L* w# H) u4 F& n, Y" E, D( D
2 r9 G# I, [# _/ L$ W; N( u& L3 z, ^% q/ X
# {' Z( Z: u* u: L `- h运行结果:! U+ J5 _# [. S& N* T) Z7 R# A
( E3 d; c- f# w; i! i0 o, x ) ?! i0 m; `5 q) B: K- _& p5 U* K' \3 y/ }
3 E3 Y) g( { g$ w1 p" R
5.总结 + t+ W4 ~% m* g( n2 X# ~! d(1)用xlsread(),xlswrite()函数从Excel读取数据 & M* y8 t. e- J o9 b9 Z8 n& E# z(2)用textread()函数读取txt文档 4 r! A3 ?7 R' f) r(3)用imread()函数读取图片9 n, Y) h7 R( V2 q. _$ L( W$ e, k+ r
(4)工具箱中VideoFileReader来读取视频数据 : g+ o$ B" h. B5 ? U4 _+ k, O$ \( T2 q1 V2 A& J |
: s5 b, X. P6 t8 [+ G$ _
二、数据的预处理2 X$ `7 i# _5 j# f# B
为什么需要数据预处理?% v! G+ g6 V9 J2 i9 n7 I
原因: 6 \# Q0 d8 _8 H# j6 t5 s) e收集数据的设备可能出故障;; f' ?: i1 o$ n k
输入错误数据; : J6 g" Q7 C; i4 R当用户不希望提交个人信息时,可能故意向强制输入字段输入不正确的值; / Y3 e& T4 M, v7 u3 M% s& W错误也可能在数据传输中出现,这些可能是由于技术的限制。 4 n8 T- Q+ F8 _5 B p' q由命名约定或所用的数据代码不一致,或输入字段的格式不一致而导致的。 . X$ f8 d/ w2 U9 ]9 I& d7 ~; J, P影响数据质量的另外两个因素是可信性和可解释性。可信性反映有多少数据是用户信赖的,而可解释性反映数据是否容易理解。& Z2 O( ~' p/ {0 D: W$ L0 Y, v
我们并不需要过多关注数据质量差的原因,只需关注如何让数据质量更好,也就是说,如何对数据进行预处理,以提高数据质量,满足数据挖掘的需要。 4 W( Q5 f9 G1 ~& z' T1 M1 [% W # M* C G0 y: o% l 2 b9 D V: |# h8 ]4 Z% |$ ?1.缺失值处理, L9 g' [: H7 n' y+ m0 c
(1)均值插补。如果缺失值是定距型的,就以该属性存在值的平均值来插补缺失的值;如果缺失值是非定距型的,就根据统计学中的众数原理,用该属性的众数来补齐缺失的值;如果数据符合较规范的分布规律,则还可以用中值插补。/ N/ x4 K) }: l% a, L( e! ?& ^+ C
( 2)回归插补。利用线性或非线性回归技术得到的数据来对某个变量的缺失数据进行插补。 0 K* D8 | @" L2 O; D8 W& A; j2 i3 s4 Q : j- p; Y& F, @3 f* Y, }/ E+ C' i @3 d- Z! I
) y+ H9 T) B4 p8 ~5 o# d
0 z+ q6 @" ]# T$ X6 m
( 3)极大似然估计。在缺失类型为随机缺失的条件下,假设模型对于完整的样本是正确的,那么通过观测数据的边际分布可以对未知参数进行极大似然估计。4 ?* ~, y7 |+ K1 E" l
8 A( ?, s( B. J& Z$ w) j! c8 C g
5 V0 L. d! y) [: l# ~
2.噪声过滤+ t3 O# |& [/ @- b+ T
1、回归法:用一个函数拟合数据来光滑数据。 , e) y* `$ v$ ` `9 {) I6 j : }* q; v) b" F9 G$ S- r) B' b' \! M6 w+ a8 c( g# b
% ` U- ~% x+ w% u2 N7 ^ _+ }6 U1 T& I1 w: J
2、均值平滑法:对于具有序列特征的变量用邻近的若干数据的均值来替换原始数据的方法。 6 [! y& ?0 [; O. `! O : s8 g$ x+ c8 b. L. E- L' s! X9 T8 w4 O/ n, \- ]1 L& w
3、离群点分析:通过聚类等方法来检测离群点,并将其删除,从而实现去噪的方法。& Q# }- r5 c. n: f' g
4、小波过滤法(又称小波去噪):在数学上,小波去噪问题的本质是一个函数逼近问题,即如何在由小波母函数伸缩和平移所展成的函数空间中,根据提出的衡量准则,寻找对原信号的最佳逼近,以完成原信号和噪声信号的区分。) @8 p/ M. G+ t5 m! _8 V
1 a- i' J1 P6 i% P5 l- Z
! n" |8 {8 Q7 z* k! i* U. q. _3 E# L' Q6 P. V1 k
& e, z( e# c. h% B/ `& r
3.数据集成 & n. |/ K' C" @& o: }& m) |数据集成就是将若干个分散的数据源中的数据,逻辑地或物理地集成到一个统一的数据集合中。, A1 N, P+ F% ~; W% ?0 K6 o
实现数据集成的系统称作数据集成系统,它为用户提供统一的数据源访问接口,执行用户对数据源的访问请求。 ! f0 Z- v. E" u# M6 y' q1 z6 [0 R2 l w! E! A7 {( i6 r
6 V" s% `# ^; r6 T% O
5 W/ C9 u @7 J% J6 H+ [* g& c" g. B w% W( x6 C8 Q, P7 L" p
4.数据归约 ' ^/ Y4 B. F$ j# p% x% k+ F6 F5 ]数据归约的目的:得到能够与原始数据集近似等效甚至更好但数据量却较少的数据集。: x( m6 s8 k2 @8 T, M$ g, l$ k
' \, G; o% ^1 C# k7 b- \& p & k7 \$ ?- ^" H6 [, D - L# v- N; B8 J1 E- C; E, C) ~1 g& s3 }8 u3 K
5.数据变换 & J6 p/ z1 x, M. b `* L数据变换是指将数据从一种表示形式变为另一种表现形式的过程。3 x, l+ G0 C' H! Y: j% H