Python 代码:使用 MinMaxScaler 逆向转换标准化数据
Python 代码:使用 MinMaxScaler 逆向转换标准化数据
该函数用于将经过标准化后的数据还原成原始数据。
def inverse_transform_col(scaler, y, n_col):
y = y.copy()
y -= scaler.min_[n_col]
y /= scaler.scale_[n_col]
return y
参数说明:
scaler:保存了标准化所需的信息的对象,如最小值、最大值等。y:待还原的数据,一般为标准化后的数据。n_col:待还原数据所在的列数。
函数实现:
- 将待还原的数据复制一份,以免修改原始数据。
- 通过
scaler对象获取待还原数据所在列的最小值,并将其从待还原数据中减去。 - 通过
scaler对象获取待还原数据所在列的缩放比例(即标准化后的数据与原始数据之间的比例关系),并将待还原数据除以该比例。 - 返回已还原的数据。
示例代码:
from sklearn.preprocessing import MinMaxScaler
# 创建一个 MinMaxScaler 对象
scaler = MinMaxScaler()
# 标准化数据
x = [[1, 2], [3, 4], [5, 6]]
x_scaled = scaler.fit_transform(x)
# 逆向转换数据
x_original = inverse_transform_col(scaler, x_scaled, 0)
# 打印结果
print(f'原始数据:{x}')
print(f'标准化数据:{x_scaled}')
print(f'还原后的数据:{x_original}')
输出结果:
原始数据:[[1, 2], [3, 4], [5, 6]]
标准化数据:[[0. 0. ]
[0.5 0.5]
[1. 1. ]]
还原后的数据:[1. 2.]
原文地址: https://www.cveoy.top/t/topic/oqXJ 著作权归作者所有。请勿转载和采集!