Scikit-Learn:如何使用矩阵 X 的变换来变换目标变量 Y
Scikit-Learn: How to use Transformation of Matrix X to transform Target Variables Y
我正在研究一个回归问题,我的特征在矩阵 X 中,目标值在 Y 中。
我想缩放输入。我正在使用 sklearn
的 MinMaxScaler
:
# scale data to 0-1
scaler = MinMaxScaler(feature_range=(0, 1))
X = scaler.fit_transform(X)
我的理解是真正的标签向量 Y
现在应该相应地缩放。如何使用 scaler
对象执行此操作?从 docs,我可以将真实标签传递给 fit_transform 方法,但似乎这仅适用于 "pipeline compatibility" - 即该方法忽略 Y
并且仅 returns 转换后的 X。
谢谢!
您无法使用 scaler 缩放目标变量 Y
。
因为MinMaxScaler:
Transforms features by scaling each feature to a given range.
它不转换目标变量。或者更准确地说,既然你已经将它安装在特征上,那么你只能将它应用到特征上。
当您尝试将模型应用于测试数据以进行预测时,您将再次需要缩放器的情况是,您需要使用相同的缩放器来转换您的测试数据的特征以及结果将是一致的。
现在的一个选择是使用 TransformedTargetRegressor meta-estimator 将转换应用到目标变量。
我正在研究一个回归问题,我的特征在矩阵 X 中,目标值在 Y 中。
我想缩放输入。我正在使用 sklearn
的 MinMaxScaler
:
# scale data to 0-1
scaler = MinMaxScaler(feature_range=(0, 1))
X = scaler.fit_transform(X)
我的理解是真正的标签向量 Y
现在应该相应地缩放。如何使用 scaler
对象执行此操作?从 docs,我可以将真实标签传递给 fit_transform 方法,但似乎这仅适用于 "pipeline compatibility" - 即该方法忽略 Y
并且仅 returns 转换后的 X。
谢谢!
您无法使用 scaler 缩放目标变量 Y
。
因为MinMaxScaler:
Transforms features by scaling each feature to a given range.
它不转换目标变量。或者更准确地说,既然你已经将它安装在特征上,那么你只能将它应用到特征上。
当您尝试将模型应用于测试数据以进行预测时,您将再次需要缩放器的情况是,您需要使用相同的缩放器来转换您的测试数据的特征以及结果将是一致的。
现在的一个选择是使用 TransformedTargetRegressor meta-estimator 将转换应用到目标变量。