如何在scikit-learn中仅删除多项式回归中的交互项?

8
我正在使用scikit-learn运行多项式回归。 我有大量变量(准确地说是23个),我正在尝试使用2次多项式回归进行回归。
interaction_only = True,仅保留交互项,例如X1*Y1,X2*Y2等。
我只想要其他项,即X1,X12,Y1,Y12等。
是否有一个函数可以实现这个功能?

很奇怪sklearn仍然没有这个功能。许多时候,我们想尝试不带交互的多项式特征。 - Dr Nisha Arora
2个回答

10

没有这样的函数,因为转换可以直接用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_transform(X)由于X是一个包含100个长度为23的列表的列表,X_new将会是一个矩阵,其中每一行对应于所有组合的二次项。所以,根据你的回答,我需要通过迭代X并使用np.hstack和np.vstack手动创建这个矩阵。我的推断正确吗? - Harshavardhan Ramanna
2
我可以更好地为您服务:np.power(x, np.arange(k)) - tiao

0

下次请考虑发表评论,而不是一个正式的答案 :) - Alessandro

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接