数据预处理:归一化、标准化

归一化:

1、把数变为(0,1)之间的小数,主要是为了数据处理方便提出来的,把数据映射到0~1范围之内处理,更加便捷快速。
2、把有量纲表达式变为无量纲表达式
归一化是一种简化计算的方式,即将有量纲的表达式,经过变换,化为无量纲的表达式,成为纯量。

归一化算法有:

1.线性转换:

y=(x-minvalue)/(maxvalue-minvalue)

2.对数函数转换:

 y=log10(x)

3.反余切函数转换:

 y=atan(x)*2/pi

归一化编程实现:

import numpy as np
from sklearn.preprocessing import MinMaxScaler #preprocessing:数据预处理模块

a = np.array([[13,62,9],[-3,6,18],[100,51,29]])# create a 3*3 matrix
model = MinMaxScaler()#MinMaxScale(copy  = True,feature_range = (0,1))
train_a = model.fit_transform(a)
print(a)
array([[0.15533981, 1.        , 0.        ],
   [0.        , 0.        , 0.45      ],
   [1.        , 0.80357143, 1.        ]])

标准化

数据的标准化是将数据按比例缩放,使之落入一个小的特定区间。由于信用指标体系的各个指标度量单位是不同的,为了能够将指标参与评价计算,需要对指标进行规范化处理,通过函数变换将其数值映射到某个数值区间。
Z-score标准化,我们在衡量数据的分布时,通过对数据进行标准化,将数据转换为均值0,标准差为0的分布。

Z-score = (X-mean(x))/std

标准化的编程实现:

#scale()方法
import numpy as np
from sklearn.preprocessing import scale
a = np.array([[13,62,9],[-3,6,18],[100,51,29]])
train_a = scale(a)
print(train_a)
array([[-0.52293602,  0.92188257, -1.18195176],
       [-0.87647023, -1.38970358, -0.08151391],
       [ 1.39940625,  0.46782101,  1.26346568]])
#StandardScaler()方法
import numpy as np
from sklearn.preprocessing import StandardScaler
a = np.array([[13,62,9],[-3,6,18],[100,51,29]])
model = StandardScaler()#StandardScaler(copy=True, with_mean=True, with_std=True)
print(model.fit_transform(a))
array([[-0.52293602,  0.92188257, -1.18195176],
       [-0.87647023, -1.38970358, -0.08151391],
       [ 1.39940625,  0.46782101,  1.26346568]])

从上面的结果中可以看出,scale()和StandardScaler()方法的执行结果是相同的,所以在对数据进行标准化处理的时候,任选一种就行。

你可能感兴趣的:(数据预处理:归一化、标准化)