数据预处理(四)——数据标准化

主要内容:
数据预处理的必要性
数据清洗
数据集成
数据标准化
数据规约
数据变换与离散化
利用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]]

你可能感兴趣的:(python机器学习与数据挖掘,python,机器学习)