新数据加入时可能会 改变数据的min或max值
- from sklearn.preprocessing import MinMaxScaler
-
- data = [[-1, 2], [-0.5, 6], [0, 10], [1, 18]]
- #实例化
- scaler = MinMaxScaler() #如果()内为空,MinMaxScaler会把原数据归一化到默认值:[o,1]范围内
- scaler.fit(data) #生成了min&max
-
- result = scaler.transform(data) #通过transform接口导出归一化结果
- result
array([[0. , 0. ], [0.25, 0.25], [0.5 , 0.5 ], [1. , 1. ]])
通过下面的代码可见data:
- data = [[-1, 2], [-0.5, 6], [0, 10], [1, 18]]
- import pandas as pd
- pd.DataFrame(data)
再看array的运行结果,可见:
data中0、1两列提供的信息量是一样的。
其实倒数第三、第二行的代码可以合起来写成
result = scaler.fit_transform(data)
其运行结果是一样的
与之对应的可以将运行结果逆转回原数据
scaler.inverse_transform(result)
array([[-1. , 2. ], [-0.5, 6. ], [ 0. , 10. ], [ 1. , 18. ]])
- from sklearn.preprocessing import MinMaxScaler
-
- data = [[-1, 2], [-0.5, 6], [0, 10], [1, 18]]
- #实例化
- scaler = MinMaxScaler(feature_range = [5, 10]) #把原数据归一化到:[5,10]范围内
- scaler.fit(data) #生成了min&max
-
- result = scaler.transform(data) #通过transform接口导出归一化结果
- result
array([[ 5. , 5. ], [ 6.25, 6.25], [ 7.5 , 7.5 ], [10. , 10. ]])