Matlab自带的数据标准化方法(mapminmax和mapstd)详细解析
来源:互联网 发布:建筑工程造价算法 编辑:程序博客网 时间:2024/06/07 05:17
转自:http://blog.sina.com.cn/s/blog_b3509cfd0101bt9u.html
Matlab神经网络工具箱自带了两个数据标准化处理命令,一个是mapminmax,另一个是mapstd。下面,分别对这两个命令进行解析。
一、mapminmax
mapminmax按行逐行地对数据进行标准化处理,将每一行数据分别标准化到区间[ymin, ymax]内,其计算公式是:y = (ymax-ymin)*(x-xmin)/(xmax-xmin) + ymin。如果某行的数据全部相同,此时xmax=xmin,除数为0,则Matlab内部将此变换变为y = ymin。
(1) [Y,PS] = mapminmax(X,YMIN,YMAX)——将数据X归一化到区间[YMIN,YMAX]内,YMIN和YMAX为调用mapminmax函数时设置的参数,如果不设置这两个参数,这默认归一化到区间[-1, 1]内。标准化处理后的数据为Y,PS为记录标准化映射的结构体。
【例1】Matlab命令窗口输入:X=12+8*randn(6,8); [Y,PS] = mapminmax(X,0,1),则将随机数矩阵X按行逐行标准化到区间[0,1]内,并返回标准矩阵Y和结构体PS(至于它的作用,将在后面介绍到),它记录了X的行数、X中各行的最大值与最小值等信息。这里:
PS =
(2) [Y,PS] = mapminmax(X,FP) ——将YMIN和YMAX组成的结构体FP作为映射参数(FP.ymin和FP.ymax.)对进行标准化处理。
【例2】Matlab命令窗口输入:XX=12+8*randn(6,8); FP.ymin=-2; FP.ymax=2; [YY,PSS] = mapminmax(XX,FP),则将随机数矩阵X按行逐行标准化到区间[-2,2]内,并返回标准矩阵YY和结构体PSS。
(3) Y = mapminmax('apply',X,PS) ——根据已有给定的数据标准化处理映射PS,将给定的数据X标准化为Y。
【例3】在例1的基础上,Matlab命令窗口输入:XXX=23+11*randn(6,8); YYY= mapminmax('apply',XXX,PS),则根据例1的标准化映射,将XXX标准化(结果可能不全在先前设置的[YMIN,YMAX]内,这取决于XXX中数据相对于X中数据的最大值与最小值的比较情况)。注意:此时,XXX的行数必须与X的行数(PS中已记录)相等,否则无法进行;列数可不等。
(4) X = mapminmax('reverse',Y,PS) ——根据已有给定的数据标准化处理映射PS,将给定的标准化数据Y反标准化。
【例4】在例1的基础上,Matlab命令窗口输入:YYYY=rand(6,8); XXXX = mapminmax('reverse', YYYY,PS),则根据例1的标准化映射,将YYYY反标准化。注意:此时,YYYY的行数必须与X的行数(PS中已记录)相等,否则无法进行;列数可不等。
(5) dx_dy = mapminmax('dx_dy',X,Y,PS) ——根据给定的矩阵X、标准化矩阵Y及映射PS,获取逆向导数(reverse derivative)。如果给定的X和Y是m行n列的矩阵,那么其结果dx_dy是一个1×n结构体数组,其每个元素又是一个m×n的对角矩阵。这种用法不常用,这里不再举例。
实例:
x=[1 3.5 5;20 35 40; 100 250 300];
[y,ps] = mapminmax(x,0,1)
y2=[0 0.625 0.5 1;0 0.75 0.5 1;0 0.75 0.5 1];
y1 = mapminmax('reverse',y2,ps)
则运行后
归一后:y=
0 0.6250 1.0000
0 0.7500 1.0000
0 0.7500 1.0000
反归一后:y1=
1.0000 3.5000 3.0000 5.0000
20.0000 35.0000 30.0000 40.0000
100.0000 250.0000 200.0000 300.0000
注意与y1要与x的行数相等!!
二、mapstd
mapstd按行逐行地对数据进行标准化处理,将每一行数据分别标准化为均值为ymean(默认为0)、标准差为ystd(默认为1)的标准化数据,其计算公式是:y = (x-xmean)*(ystd/xstd) + ymean。如果设置的ystd=0,或某行的数据全部相同(此时xstd =0),存在除数为0的情况,则Matlab内部将此变换变为y = ymean。
mapstd有以下五种使用方式,与mapminmax基本类似,这里不再举例。
[Y,PS] = mapstd(X,ymean,ystd)
[Y,PS] = mapstd(X,FP)
Y = mapstd('apply',X,PS)
X = mapstd('reverse',Y,PS)
dx_dy = mapstd('dx_dy',X,Y,PS)
- Matlab自带的数据标准化方法(mapminmax和mapstd)详细解析
- Matlab中的数据预处理-归一化(mapminmax)与标准化(mapstd)
- Matlab的mapminmax函数说明
- Matlab的mapminmax函数说明
- 数据的标准化方法
- 数据的标准化方法
- 数据标准化方法z-score讲解(matlab)
- Matlab中数据的标准化处理
- matlab zscore函数 数据的标准化处理
- 常用的数据标准化方法
- 常用的数据标准化方法
- 常用的数据标准化方法
- Matlab数据标准化
- 用安卓自带的原生方法解析从webservice获取的json数据
- 用安卓自带的原生方法解析从webservice获取的json数据
- matlab自带的滤波器
- MATLAB】MATLAB的自带数据及可生成数据的函数
- matlab自带的分类器的测试和分类
- nexus的搭建
- 读书 -《传习录》
- Netty+Zookeeper实现一个类似Dubbo的RPC框架
- web环境配置中,日志的配置
- (c++)sum=2+5+8+11+14+…,输入正整数n,求sum的前n项和。
- Matlab自带的数据标准化方法(mapminmax和mapstd)详细解析
- html 5 触摸屏事件
- 在eclipse中用maven 创建springmvc项目
- maven部署的时候同时部署source.jar
- MyBatis SQL xml处理小于号与大于号
- Hyperscan编译
- linux下robotframework执行测试用例的几种方法
- 数据库连接池的理解和使用
- BZOJ 1087: [SCOI2005]互不侵犯King