规范化是指在处理需要处理的数据后,将其限制在所需的范围内(通过某种算法)。 首先正规化是为了便于后面的数据处理,其次是为了保证程序执行时的收敛速度。
mapminmax函数
此函数将矩阵的每一行转换为[-1 1]. [y1,PS]=mapminmax(x1 )。 这里,x1的结果是需要一次化的矩阵y1。
函数接口:
[Y,PS ]=最大最大值(x ) ]
[Y,PS ]=最大最小(x,FP ) )。
y=map minmax ((‘apply’,x,PS ) ) ) )。
x=最大最小值(‘reverse’,y,PS ) )。
算法原理:
假设x只有有限的实数值,并且每行的元素都不相等。 如果有相同的元素,例如xt=[1 1 1]的行,此时xmax=xmin=1,此时的变换为y=ymin,matlab内部就可以这样解决.否则应该除以0,没有意义!
y=(ymax-ymin ) (*(x-xmin )/)/(xmax-xmin ) ymin; 特殊情况: y=ymin; http://www.Sina.com/http://www.Sina.com /
x1=[ 1,2,3 ]; [y,PS]=mapminmax(x1 );
x1=[1 2 3],从图中可以看出,对于x1,xmin=1,xmax=3; ymax=1,ymin=-1
采用该映射f:2*(x-xmin )/(xmax-xmin ) (-1 )。
y(1)=2*(1-1)/(3-1) )-1 )=-1;
y(2)=2*(2-1)/(3-1) (-1 )=0;
y(3)=2*(3-1)/(3-1) )-1 )=1;
上面算法的映射函数中,案例1:特殊情况可以自己设置。 默认值为- 1,1。
案例2:验证映射
ps.ymin=0; x1=[1 2 3]; [y,PS ]=最大最小(x 1,PS ) )。
y(1)=(1-0) ) (1-1)/(3-1)0=0;ymin,和ymax是参数
如果对x1=[1 2 3]采用某种归一化方式,现在对x2=[4 5 6]采用相同的归一化方式[相同的映射]。 可以做到以下:
即,x1所采用的归一化映射记录在:f:(1-(-1 ) ) x-1 )/(3-1)-1 )、() ps中)、x2也采用该映射。
x2=[4 5 6],用这个映射来计算一下。
y2(4)=2(4-1)/(3-1) (-1 )=2
y2(5)=2(5-1)/(3-1) (-1 )=3
y2(6)=2)6-1(/3-1 )-1 )=4 案例3:修改参数
x=map minmax (‘reverse’,y,PS ) )的作用是进行逆正规化,并将正规化后的数据逆正规化以获得原始数据: