一,标准化
即把一个向量的均值和标准差算出来,然后每一个分量都减去均值再除以标准差,得到的就是归一化之后的结果。
归一化之后的数据有正有负,服从均值为0方差为1的标准正态分布。
python实现函数:
def standardization(data):
mu = np.mean(data, axis=0)
sigma = np.std(data, axis=0)
return (data - mu) / sigma
其实一般机器学习中,把数据送入分类器比如SVM或者神经网络之前,都要对提取好的特征做标准化,虽然论文说的是normalization,但是其实做的是standardization。
实验
- 在matlab中生成一组正态分布的随机数
a = random('Normal', 3,3, [1, 100]);%均值为3,标准差为3,1行100列
figure,plot(a,'b'),hold on
b = (a - mean(a))/std(a,0,2);%std