1.均值移除(标准化) 由于一个样本的不同特征值差异较大,不利于使用现有机器学习算法进行样本处理。均值移除可以让样本矩阵中的每一列的平均值为0,标准差为1。 确保每一个特征列的数值都在类似的数据范围之间,防止某一个特征列数据天然的数值太大而一家独大影响结果 使用sklearn import numpy as np import sklearn.preprocess as sp sample = np.array([ [2, 4, 5, -1], [3, 1, 7, -2], [6, -3, 2, -1], ], dtype="float") print(sp.scale(sample)) #[[-0.98058068 1.16247639 0.16222142 0.70710678] #[-0.39223227 0.11624764 1.13554995 -1.41421356] #[ 1.37281295 -1.27872403 -1.29777137 0.70710678]]
2.归一化
归一化就是把所有数据都转化成[0,1]或者[-1,1]之间的数,其目的是为了取消各维数据之间的数量级差别,避免因为输入输出数据数量级差别大而造成网络预测误差过大。
归一化作用:
1)为了后面数据处理的方便,归一化可以避免一些不必要的数值问题。
2)为了程序运行时收敛速度更快
3)统一量纲。样本数据的评价标准不一样,需要对其量纲化,统一评价标准,这算是应用层面的需求。
4)避免神经元饱和。就是说当神经元的激活在接近0或者1时,在这些区域,梯度几乎为0,这样在反向传播过程中,局部梯度就会接近于0,这样非常不利于网络的训练。
5)保证输出数据中数值小的不被吞食。
import numpy as np
import sklearn.preprocess as sp
samples = np.array([[17., 100., 4000],
[20., 80., 5000],
[23., 75., 5500]])
print(sp.normalize(samples, norm='l1')
#[[0.00412922 0.02428953 0.97158125]
#[0.00392157 0.01568627 0.98039216]
#[0.00410861 0.01339764 0.98249375]]
标签:机器,sp,学习,归一化,np,import,数据,预处理,sklearn From: https://www.cnblogs.com/duzw/p/17027779.html