数据的预处理(Data Preprocessing)
2 Data Preprocessing数据的预处理
数据预处理的几种方法
2,1 数据的零点中心化
数据的零点中心化的目的就是为了把数据的整体分布拉回到原点附近,也就是让数据的整体均值变为0。
2,2 数据的标准化
数据的标准化这个词比较难理解,从统计学的角度讲,经过这一步的处理,原始数据的标准差会变为1。换句话说,我的个人理解是如果原始数据分散的比较开,也就是高斯曲线的sigma比较大,则经过这一步处理后,分散的比较开的数据会被拉拢回来。比如说下图黄色曲线的数据分布。
如果,原始数据本来分布的就过于集中,经过这一步处理后,数据反而会变的相对松散。例如下图蓝色曲线的数据分布。
数据的零点中心化和标准化是神经网络的数据预处理中最为常见的两个方法。可以用公式总结为:
其中,mean表示均值,sigma表示标准差。下面我通过两个例子看看这一过程究竟发生了什么。
2,3 以一维数据为例:
下图是我在jupyter notebook中所画的5个狗狗身高的一维数据集。x表示的是样本数,y表示的是该样本的高度。
import numpy as np
import matplotlib.pyplot as plt
data = [600,470,170,430,300]
num=len(data)
x=np.arange(num)
plt.figure()
plt.stem(x,data,label='dog(mm)')
plt.legend()
分别求出这组数据的mean和sigma并在图中表示出来
print('data=',data)
mean_data=np.mean(data)
print('mean=',mean_data)
sigma_data=np.std(data)
print('sigma=',sigma_data)