#数据规范化

1、为什么要规范化?

把有维公式变成无量纲公式。 数据标准化是将数据缩放为落在小的特定区间内。 规范化主要是为了方便数据处理而提出的,将数据映射到0 ~ 1的范围内进行处理,会更加方便快捷,经过转换成为无量纲的表达式,成为标量。 这既保证了运算的方便,又能突出物理量的本质含义。 规范化的重要作用是消除物理量值和维度差异的影响,为所有物理量建立统一的尺度,并在此尺度下考虑试验数据的变化规律。 规范化主要是消除维度的影响

据了解,对正规化另有解释

我觉得在这里举个小例子会更好。 后期再加上。

2、是用样本规范化还是用特征规范化?

train_data=

[ 1 3 7

2(8) )。

每行表示示例,每行表示示例的特征。

首先,我认为数据应该按特征正规化,也就是按行正规化。

3、训练样本和测试样本应该一起规范化还是分别规范化?

为了回归,我觉得训练样本的输入和测试样本的输入应该统一规范化,训练样本的输出和测试样本的输出应该统一规范化。

因为示例中的一行属于同一属性,所以必须将所有输入合并到一起并规范化。

当首先将训练样本归一化时,例如

rain_data=

[ 1 3 7

2(8) )。

根据输入样本的归一化最大最小信息对测试样本进行归一化,显然测试样本的9、10不在1-7的范围内,是不合理的。

test_data=

9 10

6 2

4、matlab函数将数据规范化,

一、基本使用方法

[y,PS]=mapminmax(x,ymin,ymax ) %如果在此不指定ymin,ymax,ymax将1,x规范化为0,1的范围,则[y,PS]=mapminmax

mapminmax(data的默认规范化范围为[-1,1 ],其中每行都被规范化。一定记住是对行进行归一化!!!

在ps记录的采样矩阵x的信息中,记录了x的行数、x的各行的最大值和最小值等信息。

运行matlab代码:

x=[2、3、4、5、6;

七、八、九、十、十一

六、五、四、五、七;

[xx,PS ]=最大最小(x,0,1 );

运行后:

实际上,mapminmax对于x的每一行都是y=(ymax-ymin ) ) *(x-xmin )/(xmax-xmin ) ymin;

y是上表中各行的数值,即x是用上面的算法运算的结果。

ps中记录的x运算前后的信息。 xrows表示x行数,xmax表示x每行的最大值,xmin表示x每行的最小值xrange表示x每行的数值范围,yrows表示上表中的行数,ymax表示y的最大值。