gpt4 book ai didi

python-2.7 - 二次特征化器 : preprocessing with fit_transform

转载 作者:行者123 更新时间:2023-11-30 08:36:40 26 4
gpt4 key购买 nike

以下示例是用 Python 编写的,摘自书籍 Mastering Machine Learning .

任务概述:

  • 训练数据存储在列向量X_train(特征)和y_train(响应变量)中
  • 用于测试目的的数据分别存储在X_testy_test
  • 现在使用多项式回归(在本例中为二次回归)将模型拟合到训练数据

作者的方法(不包括导入和数据初始化):

quad_featurizer = PolynomialFeatures(degree=2)
X_train_quad = quad_featurizer.fit_transform(X_train)
X_test_quad = quad_featurizer.transform(X_test)

regressor_quad = LinearRegression()
regressor_quad.fit(X_train_quad, y_train)

作者没有对代码进行注释,也没有透露有关所使用方法的更多信息。由于 scikit-learn API 也无法给我满意的答案,所以我想向您请教。

为什么我要使用 fit_transform 而不仅仅是 transform 来预处理训练数据?我的意思是实际的拟合是通过 transform 完成的>regressor_quad 对象,所以 fit_transform 是多余的,不是吗?

最佳答案

scikit 的特征器必须根据您的特定数据集进行调整,然后才能将其转换为新的特征向量。 fit() 执行该调整。因此,您需要首先调用 fit(),然后调用 transform(),或者通过 fit_transform() 同时调用两者。

在您的示例中,PolynomialFeatures 用于将训练数据投影到新的高维空间中。因此向量 (3, 6) 将变为 (1, 3, 6, 3*3, 3*6, 6*6)。在 fit() 中,PolynomialFeatures 学习训练向量的大小,在 transform() 中,它根据旧向量创建新的训练向量。因此,X_train_quad 是一个形状与 X_train 不同的新矩阵。之后使用 X_test 完成相同的操作,但随后 PolynomialFeatures 已经知道向量的大小,因此不必再次使用 fit() 。然后,LinearRegression 通过其 fit() 方法对新训练数据 (X_train_quad) 进行训练,该方法与 PolynomialFeatures< 完全分离 因此它的 fit()PolynomialFeaturesfit() 没有任何关系。

关于python-2.7 - 二次特征化器 : preprocessing with fit_transform,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29521968/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com