如何使用 scikit-learn 仅删除多项式回归中的交互项?
Posted
技术标签:
【中文标题】如何使用 scikit-learn 仅删除多项式回归中的交互项?【英文标题】:How can you remove only the interaction terms in a polynomial regression using 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 仍然没有这个。很多时候我们想在没有交互的情况下尝试多项式特征。 【参考方案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
【讨论】:
请考虑下次发表评论,而不是正确答案:)以上是关于如何使用 scikit-learn 仅删除多项式回归中的交互项?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 scikit-learn 将多项式曲线拟合到数据中?
在 scikit-learn 中使用具有多项式内核的支持向量分类器
使用 Scikit-Learn 在 Python 中绘制多项式回归
线性回归 scikit-learn LinearRegression最小二乘法梯度下降SDG多项式回归学习曲线岭回归Lasso回归