数据预处理

缺失值处理

一、MATLAB实现插值:

自身提供了内部的功能函数,interp1(一维插值),interp2(),...,interpn()

yi=interp1(x,y,xi,'method')

method:

'nearest' 最近邻插值,'linear' 线性插值,'spline' 三次样条插值,'cublic' 立方插值,缺省时 分段线性插值

z=interp2(x0,y0,z0,x,y,'method')

要求x0,y0单调;x,y可取为矩阵,或x取行向量,y取列向量,x,y的值分别不能超出x0,y0的范围

例:测得平板表面3x5网格点处的温度分别为:

8281808284
7963616581
8484828586

 

 

 

 

试作出平板表面的温度分布曲面z=f(x,y)的图形

1、先在三维坐标画出原始数据,画出粗糙的温度分布曲线图

x=1:5;

y=1:3;

temps=[82 81 80 82 84;79 63 61 65 81;84 84 82 85 86];

mesh(x,y,temps)

2、以平滑数据在x,y方向上每隔0.2个单位的地方进行插值

xi=1:0.2:5;

yi=1:0.2:3;

zi=interp2(x,y,temps,xi,yi','cubic');

mesh(xi,yi,zi)

二、用MATLAB作散点数据的插值计算

cz=griddata(x,y,z,cx,cy,'method')

method:

'nearest' 最近邻插值,'linear' 线性插值,'spline' 三次样条插值,'cublic' 立方插值,缺省时 分段线性插值,'v4 ' MATLAB提供的插值算法,公认效果好

 

异常值处理

异常值是数据集中偏离大部分数据的数据。从数据值上表现为:数据集中与平均值的偏差超过两倍标准差的数据,其中与平均值偏差超过三倍标准差的数据,称为高度异常的异常值。

处理方法:

1、直接删除异常值

2、暂且保留,待结合整体模型综合分析

3、均值或其他统计量代替

4、将其视为缺失值,利用统计模型填补

异常值出现的地方往往是导数急剧变化的地方,利用傅里叶变换将空间域转换为频率域

小波异常值提取

信号的突变点和奇异点等不规则部分通常包含重要信息,一般信号的奇异性分为两种情况:

(1)信号在某一时刻其幅值发生突变,引起信号的非连续,这种类型的突变称为第一类型的间断点。

(2)信号在外观上很光滑,幅值没有发生突变,但是信号的一阶微分有突变且一阶微分不连续,这种类型的突变称为第二类型

的间断点。

应用小波分析可以检测出信号中的突变点的位置、类型以及变化的幅度。

主成分分析

主成分分析是一种通过降维技术把多个变量化为少数几个主成分(即综合变量)的多元统计方法,这些主成分能够反映原始变量的大部分信息,通过表示为原始变量的线性组合,为了使得这些主成分所包含的信息互不重叠,要求各主成分之间互不相关。一般来说,当研究的问题涉及多个变量,并且变量间相关性明显,即包含的信息有所重叠时,可以考虑主成分分析的方法,这样更容易抓住事物的主要矛盾,使问题简化。

数据的平滑处理

 一、smooth函数

例:产生一列正弦波信号,加入噪声信号,然后调用smooth函数对加入噪声的正弦波进行滤波(平滑处理) 

t=linspace(0,2*pi,500)';%产生一个从0到2*pi的向量,长度为500
y=100*sin(t);%产生正弦波信号
%产生500行1列的服从N(0,15)分布的随机数,作为噪声信号
noise=normrnd(0,15,500,1);
y=y+noise;%将正弦信号加入噪声信号
figure;%新建一个图形窗口
plot(t,y);%绘制加噪波形图
xlabel('t');%为X轴加标签
ylabel('y=sin(t)+噪声');%为Y轴加标签

%移动平均法
yy1=smooth(y,30);%窗口大小为30
figure;
plot(t,y,'k');%绘制加噪波形图
hold on;
plot(t,yy1,'k','linewidth',3);%绘制平滑后波形图
xlabel('t');
ylabel('moving');%为Y轴加标签
legend('加噪波形','平滑后波形');

rlowess方法:yy=smooth(y,30,'rlowess')

loess方法:yy=smooth(y,30,'loess')

二、smoothts函数

output=smoothts(input)

output=smoothts(input,'b',wsize)%盒子法

output=smoothts(input,'g',wsize,stdev)%高斯窗方法,stdev为原始数据的标准差

output=smoothts(input,'e',n)%指数

三、medfilt1函数(一维中值滤波)

y=medfilt1(x,n)

y=medfilt1(x,n,blksz)

y=medfilt1(x,n,blksz,dim)

数据拟合

向量x,y

A=polyfit(x,y,2)

z=polyval(A,x)

plot(x,y,'k+',x,z,'r') %作出数据点和拟合曲线的图形

vpa(poly2sym(A),'精度')

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值