matlab归一化和标准化

    归一化是将数据限制在[0,1]之间,标准化是将数据限制在一定范围内,一般是指正态化,即均值是0,方差是1,即使数据不满足正态分布,亦可以使用这个方法。

归一化一般采用的是最大最小规范化对原始数据进行线性变换x=(X-Xmin)/(Xmax-Xmin)

标准化一般采用的是Z-score规范化:就是均值是0,方差是1的正太分布。

在matlab里面归一化的方法有:premnmx、postmnmx、tramnmx、mapminmax。premnmx指的是归一到[-1 1],tramnmx是变化测试集输入结果,postmnmx是转化测试集输出结果。

mapminmax这个函数可以把矩阵的每一行归一到[a b].默认为[-1 1]. 

    [p_train,PS] = mapminmax(P_train,a,b). 其中P_train是需要归一的矩阵,train是结果

 当需要对另外一组数据归一时,比如SVM中的training data用以上方法归一,而test data就可以用下面的方法做相同的归一:t_train = mapminmax('apply',T_train,PS)

当需要把归一的数据还原时,可以用以下命令: T_sim = mapminmax('reverse',t_sim,PS)

 %数据归一化
[p_train,ps_input]=mapminmax(P_train,0,1);
[t_train,ps_output]=mapminmax(T_train,0,1);
p_test=mapminmax('apply',P_test,ps_input);
%数据反归一化
T_sim=mapminmax('reverse',t_sim,ps_output);

 

你可能感兴趣的:(matlab归一化和标准化)