Matlab学习系列012. 数据预处理1剔除异常值及平滑处理精编版

上传人:ahu****ng1 文档编号:130791103 上传时间:2020-05-01 格式:DOCX 页数:15 大小:156.20KB
返回 下载 相关 举报
Matlab学习系列012. 数据预处理1剔除异常值及平滑处理精编版_第1页
第1页 / 共15页
Matlab学习系列012. 数据预处理1剔除异常值及平滑处理精编版_第2页
第2页 / 共15页
Matlab学习系列012. 数据预处理1剔除异常值及平滑处理精编版_第3页
第3页 / 共15页
Matlab学习系列012. 数据预处理1剔除异常值及平滑处理精编版_第4页
第4页 / 共15页
Matlab学习系列012. 数据预处理1剔除异常值及平滑处理精编版_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《Matlab学习系列012. 数据预处理1剔除异常值及平滑处理精编版》由会员分享,可在线阅读,更多相关《Matlab学习系列012. 数据预处理1剔除异常值及平滑处理精编版(15页珍藏版)》请在金锄头文库上搜索。

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

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

3、n,根据这一置信概率,可计算出肖维勒系数,也可从表中查出,当要求不很严格时,还可按下列近似公式计算:Tab1. 肖维勒系数表n3456789101112n1.381.531.651.731.801.861.921.962.002.03n13141520304050100200500n2.072.102.132.242.392.492.582.813.023.20如果某测量值与平均值之差的绝对值大于标准偏差与肖维勒系数之积,则该测量值被剔除。例1. 利用肖维勒方法对下列数据的异常值(2.5000)进行剔除:1.5034 1.5062 1.5034 1.5024 1.4985 2.5000 1.5

4、007 1.5067 1.4993 1.4969上述数据保存于文件erro.dat代码:x=load(error.dat);n=length(x);subplot(2,1,1);plot(x,o);title(原始数据)axis(0,n+1,min(x)-1,max(x)+1);w=1+0.4*log(n);yichang = abs(x-mean(x) w*std(x);% 若用拉依达方法,把w改成3即可,但本组数据将不能成功剔除异常值。x(yichang)=;save errornew.dat x -ASCIIsubplot(2,1,2);plot(x,rs);title(异常值剔除后数据

5、);axis(0,n+1,min(x)-1,max(x)+1);运行结果:x =1.5034 1.5062 1.5034 1.5024 1.4985 2.5000 1.5007 1.5067 1.4993 1.4969y = 1.5034 1.5062 1.5034 1.5024 1.4985 1.5007 1.5067 1.4993 1.49693. 一阶差分法(预估比较法)用前两个测量值来预估新的测量值,然后用预估值与实际测量值比较,若大于事先给定的允许差限值,则剔除该测量值。预估值比较判别:注:该方法的特点是(1)适合于实时数据采集与处理过程;(2)精度除了与允许误差限的大小有关外,还与

6、前两点测量值的精确度有关;(3)若被测物理量的变化规律不是单调递增或单调递减函数,这一方法将在函数的拐点处产生较大的误差,严重时将无法使用。(二)数据的平滑处理对于一组测量数据(xi,yi) i=1,n,不要直接就想着求出的拟合多项式的线性参数,而是要先平滑处理去掉“噪声”。平滑处理在科学研究中广泛使用,它可以减少测量中统计误差带来的影响,尤其被用于无法利用多次重复测量来得到其平均值的情况和当i随i有徒然变化的那些测量段。1. “(2n+1点)单纯移动平均”平滑滤波取出以yi为中心的前后各n个数据(yi-n, ,yi-1,yi,yi+n)求平均值代替yi,即优点:方法简单,计算方便。缺点:方法

7、产生误差会造成信号失真;前后各n个数据无法平滑。适用性:适用于变化缓慢的数据。 注:n越大平滑效果越好,但失真也越大。例2. “9点单纯移动平均”平滑滤波代码:% 建立“n点单纯移动平均”的滤波函数% 注意函数要单独保存为与函数名同名的.m文件function Y=smooth_data(y,n) m=length(y);j=1;for i=(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% 主程序clccleart=-15:0.5:15;n=length(t);Y=5./(1+t.2

8、); % 原始测试数据y=Y+(0.5-rand(1,n); % 给测试数据加上噪声干扰y1=smooth_data(y,9); % 调用函数作9点滤波处理plot(1:n,Y,1:n,y,-o,5:n-4,y1,-*);legend(无噪声,含噪声,9点平滑后);运行结果:2. “加权移动平均”平滑滤波加权的基本思想:作平均的区间内中心处数据的权值最大,愈远离中心处的数据权值越小小。这样就减小了对真实信号本身的平滑作用。权重系数可以采用最小二乘原理,使平滑后的数据以最小均方差逼近原始数据。即令通常采用“五点二次平滑” (n=5, k=-2,-1,0,1,2)五点二次平滑权重系数表:归一系数y

9、-2y-1y0y1y2y-235319-3-53y-135913126-5y035-3121712-3y135-5612139y2353-5-39313. 用“smooth函数”平滑滤波调用格式:Z = smooth(Y, span, method)说明:Z: 平滑后的数据向量Y: 被平滑的数据向量span: 平滑点数,缺省为5点method :平滑方法,缺省为移动平滑,其它还有moving Moving average (default)单纯移动平均lowess Lowess (linear fit)线性加权平滑loess Loess (quadratic fit)二次加权平滑sgolay

10、Savitzky-Golayrlowess Robust Lowess (linear fit)rloess Robust Loess (quadratic fit)例3. 用matlab自带的平滑函数作平滑滤波实例。代码:t=-10:0.5:10;n=length(t);y=5./(1+t.2); % 原始测试数据y1=y+0.5*(0.5-rand(1,n); % 给测试数据加上噪声干扰% 调用多个滤波函数作滤波处理y2=smooth(y1,3); y3=smooth(y1,9);y4=smooth(y1,3,lowess); y5=smooth(y1,9,lowess);y6=smoot

11、h(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(-10 10 -1 6); grid ontitle(无噪声信号);subplot(3,2,2);plot(t,y1,-*); axis(-10 10 -1 6); grid ontitle(含噪声信号);subplot(3,2,3);plot(t,y2,-*); axis(-10 10 -1 6); grid ontitle(3点单

12、纯移动平均);subplot(3,2,4);plot(t,y3,-*); axis(-10 10 -1 6); grid ontitle(9点单纯移动平均);subplot(3,2,5);plot(t,y4,-*); axis(-10 10 -1 6); grid ontitle(3点线性加权平滑);subplot(3,2,6);plot(t,y5,-*); axis(-10 10 -1 6); grid ontitle(9点线性加权平滑);figure(2); % 第二张图subplot(3,2,1);plot(t,y); axis(-10 10 -1 6); grid ontitle(无噪

13、声信号);subplot(3,2,2);plot(t,y1,-*); axis(-10 10 -1 6); grid ontitle(含噪声信号);subplot(3,2,3);plot(t,y6,-*); axis(-10 10 -1 6); grid ontitle(3点二次加权平滑);subplot(3,2,4);plot(t,y7,-*); axis(-10 10 -1 6); grid ontitle(9点二次加权平滑);subplot(3,2,5);plot(t,y8,-*); axis(-10 10 -1 6); grid ontitle(3点rloess平滑);subplot(3,2,6);plot(t,y9,-*); axis(-10 10 -1 6); grid ontitle(9点rloess平滑);运行结果:Figure 1Figure 24. 用“smoothts函数”(盒子法、高斯窗法、指数法)平滑滤波调用格式:output = smoothts(input)output = smoothts(input, b, wsize) % 盒子法output = smoothts(input, g, wsize

展开阅读全文
相关资源
相关搜索

当前位置:首页 > IT计算机/网络 > 计算机应用/办公自动化

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号