我正在使用scikit-learn运行多项式回归。 我有大量变量(准确地说是23个),我正在尝试使用2次多项式回归进行回归。
interaction_only = True,仅保留交互项,例如X1*Y1,X2*Y2等。
我只想要其他项,即X1,X12,Y1,Y12等。
是否有一个函数可以实现这个功能?
interaction_only = True,仅保留交互项,例如X1*Y1,X2*Y2等。
我只想要其他项,即X1,X12,Y1,Y12等。
是否有一个函数可以实现这个功能?
没有这样的函数,因为转换可以直接用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 Ramannanp.power(x, np.arange(k))
。 - tiao我知道这个帖子已经很老了。但是像我这样刚开始学习的人可以使用petsy。请查看此处讨论的答案 -> 如何从sklearn.preprocessing.PolynomialFeatures中删除仅交互列