数据预处理
机器是看不懂绝大部分原始数据的,为了让让机器看懂,需要将原始数据进行预处理。
引入模块和数据:
import numpy as np
from sklearn import preprocessing
data = np.array([[3, -1.5, 2, -5.4],
[0, 4, -0.3, 2.1],
[1, 3.3, -1.9, -4.3]]) # 原始数据矩阵 shape=(3,4)
最常用的数据预处理技术:
1. 均值移除(Mean removal)/ 标准化处理
把每个特征的平均值移除,以保证特征均值为0(即标准化处理),这样做可以消除特征彼此间的偏差,从而使数据具有可比性。
data_standardized=preprocessing.scale(data)
print ("原始data\n",data)
print ("\n经过标准化处理的data\n",data_standardized)
print ("\n原始:mean = ",data.mean(axis=0))
print ("\n经过标准化处理:mean = ",data_standardized.mean(axis=0))
# 或者:print ("\n经过标准化处理:mean = ",np.mean(data_standardized,axis=0))
print ("\n原始:std deviation = ",data.std(axis=0))
print ("\n进过标准化处理:std deviation = ",data_standardized.std(axis=0))
代码运行结果:
原始data
[[ 3. -1.5 2. -5.4]
[ 0. 4. -0.3 2.1]
[ 1. 3.3 -1.9 -4.3]]
经过标准化处理的data
[[ 1.33630621 -1.40451644 1.29110641 -0.86687558]
[-1.06904497 0.84543708 -0.14577008 1.40111286]
[-0.26726124 0.55907936 -1.14533633 -0.53423728]]
原始:mean = [ 1.333