python - 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的一列。我理解正确吗?谢谢您的帮助。
解决方案
因为在某些算法中,我们需要归一化/缩放特征(X),而不是标签(y)。因此为什么不适用于标签?
再次思考 ML 中的以下步骤。首先,我们选择一个模型来处理训练数据。其次,训练数据以找出这些数据的最佳参数。第三,我们使用该估计器从测试特征(X_test 示例)预测(推断)输出(标签)。
因此,如果您对标签进行标准化/缩放,您的模型(第二步中的参数)仅适用于标准化/缩放标签。第三步的推理值将是低分。
推荐阅读
- acumatica - 如何修改流程准备发票
- ios - Swift 将无效 URL 格式化为有效 URL
- mysql - 发生数据库错误 错误号 1064
- python-3.x - SymPy 限制符号
- html - 我在子域中的 URL 不会指向主域
- python - 有没有办法通过脚本操作 tkinter GUI?
- haskell - 程序 'llvm-config' 版本 ==9.0.* 是必需的,但找不到
- rust - 一旦 tokio::process::Child 退出而不关闭 stdin,如何创建完成的未来
- javascript - 证书链中的自签名证书?
- python - 创建类的实例 N 次而不将其分配给变量