【问题标题】:How can you remove only the interaction terms in a polynomial regression using scikit-learn?如何使用 scikit-learn 仅删除多项式回归中的交互项?
【发布时间】:2016-12-08 16:31:12
【问题描述】:

我正在使用 scikit-learn 运行 polynomial regression。我有大量变量(准确地说是 23 个),我试图使用 2 次多项式回归对其进行回归。

interaction_only = True,只保留X1*Y1、X2*Y2 等等。

我只想要其他术语,即 X1、X12、Y1、Y 12,以此类推。

有没有函数可以得到这个?

【问题讨论】:

  • 奇怪的是 sklearn 仍然没有这个。很多时候我们想在没有交互的情况下尝试多项式特征。

标签: python-2.7 machine-learning scikit-learn non-linear-regression


【解决方案1】:

没有这样的功能,因为用numpy本身可以很容易地表达变换。

X = ... 
new_X = np.hstack((X, X**2))

类似地,如果您想将所有内容添加到学位k

new_X = np.hstack((X**(i+1) for i in range(k)))

【讨论】:

  • 我正在使用以下内容。 poly = PolynomialFeatures(degree=2) X_new = poly.fit_trnasform(X) 由于 X 是 100 个大小为 23 的奇数列表的列表,因此 X_new 将是一个矩阵,每一行对应于导致 2 级的所有组合。因此,根据您的回答,我需要手动创建这个矩阵遍历 X 并使用 np.hstack 和 np.vstack 我的推论是否正确?
  • 我会给你一个更好的:np.power(x, np.arange(k))
【解决方案2】:

我知道这个帖子太老了。但是对于像我这样刚入门的人来说,可以使用 petsy。查看此处讨论的答案-> how to the remove interaction-only columns from sklearn.preprocessing.PolynomialFeatures

【讨论】:

  • 请考虑下次发表评论,而不是正确答案:)
猜你喜欢
  • 2020-10-10
  • 2013-12-26
  • 2018-02-16
  • 1970-01-01
  • 2019-09-20
  • 2017-01-12
  • 2014-10-09
  • 1970-01-01
  • 2018-12-03
相关资源
最近更新 更多