1、2020/8/16,数据的预处理,教 材,2020/8/16,主要内容 数据的平滑处理 数据的标准化变换 数据的极差归一化变换,2020/8/16,第一节 数据的平滑处理,2020/8/16,一、 smooth函数,调用格式: yy = smooth(y) yy = smooth(y,span) yy = smooth(y,method) yy = smooth(y,span,method) yy = smooth(y,sgolay,degree) yy = smooth(y,span,sgolay,degree) yy = smooth(x,y,),2020/8/16,% 产生一个从0到2*。

2、pi的向量,长度为500 t = linspace(0,2*pi,500); y = 100*sin(t); % 产生正弦波信号 % 产生500行1列的服从N(0,152)分布的随机数,作为噪声信号 noise = normrnd(0,15,500,1); y = y + noise; % 将正弦波信号加入噪声信号 figure; % 新建一个图形窗口 plot(t,y); % 绘制加噪波形图 xlabel(t); % 为X轴加标签 ylabel(y = sin(t) + 噪声); % 为Y轴加标签,【例3.1-1】产生一列正弦波信号,加入噪声信号,然后调用smooth函数对加入噪声的正弦波进。

3、行滤波(平滑处理),2020/8/16,移动平均法: yy1 = smooth(y,30); % 利用移动平均法对y进行平滑处理 figure; % 新建一个图形窗口 plot(t,y,k:); % 绘制加噪波形图 hold on; plot(t,yy1,k,linewidth,3); % 绘制平滑后波形图 xlabel(t); % 为X轴加标签 ylabel(moving); % 为Y轴加标签 legend(加噪波形,平滑后波形);,2020/8/16,lowess方法: % 利用lowess方法对y进行平滑处理 yy2 = smooth(y,30,lowess); figure; % 新建。

4、一个图形窗口 plot(t,y,k:); % 绘制加噪波形图 hold on; plot(t,yy2,k,linewidth,3); % 绘制平滑后波形图 xlabel(t); % 为X轴加标签 ylabel(lowess); % 为Y轴加标签 legend(加噪波形,平滑后波形);,2020/8/16,rlowess方法: % 利用rlowess方法对y进行平滑处理 yy3 = smooth(y,30,rlowess); figure; % 新建一个图形窗口 plot(t,y,k:); % 绘制加噪波形图 hold on; plot(t,yy3,k,linewidth,3); % 绘制平滑后。

5、波形图 xlabel(t); % 为X轴加标签 ylabel(rlowess); % 为Y轴加标签 legend(加噪波形,平滑后波形);,2020/8/16,loess方法: % 利用loess方法对y进行平滑处理 yy4 = smooth(y,30,loess); figure; % 新建一个图形窗口 plot(t,y,k:); % 绘制加噪波形图 hold on; plot(t,yy4,k,linewidth,3); % 绘制平滑后波形图 xlabel(t); % 为X轴加标签 ylabel(loess); % 为Y轴加标签 legend(加噪波形,平滑后波形);,2020/8/16,s。

6、golay方法: % 利用sgolay方法对y进行平滑处理 yy5 = smooth(y,30,sgolay,3); figure; % 新建一个图形窗口 plot(t,y,k:); % 绘制加噪波形图 hold on; plot(t,yy5,k,linewidth,3); % 绘制平滑后波形图 xlabel(t); % 为X轴加标签 ylabel(sgolay); % 为Y轴加标签 legend(加噪波形,平滑后波形);,2020/8/16,2020/8/16,二、smoothts函数,调用格式: output = smoothts(input) output = smoothts(inpu。

7、t, b, wsize) % 盒子法 output = smoothts(input, g, wsize, stdev) % 高斯窗方法 output = smoothts(input, e, n) % 指数法,2020/8/16,【例3.1-2】现有上海股市日开盘价、最高价、最低价、收盘价、收益率等数据,时间跨度为2005年1月4日至2007年4月3日,共510组数据。完整数据保存在文件examp03_02.xls中,其中部分数据如下图所示。试调用smoothts函数对日收盘价数据进行平滑处理,2020/8/16,绘制日收盘价曲线图: % 从文件examp03_02.xls中读取数据 x =。

8、 xlsread(examp03_02.xls); price = x(:,4); % 提取矩阵x的第4列数据,即收盘价数据 figure; % 新建一个图形窗口 % 绘制日收盘价曲线图,黑色实线,线宽为2 plot(price,k,LineWidth,2); % 为X轴和Y轴加标签 xlabel(观测序号); ylabel(上海股市日收盘价);,2020/8/16,盒子法: % 用盒子法平滑数据,窗宽为30 output1 = smoothts(price,b,30); % 用盒子法平滑数据,窗宽为100 output2 = smoothts(price,b,100); figure; % 。

9、新建一个图形窗口 plot(price,.); % 绘制日收盘价散点图 hold on % 绘制平滑后曲线图,黑色实线,线宽为2 plot(output1,k,LineWidth,2); % 绘制平滑后曲线图,黑色点划线,线宽为2 plot(output2,k-.,LineWidth,2); xlabel(观测序号); ylabel(Box method); % 为X轴和Y轴加标签 % 为图形加标注框 legend(原始散点,平滑曲线(窗宽30),平滑曲线(窗宽100),location,northwest);,2020/8/16,用高斯窗方法平滑数据: output3 = smoothts(。

10、price,g,30); % 窗宽为30,标准差为默认值0.65 output4 = smoothts(price,g,100,100); % 窗宽为100,标准差为100 figure; % 新建一个图形窗口 plot(price,.); % 绘制日收盘价散点图 hold on % 绘制平滑后曲线图,黑色实线,线宽为2 plot(output3,k,LineWidth,2); % 绘制平滑后曲线图,黑色点划线,线宽为2 plot(output4,k-.,LineWidth,2); % 为X轴和Y轴加标签 xlabel(观测序号); ylabel(Gaussian window method)。

11、; legend(原始散点,平滑曲线(窗宽30,标准差0.65),. 平滑曲线(窗宽100,标准差100),location,northwest);,2020/8/16,用指数法平滑数据: output5 = smoothts(price,e,30); % 用指数法平滑数据,窗宽为30 output6 = smoothts(price,e,100); % 用指数法平滑数据,窗宽为100 figure; % 新建一个图形窗口 plot(price,.); % 绘制日收盘价散点图 hold on % 绘制平滑后曲线图,黑色实线,线宽为2 plot(output5,k,LineWidth,2); %。

12、 绘制平滑后曲线图,黑色点划线,线宽为2 plot(output6,k-.,LineWidth,2); % 为X轴和Y轴加标签 xlabel(观测序号); ylabel(Exponential method); legend(原始散点,平滑曲线(窗宽30),平滑曲线(窗宽100),location,northwest);,2020/8/16,2020/8/16,三、medfilt1函数(一维中值滤波),调用格式: y = medfilt1(x,n) y = medfilt1(x,n,blksz) y = medfilt1(x,n,blksz,dim),2020/8/16,% 产生一个从0到2*。

13、pi的向量,长度为500 t = linspace(0,2*pi,500); y = 100*sin(t); % 产生正弦波信号 % 产生500行1列的服从N(0,152)分布的随机数,作为噪声信号 noise = normrnd(0,15,500,1); y = y + noise; % 将正弦波信号加入噪声信号 figure; % 新建一个图形窗口 plot(t,y); % 绘制加噪波形图 xlabel(t); % 为X轴加标签 ylabel(y = sin(t) + 噪声); % 为Y轴加标签,【例3.1-3】产生一列正弦波信号,加入噪声信号,然后调用medfilt1函数对加入噪声的正弦。

14、波进行滤波(平滑处理),2020/8/16,中值滤波: % 调用medfilt1对加噪正弦波信号y进行中值滤波,并绘制波形图 yy = medfilt1(y,30); % 指定窗宽为30,对y进行中值滤波 figure; % 新建一个图形窗口 plot(t,y,k:); % 绘制加噪波形图 hold on % 绘制平滑后曲线图,黑色实线,线宽为3 plot(t,yy,k,LineWidth,3); xlabel(t); % 为X轴加标签 ylabel(中值滤波); % 为Y轴加标签 legend(加噪波形,平滑后波形);,2020/8/16,2020/8/16,第二节 数据的标准化变换,202。

15、0/8/16,一、 标准化变换公式,2020/8/16,二、标准化变换的MATLAB实现,调用格式: Z = zscore(X) Z,mu,sigma = zscore(X) = zscore(X,1) = zscore(X,flag,dim),1. zscore函数,2020/8/16,% 调用rand函数产生一个10行,4列的随机矩阵,每列服从不同的均匀分布 x = rand(10,1), 5*rand(10,1), 10*rand(10,1), 500*rand(10,1) % 调用zscore函数对x进行标准化变换(按列标准化), % 返回变换后矩阵xz,以及矩阵x各列的均值构成的向量。

16、mu,各列的标准差构成的向量sigma xz,mu,sigma = zscore(x) std(xz) % 求标准化后矩阵xz的各列的标准差,【例3.2-1】调用rand函数产生一个随机矩阵,然后调用zscore函数将其按列标准化,2020/8/16,第三节 数据的极差归一化变换,2020/8/16,一、 极差归一化变换公式,2020/8/16,二、极差归一化变换的MATLAB实现,调用格式: R = rscore(X) R,xmin,xrange = rscore(X) = rscore(X,dim),1. 自编的rscore函数,2020/8/16,% 调用rand函数产生一个10行,4列。

17、的随机矩阵,每列服从不同的均匀分布 x = rand(10,1), 5*rand(10,1), 10*rand(10,1), 500*rand(10,1) % 调用rscore函数对x按列进行极差归一化变换, % 返回变换后矩阵R,以及矩阵x各列的最小值构成的向量xmin,各列的极差构成的向量xrange R,xmin,xrange = rscore(x),【例3.3-1】调用rand函数产生一个随机矩阵,然后调用rscore函数对其按列进行极差归一化变换,2020/8/16,调用格式: Y,PS = mapminmax(X,YMIN,YMAX) Y,PS = mapminmax(X,FP) 。

18、Y = mapminmax(apply,X,PS) X = mapminmax(reverse,Y,PS) dy_dx = mapminmax(dy_dx,X,Y,PS) dx_dy = mapminmax(dx_dy,X,Y,PS),2. 自带的mapminmax函数,2020/8/16,% 调用rand函数产生一个10行,4列的随机矩阵,每列服从不同的均匀分布 x = rand(10,1), 5*rand(10,1), 10*rand(10,1), 500*rand(10,1) % 调用rscore函数对x按列进行极差归一化变换, % 返回变换后矩阵R,以及矩阵x各列的最小值构成的向量xmin,各列的极差构成的向量xrange FP.ymin = 0; FP.ymax = 1; y = mapminmax(x,FP),【例3.3-2】调用rand函数产生一个随机矩阵,然后调用mapminmax函数对其按列进行极差归一化变换。