我正在处理一个回归问题,我的特征在矩阵X中,目标值在Y中。
我想对输入进行缩放。我使用sklearn
的MinMaxScaler
来实现:
# 将数据缩放到0-1之间
scaler = MinMaxScaler(feature_range=(0, 1))
X = scaler.fit_transform(X)
我的理解是,现在应该相应地缩放真实标签向量Y
。我该如何使用scaler
对象来实现这一点?根据文档,我可以将真实标签传递给fit_transform方法,但这似乎只是为了“管道兼容性”——即,该方法忽略Y
,只返回变换后的X。
谢谢!
回答:
你不能用那个scaler来缩放目标变量Y
。
因为MinMaxScaler:
通过将每个特征缩放到给定范围来变换特征。
它不变换目标变量。或者更准确地说,由于你已经在特征上进行了拟合,那么你只能将其应用于特征。
当你需要再次使用这个缩放器的情况是,当你尝试将模型应用于你的测试数据以进行预测时,你需要使用相同的缩放器来变换你的测试数据的特征,这样结果才会一致。