#数据规范化
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的最大值。