
标准化等公式和Python代码请参考:
python 数据归一化/标准化方法与代码(离差标准化,log归一化,标准化,比例归一化,反正切归一化)
我们使用sklearn来操作:
首先准备数据:
import numpy as np from sklearn.preprocessing import StandardScaler, MinMaxScaler data = np.random.random(size=(20, 2))标准化/逆标准化
标准化的公式:(原始值-均值)/方差,因此逆标准化就是反过来推出原始值
stand_scaler = StandardScaler() std_data = stand_scaler.fit_transform(data) # 标准化 origin_std_data = stand_scaler.inverse_transform(std_data) # 逆标准化 print(origin_std_data == data)归一化/逆归一化
norm_scaler = MinMaxScaler() norm_data = norm_scaler.fit_transform(data) # 归一化 origin_norm_data = norm_scaler.inverse_transform(norm_data) # 逆归一化 print(origin_norm_data == data)
注意:逆归一化时,数据由于浮点运算问题,小数点最后的几个数字无法完美还原,但是整体的还原效果还是正确的