数据规范中的归一化与标准化:
A.归一化 vs. 标准化
归一化:要把你需要处理的数据经过处理后(通过某种算法)限制在你需要的一定范围内。首先归一化是为了后面数据处理的方便,其次是保正程序运行时收敛加快。一般指将数据限制在[0 1]之间。
》把数变为(0,1)之间的数,主要是为了数据处理方便提出来的,把数据映射到0-1之间处理,更便携快速;
》把有量纲表达式变为无量纲表达式,成为纯量;
》一般采用最大-最小规范化对原始数据进行线性变换:X*=(X-Xmin)/(Xmax-Xmin)
标准化:对原始数据进行缩放处理,限制在一定的范围内。一般指正态化,即均值为0,方差为1。即使数据不符合正态分布,也可以采用这种方式方法,标准化后的数据有正有负。
由于信用指标体系的各个指标度量单位是不同的,为了能够将指标参与评价计算,需要对指标进行规范化处理,通过函数变换将其数值映射到某个数值区间
》数据同趋化处理:解决不同性质数据问题,对不同性质指标直接加总不能正确反映不同作用力的综合结果,须先考虑改变逆指标数据性质,使所有指标对测评方案的作用力同趋化,再加总才能得出正确结果;
》无量纲化处理:要解决数据的可比性;
》一般采用Z-score规范化:即均值为0,方差为1的正态分布;
在matlab里面,用于归一化的方法共有三种:
(1)premnmx、postmnmx、tramnmx。premnmx指的是归一到[-1 1],tramnmx是变化测试集输入结果,postmnmx是转化测试集输出结果。
(2)prestd、poststd、trastd。 prestd 归一到单位方差和零均值。
(3)自己编程。 关于自己编程一般是归一到[0.1 0.9]
B. 为什么要用归一化呢?奇异样本数据数据指的是相对于其他输入样本特别大或特别小的样本矢量。奇异样本数据存在所引起的网络训练时间增加,并可能引起网络无法收敛,所以对于训练样本存在奇异样本数据的数据集在训练之前,最好先进形归一化,若不存在奇异样本数据,则不需要事先归一化。
C. 归一还可以用 mapminmax。
这个函数可以把矩阵的每一行归一到[a b].默认为[-1 1].
[y1,PS] = mapminmax(x1,a,b). 其中x1是需要归一的矩阵,y1是结果
当需要对另外一组数据归一时,比如SVM中的training data用以上方法归一,而test data就可以用下面的方法做相同的归一:y2 = mapminmax('apply',x2,PS)
当需要把归一的数据还原时,可以用以下命令: x1_again = mapminmax('reverse',y1,PS)
D.Matlab命令说明
1. mean:计算向量均值。mean(x,1)列向量均值,mean(x,2)行向量均值。 mean2(x)矩阵均值.
2. std:计算向量均方差,std(x,0,1)列向量均方差,std(x,0,2)行向量均方差。 std2(x)矩阵均方差
3. var:计算向量方差,var(x)
4. sse:误差平方和,sse(x)。越接近于0,说明拟合的越好,数据预测越成功。
5. mse:均方差平方和,mse(x)=sse(x)/N。意义同sse
6. R-square:确定系数。确定系数是通过数据的变化来表征一个拟合的好坏。由上面的表达式可以知道“确定系数”的正常取值范围为[0 1],越接近1,表明方程的变量对y的解释能力越强,这个模型对数据拟合的也较好。