我们在进行模型建立时,如使用机器学习回归等时
通过使用把值比较大,比较多的数据,通过规范化,可以是模型更加准确,且规范化不改变数据的原来关联性或者特征。
但是却让数据间的关系更加凸显。
1 最小最大化(离差标准化)
将数值转换到【0,1】之间。离差标准化保留了原始数据中的关系,能够消除量纲和数据取值范围的最简单方法。
比如:一类数据全是10000这么大的数字,一列数据 是1,23,3,2,5这种数据,用来做回归等会让模型不准确。
但是 它的缺点是:如果数据集中或者某个数值很大,规范化后的各值会很接近于0,并且会相差不大。 (对离群值异常敏感)
2 零-均值规范法(也叫标准差规范法)
经过处理的数据的均值为0,标准差为1
这种规范方法应用广泛,但是均值和标准差受到离群点的影响很大,因此常对此方法进行改进。
3 小数定标规范化
通过移动属性值的小数位数,将属性变到[-1,1]之间。
clear;clc;
data='data.xls' ;
%读取数据
[data,~]=xlsraed(data);
%%最小-最大规范化
data1=mapminmax(data',0,1) %由于matlab是对行 进行最大最小化,需要转置
data1=data' %再转置,使数据回到原来状态
%% 0-均值规范化
data2=zscore(data); %专门的内置函数
%%小数定标规范化
max_=max(abs(data));
max_power(10,cell(log10(max_)));
cols=size(max_,2);
data_dot=data;
for i=1:cols
data_dot(:,i)=data(:,i)/max_(1,i)
end
%%打印结果
%用disp即可