1.中心化
使变量均值为0的预处理过程叫做中心化。
按我的理解,可以将X看做一个数据云,中心化就是将数据云的“重心”移到原点的位置。
中心化代码的例子:
D=784 #数据维度
N=128 #样本数量
X=np.random.randn(N,D)
X-=np.mean(x,axis=0)
mean()函数是求平均值,axis=0是行行相加,也就是不改变样本的维度;axis=1的话是列列相加,也就是不改变样本的数量。在线性代数里,a=[1,2,…,n]就叫做n维向量。 X中,一行为1个样本,1个样本中有784个数据,所以这个样本有784个维度(说的太啰嗦了…)
2.规范化
最常用的规范化是 中心化的X除以标准差
D=784 #数据维度
N=128 #样本数量
X=np.random.randn(N,D)
X-=np.mean(X,axis=0)
X/=np.std(X,axis=0)
std()函数是计算X的标准差,r是平均值,方差是标准差的平方。
3.中心化和规范化的组合操作
3.1操作一
对随机变量的标准化,变为均值为0,方差为1的分布。数学公式为:x^=(x-u)/α,u为均值,α为标准差。
3.2操作二
把每个属性的取值都统一到[-1,1]区间内这个方法利用每个属性的最大值和最小值很容易实现。
N=128 #128个样本
D=784 #每个样本784个维度
X=np.random.randn(N,D)
minX=np.min(X,axis=0)
maxX=np.max(X,axis=0)
X=(X-minX)/(maxX-minX) #1
X=2*X-1 #2
1,将x取值都在[0,1]之间
2,将x取值平移,在[-1,1]内
这个方法比较容易受到噪声或异常值的影响。