




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、012. 数据预处理剔除异常值及平滑处理测量数据在其与传输过程中,由于环境干扰或人为因素有可能造成个别数据不切合实际或丢失,这种数据称为异常值。为了恢复数据的客观真实性以便将来得到更好的分析结果,有必要首先对原始数据(1)剔除异常值;其次,无论是人工观测的数据还是由系统获取的数据,都不可避免叠加上“噪声”干扰(反映在曲线图形上就是一些“毛刺和尖峰”)。为了提高数据的质量,必须对数据进行(2)平滑处理(去噪声干扰);另外, 在数据分析之前, 通常还需要先将( 3 )数据标准化(normalization),:【同趋化】和【无量纲化】。数据同趋化:不同性质数据反应的结果趋势不同(即“越大越好”or
2、“越小越好”),所以要先同趋化再加总才能得出正确结果。数据无量纲化:主要解决数据的可比性。去除数据的限制,将其转化为无量纲的纯数值,便于不同或量级的指标能够进行比较和。数据标准化最典型的一种就是数据化处理,即需要处理的数据通过某种算法处理后,将得到的数据限制在你需要的、特定的范围内,比如0,1或-1,1。这样做的目的,首先是为了后面数据处理的方便,其次是程序运行时收敛加快。化的具体作用是归纳统一样本的统计分布性。(一)剔除异常值。注:若是有空缺值,或导入数据显示为“NaN”(非数),需要忽略整条空缺值数据,或者填上空缺值。填空缺值的,通常有两种:A. 使用样本平均值填充;B. 使用判定分类等推
3、导最可能的值填充(略)。一、基本思想:规定一个置信水平,确定一个置信限度,凡是超过该限度的误差,就认为它是异常值,从而予以剔除。二、常用:拉、肖、一阶差分法。注意:这些都是假设数据依正态分布为前提的。1. 拉(非等置信概率)如果某测量值与平均值之差大于标准偏差的三倍,则予以剔除。xi - x> 3Sx12n= æ 1 nö其中,x = 1xn å iç n -1 å(x - x)2为样本均值,S为样本的标准偏÷xièøi=1i=1差。注:适合大样本数据,建议测量次数50 次。代码实例(略)。2. 肖(等置信概
4、率)在 n 次测量结果中,如果某误差可能出现的次数小于半次时,就予以剔除。这实质上是规定了置信概率为 1-1/2n,根据这一置信概率,可计算出肖系数,也可从表中查出,当要求不很严格时,还可按下列近似公式计算:wn =1+ 0.4ln(n)Tab1. 肖系数表如果某测量值与平均值之差的绝对值大于标准偏差与肖系数之积,则该测量值被剔除。n3456789101112n1.381.531.651.731.801.861.921.962.002.03n13141520304050100200500n2.072.102.132.242.392.492.582.813.023.20> wnSxxi -
5、 x例1.利用肖对下列数据的异常值(2.5000)进行剔除:1.50341.50621.50341.50241.49852.50001.50071.50671.49931.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
6、 改成 3 即可,但本组数据将不能剔除异常值。x(yichang)=;save errornew.dat x -ASCII subplot(2,1,2);plot(x,'rs');title('异常值剔除后数据');axis(0,n+1,min(x)-1,max(x)+1);运行结果:x =1.50341.50671.50621.50341.50241.49852.50001.50071.49931.4969y =1.50341.50621.50341.50241.49851.50071.50671.49931.49693. 一阶差分法(预估比较法)用前两个测量
7、值来预估新的测量值,然后用预估值与实际测量值比较,若大于事先给定的差限值,则剔除该测量值。预估值n-1 - xn-2 )比较判别:xn - xn< W注:该的特点是(1)适合于实时与处理过程;(2)精度除了与误差限的大小有关外,还与前两点测量值的精确度有关;(3)若被测物理量的变化规律不是单调递增或单调递减函数,这一将在函数的拐点处产生较大的误差,严重时将无法使用。(二)数据的平滑处理对于一组测量数据(xi,yi) i=1,n,不要直接就想着求出的拟合多项式的线性参数,而是要先平滑处理去掉“噪声”。平滑处理在科学研究中广泛使用,它可以减少测量中统计误差带来的影响,尤其被用于无法利用多次重
8、复测量来得到其平均值的情况和当i 随i有徒然变化的那些测量段。1. “(2n+1 点)单纯移动平均”平滑滤波取出以yi 为中心的前后各 n 个数据(yi-n, ,yi-1,yi,yi+n)求平均值代替 yi,即n= 1åy'y2n +1 k=-ni+1i优点:简单,计算方便。缺点:产生误差会造成信号失真;前后各 n 个数据无法平滑。适用性:适用于变化缓慢的数据。注:n 越大平滑效果越好,但失真也越大。例2.“9 点单纯移动平均”平滑滤波代码:% 建立“n 点单纯移动平均”的滤波函数% 注意函数要单独保存为与函数名同名的.m 文件function Y=smooth_data(y
9、,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% 主程序clc cleart=-15:0.5:15;n=length(t);Y=5./(1+t.2);% 原始测试数据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('无噪声'
10、;,'含噪声','9 点平滑后');运行结果:2. “移动平均”平滑滤波的基本思想:作平均的区间内中心处数据的最大,愈远离中心处的数据小小。这样就减小了对真实信号本身的平滑作用。权重系数可以采用最小二,使平滑后的数据以最小均方差逼近原始数据。即令åmin( y- y')2i+ki+kk通常采用“五点二次平滑” (n=5, k=-2,-1,0,1,2)ì2å( y- A - Ak - Ak ) = 02ïi+k 012ïk =-2ï2åi+k - A - Ak - Ak )k = 02(
11、 yí012ïk =-2ï2ï å ( y- A - Ak - A k 2 )k 2 =i+k012îk =-2五点二次平滑权重系数表:=(-3y-2 + 12 y-1 + 17 y0 + 12 35y3. 用“smooth 函数”平滑滤波调用格式:系数y-2y-1y0y1y2y-235319-3-53y-135913126-53y135-5612139y2353-5-3931Z = smooth(Y, span, method)说明:Z: 平滑后的数据Y: 被平滑的数据span: 平滑点数,缺省为 5 点:
12、平滑,缺省为移动平滑,其它还有methodmoving Moving average (default)单纯移动平均lowess Lowess (linear fit)线性平滑loess Loess (quadratic fit)二次平滑'sgolay' Savitzky-Golay'rlowess' Robust Lowess (linear fit)'rloess'Robust Loess (quadratic fit)例3.用自带的平滑函数作平滑滤波实例。代码:t=-10:0.5:10;n=length(t);y=5./(1+t.2);%
13、原始测试数据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=smooth(y1,3,'loess'); y7=smooth(y1,9,'loess');y8=smooth(y1,3,'rloess'); y9=smooth(y1,9,'rloess');figure(
14、1); % 第一张图subplot(3,2,1);plot(t,y); axis(-10 10 -16); grid ontitle('无噪声信号');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
15、(-1010-16);gridontitle('9 点单纯移动平均');subplot(3,2,5);plot(t,y4,'-*');axis(-1010-16);gridontitle('3 点线性平滑');subplot(3,2,6);plot(t,y5,'-*');axis(-1010-16);gridontitle('9 点线性平滑');figure(2); % 第二张图subplot(3,2,1);plot(t,y); axis(-10 10 -16); grid ontitle('无噪声信号
16、39;);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);gridontitle('9 点二次平滑');subplot(3,2,5);plot(t,y8,'-*');ax
17、is(-1010-16);gridontitle('3 点 rloess 平滑');subplot(3,2,6);plot(t,y9,'-*'); axis(-1010-16);gridontitle('9 点 rloess 平滑');运行结果:Figure 1Figure 24. 用“smoothts 函数”(盒子法、窗法、指数法)平滑滤波调用格式:output = smoothts(input)output = smoothts(input, b, wsize)% 盒子法output = smoothts(input, g, wsize, s
18、tdev)%窗output = smoothts(input, e, n)% 指数法例4.数据,对开盘价的 240 条数据,调用 smoothts 函数进行平滑处理。代码:x=xlsread('D:Program数据文件FilesMyWorksgupiaoshuju01.xls'); %p0=x(1:240,1)'% 用开盘价所在列的前 240 条数据% 注意若不转置可能导致后面处理结果异常subplot(2,2,1);plot(p0,'k','LineWidth',1.5);% 绘制平滑后曲线图,黑色实线,线宽 1.5xlabel(
19、39;观号');ylabel('日开盘价');axis(0 250 1000 1400);p1 = smoothts(p0,'b',30);% 用盒子法平滑数据,窗宽为 30subplot(2,2,2);plot(p0,'.'); %绘制日开盘价散点图plot(p0,'.','markersize',3); 可以改变点的大小hold onplot(p1,'k','LineWidth',1.5);xlabel('观号');ylabel('盒子法'
20、);legend('原始散点','平滑曲线','location','northwest');axis(0 250 1000 1400);p2 = smoothts(p0,'g',30);%窗,窗宽为 30,标准差为默认值 0.65subplot(2,2,3);plot(p0,'.'); hold onplot(p2,'k','LineWidth',1.5);xlabel('观号'); ylabel('窗');legend('原
21、始散点','平滑曲线','location','northwest');axis(0 250 1000 1400);p3 = smoothts(p0,'e',30);% 用指数法平滑数据,窗宽为 30subplot(2,2,4);plot(p0,'.'); hold onplot(p3,'k','LineWidth',1.5);xlabel('观号'); ylabel('指数');legend('原始散点','平滑曲线&
22、#39;,'location','northwest');axis(0 250 1000 1400);grid ontitle('9 点 rloess 平滑');运行结果:5. 用medfilt1 函数(一维中值滤波)调用格式:y = medfilt1(x,n)y = medfilt1(x,n,blksz)y = medfilt1(x,n,blksz,dim)例5.产生一列正弦波信号,加入噪声信号,然后调用 medfilt1 函数对加入噪声的正弦波进行滤波(平滑处理)。代码:t = linspace(0,4*pi,500)'% 产生一个从
23、 0 到 4*pi 的,长度为 500% 产生正弦波信号y = 100*sin(t);noise = normrnd(0,15,500,1);% 产生 500 行 1 列的服从 N(0,152)分布的随机数,作为噪声信号y = y + noise;% 将正弦波信号加入噪声信号subplot(2,1,1);plot(t,y);xlabel('时间');ylabel('加噪声的正弦波');% 调用 medfilt1 对加噪正弦波信号 y 进行中值滤波,并绘制波形图yy = medfilt1(y,30); % 指定窗宽为 30,对 y 进行中值滤波subplot(2,
24、1,2);plot(t,y,'b:');% b:表示虚线hold onplot(t,yy,'k','LineWidth',2); % 绘制平滑后曲线,黑色实线,线宽 2xlabel('时间');ylabel('中值滤波');legend('加噪波形','平滑后波形');运行结果:(三)数据标准化(化)为什么要用化呢?首先说一个概念,叫做奇异样本数据,指的是相对于其他输入样本特别大或特别小的样本矢量。例如,m=0.11 0.15 0.32 0.45 30;0.13 0.24 0.27
25、0.25 45;其中第 5 列数据相对于其他 4 列数据就可以成为奇异样本数据。奇异样本数据的,能够引起计算时间增加,并可能引起计算结果无法收敛,所以,在数据计算之前,最好先进行数据化处理,注:(1)若不奇异样本数据,则不需要事先化。(2)应该将样本数据和测试数据放在一起化。例如,神经训练的时候,应该考虑极值情况,以极值作分母,这样可能效果更好一点。二、数据标准化1.极差化(最大值-最小值标准化)是对原始数据的线性变换,使结果落到区间0,1:y=(x-MinValue)/(MaxValue-MinValue)该有一个缺陷就是当有新数据加入时,可能导致 max 和 min 的变化,需要重新计算一
26、次 max 和min。2. Z 标准化(平均方差法)这是运用最多的基于统计理论的标准化,经过处理的数据符合标准正态分布,即均值为 0,标准差为 1:y=(x-)/ 其中为样本数据的均值,为方差。3. log 函数标准化通过以 10 为底的 log 函数转换的:y=log10(x)/log10(MaxValue)4.arctan 函数标准化Y=arctan(x)*2/得到的标准化后的间间为-1,1。若想只要0,1区间,数据都应该大于等于 0。三、实现1. mapminmax 函数实现极差化对数据xn,化为xn落到区间Ymin, Ymax(默认是-1, 1),公式:xn =(Ymax-Ymin)*
27、 (xn-Xmin)/(Xmax-Xmin) + Ymin调用格式:该变换过程Y, PS = mapminmax(X,Ymin,Ymax);% PS% 对矩阵Z 实施 PS 变换过程mapminmax('apply',Z,PS);% 从Y 变换回Xmapminmax('reverse',Y,PS) ;注:(1)7.1 之前版本没有 mapminmax 函数,可以用 premnmx函数。2012 版本之前 mapminmax 函数有 bug,按标准格式调用得到的结果是错误的,需要特殊处理一下;(2) 若矩阵中有缺省数据,需要用 fixunknowns 函数。例 1
28、极差化测试程序。代码:x=1 2 4; 1 1 1; 3 2 2; 0 0 0;y,ps=mapminmax(x)% 直接调用函数对矩阵的每一行数据做化% 注意:2012 之前的版本有 bug,% 使用 mapminmax(X,Ymin,Ymax)得不到正确结果%到区间0,1可以如下处理:ps.ymin=0; %化后的最小值化后的最大值ps.ymax=1; %ps.yrange=1;%化后的极差,值为 ps.ymax-ps.ymin。若未调整该值,则逆运算会出错y1,ps=mapminmax(x,ps)x1=mapminmax('reverse',y2,ps) % 变换回来,回
29、到原来的矩阵x2=5 2 3; 1 1 1; 6 7 3; 0 0 0;y2=mapminmax('apply',x1,ps)% 对矩阵 x2 实施同样的化变换,也有 bug,结果错误% 直接编程计算对矩阵的每一列数据做化r,l=size(x);y3=(x-repmat(min(x),r,1)./(repmat(max(x),r,1)-repmat(min(x),r,1)运行结果:x =124111322000y =-1.0000-0.33331.00001.00001.00001.00001.0000-1.0000-1.0000000ps =name: 'mapmin
30、max'xrows: 4xmax: 4x1 doublexmin: 4x1 doublexrange: 4x1 doubleyrows: 4ymax: 1ymin: -1yrange: 2no_change: 0y1 =00.33331.00001.00001.00001.00001.000000000ps =name: 'mapminmax'xrows: 4xmax: 4x1 doublexmin: 4x1 doublexrange: 4x1 doubleyrows: 4ymax: 1ymin: 0yrange: 1no_change: 0x1 =124111322000x2 =523111673000y2 =1.33330.33330.66671.00001.00001.00004.00005.00001.0000000y3 =0.33331.00001.00000.33330.50000.25001.00001.00000.50000002. zscore
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中国美甲桌行业投资前景及策略咨询研究报告
- 2025年中国箱式多用炉行业投资前景及策略咨询研究报告
- 2025年中国硅胶电话机按键行业市场调查、投资前景及策略咨询报告
- 2025年中国电脑化半导体器件特性测量仪行业投资前景及策略咨询研究报告
- 2025年中国琉璃金盘行业投资前景及策略咨询研究报告
- 2025年中国灰鲨鱼行业投资前景及策略咨询研究报告
- 2025年中国流化床锅炉给煤机行业投资前景及策略咨询研究报告
- 2025年中国柴油机气缸套行业市场调查、投资前景及策略咨询报告
- 2025年中国无轴封泵行业市场调查、投资前景及策略咨询报告
- 2025年中国控制脂肪及肌肉食品行业市场调查、投资前景及策略咨询报告
- 真空系统的设计计算课件
- 潘祖仁版高分子化学(第五版)课后习题答案.24401
- 投标密封条格式大全
- 搭桥手术配合改
- 《爱的教育》课外阅读指导课课件
- 10以内序数(课堂)课件
- 2021年安徽省农业信贷融资担保有限公司招聘笔试试题及答案解析
- 精选芭蕾舞男女演员之间的潜规则汇总
- Q∕SY 1770.6-2014 连续管常规修井作业规程 第6部分:速度管柱作业
- 大型污泥脱水离心机机组安装及调试工法
- 国家重点保护野生植物(Ⅱ级)采集申请表
评论
0/150
提交评论