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,标准差为1的分布。
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()方法的执行结果是相同的,所以在对数据进行标准化处理的时候,任选一种就行。