Matlab笔记——数据预处理——剔除异常值及平滑处理_第1页
Matlab笔记——数据预处理——剔除异常值及平滑处理_第2页
Matlab笔记——数据预处理——剔除异常值及平滑处理_第3页
Matlab笔记——数据预处理——剔除异常值及平滑处理_第4页
Matlab笔记——数据预处理——剔除异常值及平滑处理_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、012.数据预处理(1)剔除异常值及平滑处理测量数据在其采集与传输过程中,由于环境干扰或人为因素有可能造成个别数据不切合实际或丢失, 这种数据称为异常值。 为了恢复数据的客观真实性以便将来得到更好的分析结果,有必要先对原始数据(1)剔除异常值;另外,无论是人工观测的数据还是由数据采集系统获取的数据,都不可避免叠加上“噪声”干扰(反映在曲线图形上就是一些“毛刺和尖峰”)。为了提高数据的质量,必须对数据进行(2)平滑处理(去噪声干扰);(一)剔除异常值。注:若是有空缺值,或导入Matlab数据显示为“NaN(非数),需要忽略整条空缺值数据,或者填上空缺值。填空缺值的方法,通常有两种:A.使用样本平

2、均值填充;B.使用判定树或贝叶斯分类等方法推导最可能的值填充(略)。一、基本思想:规定一个置信水平,确定一个置信限度,凡是超过该限度的误差,就认为它是异常值,从而予以剔除二、常用方法:拉依达方法、肖维勒方法、一阶差分法注意:这些方法都是假设数据依正态分布为前提的1.拉依达方法(非等置信概率)如果某测量值与平均值之差大于标准偏差的三倍,则予以剔除。Xx3Sx1nn2其中,X1为为样本均值,Sx(XiX)2为样本的标准偏ni1n1i1差。注:适合大样本数据,建议测量次数 A50次。代码实例(略)。2.肖维勒方法(等置信概率)在n次测量结果中,如果某误差可能出现的次数小于半次时,就予以剔除。这实质上

3、是规定了置信概率为1-1/2n,根据这一置信概率,可计算出肖维勒系数,也可从表中查出,当要求不很严格时,还可按下列近似公式计算:10.4ln(n)Tabi.肖维勒系数表n3456789101112GJnn13141520304050100200500(Dn如果某测量值与平均值之差的绝对值大于标准偏差与肖维勒系数之积,则该测量值被剔除。xixnSx例1.利用肖维勒方法对下列数据的异常值()进行剔除:上述数据保存于文件代码:x=load();n=length(x);subplot(2,1,1);plot(x,o);title(原始数据)axis(0,n+1,min(x)-1,max(x)+1);w

4、=1+*log(n);yichang=abs(x-mean(x)w*std(x);%若用拉依达方法,把w改成3即可,但本组数据将不能成功剔除异常值。x(yichang)=;savex-ASCIIsubplot(2,1,2);plot(x,rs);title(异常值剔除后数据);axis(0,n+1,min(x)-1,max(x)+1);x=原始期居3.53.5I Ii iiiiir2.52.5- -Q Q1.51.5- -o oooooQoooooQoo oI-I-Q匚LII|_8024246810异常值剔除后数据3.53.5111111r r3 3- -2.5-2.5-2 2- -1.51.

5、5- -n nn nzizi1 1 - -Q5Q5I I|IIIIL_L_02468103.一阶差分法(预估比较法)用前两个测量值来预估新的测量值,然后用预估值与实际测量值比较,若大于事先给定的允许差限值,则剔除该测量值。预估值织xn1(Xn1Xn2)比较判别:XnXnW注:该方法的特点是(1)适合于实时数据采集与处理过程;(2)精度除了与允许误差限的大小有关外,还与前两点测量值的精确度有关;(3)若被测物理量的变化规律不是单调递增或单调递减函数,这一方法将在函数的拐点处产生较大的误差,严重时将无法使用。(二)数据的平滑处理对于一组测量数据(xi,yi)i=1,n,不要直接就想着求出的拟合多项

6、式的线性参数,而是要先平滑处理去掉“噪声”。平滑处理在科学研究中广泛使用, 它可以减少测量中统计误差带来的影响, 尤其被用于无法利用多次重复测量来得到其平均值的情况和当yi随xi有徒然变化的那些测量段1.“(2n+1点)单纯移动平均”平滑滤波取出以yi为中心的前后各n个数据(yi-n,yi-1,yi,yi+n)求平均值代替yi,即11nyi2H1knyi1优点:方法简单,计算方便。缺点:方法产生误差会造成信号失真;前后各n个数据无法平滑。适用性:适用于变化缓慢的数据。注:n越大平滑效果越好,但失真也越大。例2.“9点单纯移动平均”平滑滤波代码:%n%注意函数要单独保存为与函数名同名的.m文件f

7、unctionY=smooth_data(y,n)m=length(y);j=1;fori=(n-1)/2+1:(m-(n-1)/2)p=i-(n-1)/2;q=i+(n-1)/2;Y(j)=sum(y(p:q)/n;j=j+1;endend%主程序clcclearn=length(t);Y=5./(1+tA2);%原始测试数据y=Y+(1,n);%给测试数据加上噪声干扰y1=smooth_data(y,9);%调用函数作9点滤波处理plot(1:n,Y,1:n,y,-o,5:n-4,y1,-*,);legend(无噪声,含噪声,9点平滑后);运行结果:2.“加权移动平均”平滑滤波加权的基本思

8、想:作平均的区间内中心处数据的权值最大,愈远离中心处的数据权值越小小。这样就减小了对真实信号本身的平滑作用。权重系数可以采用最小二乘原理,使平滑后的数据以最小均方差逼近原始数据。即令通常采用“五点二次平滑”(n=5,k=-2,-1,0,1,2)22(YikAAik4k2)0k222(YikAAk色k2)k0k2222(YikA)AkAk)k0k2五点二次平滑权重系数表:归一系数Y-2Y-1V。Y1Y2Y-235319-3-53Y-135913126-53Y135-5612139Y2353-5-39311Y0-3y212Yimink(YikYik)2353.用“smoo

9、th函数”平滑滤波调用格式:Z=smooth(Y,span,method)说明:Z:平滑后的数据向量Y:被平滑的数据向量span:平滑点数,缺省为5点method:平滑方法,缺省为移动平滑,其它还有movingMovingaverage(default)单纯移动平均lowessLowess(linearfit)线性加权平滑loessLoess(quadraticfit)二次力权平滑sgolaySavitzky-GolayrlowessRobustLowess(linearfit)rloessRobustLoess(quadraticfit)例3.用matlab自带的平滑函数作平滑滤波实例。代码

10、:t=-10:10;n=length(t);y=5./(1+tA2);%原始测试数据y1=y+*(1,n);%给测试数据加上噪声干扰%调用多个滤波函数作滤波处理y2=smooth(y1,3);y3=smooth(y1,9);y4=smooth(y1,3,lowess);y5=smooth(y1,9,lowess);y6=smooth(y1,3,loess);y7=smooth(y1,9,loess);y8=smooth(y1,3,rloess);y9=smooth(y1,9,rloess);figure(1);%第一张图subplot(3,2,1);plot(t,y);axis(-1010-1

11、6);gridontitle(无噪声信号);subplot(3,2,2);plot(t,y1,-*);axis(-1010-16);gridontitle(含噪声信号);subplot(3,2,3);plot(t,y2,-*);axis(-1010-16);gridontitle(3点单纯移动平均);subplot(3,2,4);plot(t,y3,-*);axis(-1010-16);gridontitle(9点单纯移动平均);subplot(3,2,5);plot(t,y4,-*);axis(-1010-16);gridontitle(3点线性加权平滑);subplot(3,2,6);pl

12、ot(t,y5,-*);axis(-1010-16);gridontitle(9点线性加权平滑);figure(2);%第二张图subplot(3,2,1);plot(t,y);axis(-1010-16);gridontitle(无噪声信号);subplot(3,2,2);plot(t,y1,-*);axis(-1010-16);gridontitle(,含噪声信号);subplot(3,2,3);plot(t,y6,-*);axis(-1010-16);gridontitle(3点二次加权平滑);subplot(3,2,4);plot(t,y7,-*);axis(-1010-16);gri

13、dontitle(9点二次加权平滑);subplot(3,2,5);plot(t,y8,-*);axis(-1010-16);gridontitle(3点rloess平滑);subplot(3,2,6);plot(t,y9,-*);axis(-1010-16);gridontitle(9点rloess平滑);运行结果:Figure1无噪声信号6|:64:A,d2.-J:?1 1I I-10-50510-3点单轲移动平均6|T:b含屏声信号Xb-10-5Cl$10g点单纯移动平均2I-10-505103点线性加权平滑-1C-505109点线性加权平滑-I0-50510Figure2无噪声信号含噪

14、声信号3点二馍加权平滑C020-IO-5051。9点I。际平捐4,用“smoothts函数”(盒子法、高斯窗法、指数法)平滑滤波调用格式:output=smoothts(input)output=smoothts(input,output=smoothts(input,窗方法output=smoothts(input,例4.读取股市数据,对开盘价的240条数据,调用smoothts函数进行平滑处理。代码:x=xlsread(D:ProgramFilesMATLABMyWorks);%读取数据文件p0=x(1:240,1);%用开盘价所在列的前240条数据%注意若不转置可能导致后面处理结果异常s

15、ubplot(2,2,1);plot(p0,k,LineWidth,;%绘制平滑后曲线图,黑色实线,线宽xlabel(观测序号);ylabel(,股市日开盘价);axis(025010001400);pl=smoothts(p0,b,30);%用盒子法平滑数据,窗宽为30subplot(2,2,2);plot(p0,.);%绘制日开盘价散点图plot(p0,.,markersize,3);可以改变点的大小b,wsize)%盒子法g,wsize,stdev)%高斯e,n)%指数法holdonplot(p1,k,LineWidth,;xlabel(观测序号);ylabel(盒子法);legend(

16、原始散点,平滑曲线,location,northwest);axis(025010001400);p2=smoothts(p0,g,30);%高斯窗方法,窗宽为30,标准差为默认值subplot(2,2,3);plot(p0,.);holdonplot(p2,k,LineWidth,;xlabel(观测序号);ylabel(高斯窗方法);legend(原始散点,平滑曲线,location,northwest);axis(025010001400);p3=smoothts(p0,e,30);%用指数法平滑数据,窗宽为30subplot(2,2,4);plot(p0,.);holdonplot(p

17、3,k,LineWidth,;xlabel(观测序号);ylabel(指数方法);legend(原始散点,平滑曲线,location,northwest);axis(025010001400);gridontitle(9点rloess平滑);运行结果:5,用medfiltl函数(一维中值滤波)调用格式:y=medfilt1(x,n)y=medfilt1(x,n,blksz)y=medfilt1(x,n,blksz,dim)例5.产生一列正弦波信号,加入噪声信号,然后调用medfiltl函数对加入噪声的正弦波进行滤波(平滑处理)代码:t=linspace(0,4*pi,500);%产生一个从0至

18、Ij4*pi的向量,长度为5004W100100ISO200250ISO200250.现冽斤玲00500050005000005000500050004332243322- -111111111111111111年色rrLrrL尸卷1DOO501001502002&0501001502002&0观测序号JIdJId1111MJ5OM)SOOMJ5OM)SOO一4 43322322原始歌声平涓曲线攫胆霜寒5000500050005000500050008$2?8$2?1-1-1 1图板版崔105010001000DM1MDM1M150150O O2020温小那点平唔口等M100150200250规制林信OT5O00&OM5ODO50-MOT5O00&OM5ODO50-M观刖后号y=100*sin(t);%产生正弦波信号noise=normrnd(0,15,500,1);%产生500行1列的服从N(0,152)分布的随

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论