主要内容:
数据预处理的必要性
数据清洗
数据集成
数据标准化
数据规约
数据变换与离散化
利用sklearn进行数据预处理
小结
四、数据标准化
不同特征之间往往具有不同的量纲,由此造成数值间的差异很大。因此为了消除特征之间量纲和取值范围的差异可能会造成的影响,需要对数据进行标准化处理。
1.离差标准化数据
离差标准化是对原始数据所做的一种线性变换,将原始数据的数值映射到[0,1]区间。
数据的离差标准化。
import numpy as np
def MinMaxScale(data):
data = (data-data.min())/(data.max()-data.min())
return data
x = np.array([[1.,-1.,2.],[2.,0.,0.],[0.,1.,-1.]])
print('原始数据为:\n',x)
x_scaled = MinMaxScale(x)
print('标准化后矩阵为:\n',x_scaled,end = '\n ')
# 原始数据为:
# [[ 1. -1. 2.]
# [ 2. 0. 0.]
# [ 0. 1. -1.]]
# 标准化后矩阵为:
# [[0.66666667 0. 1. ]
# [1. 0.33333333 0.33333333]
# [0.33333333 0.66666667 0. ]]
2.标准差标准化数据
标准差标准化又称零均值标准化或z分数标准化,是当前使用最广泛的数据标准化方法。经过该方法处理的数据均值为0,标准化为1。
数据的标准差标准化。
def StandardScale(data):
data = (data-data.mean())/data.std()
return data
x = np.array([[1.,-1.,2.],[2.,0.,0.],[0.,1.,-1.]])
print('原始数据为:\n',x)
x_scaled = StandardScale(x)
print('标准化后矩阵为:\n',x_scaled,end = '\n')
# 原始数据为:
# [[ 1. -1. 2.]
# [ 2. 0. 0.]
# [ 0. 1. -1.]]
# 标准化后矩阵为:
# [[ 0.52128604 -1.35534369 1.4596009 ]
# [ 1.4596009 -0.41702883 -0.41702883]
# [-0.41702883 0.52128604 -1.35534369]]