首页 > 解决方案 > fit_transform(X) 与 fit_transform(X,y)

问题描述

我正在使用 minmax 缩放器来缩放 X、y 数据。我看到有些人只是分别缩放 X 和 y,如下所示:

from sklearn.preprocessing import MinMaxScaler
sc=MinMaxScaler()
X=dataset.iloc[:,0:13]
y=dataset.iloc[:,13].values
Xnorm=pd.DataFrame(data=sc.fit_transform(X))
yshape=pd.DataFrame(data=y.reshape(-1,1))
ynorm=pd.DataFrame(data=sc.fit_transform(yshape))

Xnorm.shape
(506, 13)

我想知道我是否可以像下面一样同时缩放 x 和 y

datanorm=pd.DataFrame(data=sc.fit_transform(X,y))
datanorm.shape
(506, 13)

然而,datanorm 与 ynorm 完全相同,具有 13 列。我期望datanorm应该有14列,包括来自x的13列和来自y的一列。我理解正确吗?谢谢您的帮助。

标签: python

解决方案


因为在某些算法中,我们需要归一化/缩放特征(X),而不是标签(y)。因此为什么不适用于标签?

再次思考 ML 中的以下步骤。首先,我们选择一个模型来处理训练数据。其次,训练数据以找出这些数据的最佳参数。第三,我们使用该估计器从测试特征(X_test 示例)预测(推断)输出(标签)。

因此,如果您对标签进行标准化/缩放,您的模型(第二步中的参数)仅适用于标准化/缩放标签。第三步的推理值将是低分。


推荐阅读