归一化

转自:https://www.cnblogs.com/zhange000/articles/10748906.html

数据归一化(Normalization,又称Min-Max Scaling):
数据(x)按照最小值中心化后,再按极差(最大值 - 最小值)缩放,数据移动了最小值个单位,并且会被收敛到[0,1]之间的过程。归一化之后的数据服从正态分布,公式如下:

x = (x - min(x)) / (max(x) - min(x))
        
在sklearn中,使用preprocessing.MinMaxScaler来实现这个功能。MinMaxScaler有一个重要参数,
feature_range,控制数据压缩到的范围,默认是[0,1]。

归一化
from sklearn.preprocessing import MinMaxScaler
data = [[-1, 2], [-0.5, 6], [0, 10], [1, 18]]
import pandas as pd
pd.DataFrame(data)
#实现归一化
scaler = MinMaxScaler() #实例化
scaler = scaler.fit(data) #fit,在这里本质是生成min(x)和max(x)
result = scaler.transform(data) #通过接口导出结果

result_ = scaler.fit_transform(data)   #训练和导出结果一步达成

scaler.inverse_transform(result)   #将归一化后的结果逆转

#使用MinMaxScaler的参数feature_range实现将数据归一化到[0,1]以外的范围中
data = [[-1, 2], [-0.5, 6], [0, 10], [1, 18]]
scaler = MinMaxScaler(feature_range=[5,10])   #依然实例化