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:待还原数据所在的列数。

函数实现:

  1. 将待还原的数据复制一份,以免修改原始数据。
  2. 通过 scaler 对象获取待还原数据所在列的最小值,并将其从待还原数据中减去。
  3. 通过 scaler 对象获取待还原数据所在列的缩放比例(即标准化后的数据与原始数据之间的比例关系),并将待还原数据除以该比例。
  4. 返回已还原的数据。

示例代码:

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.]
Python 代码:使用 MinMaxScaler 逆向转换标准化数据

原文地址: https://www.cveoy.top/t/topic/oqXJ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录