如何从sklearn.preprocessing.PolynomialFeatures中删除仅限交互的列

时间:2018-02-10 02:14:51

标签: scikit-learn preprocessor polynomials non-linear-regression

根据下面给出的描述:'如果输入样本是二维的并且形式为[a,b],则2次多项式特征是[1,a,b,a ^ 2,ab ,b ^ 2]。'

sklearn.preprocessing.PolynomialFeatures

我需要生成的输出ndarray类型为:[a,b,a ^ 2,b ^ 2] 我知道poly = PolynomialFeatures(2, include_bias=False) poly.fit_transform(X) 给出输出如:[a,b,a ^ 2,ab,b ^ 2]。但我不希望这些中级' ab'键入正在生成的列。如何做到这一点?或者可以在这里使用的更好的API?

1 个答案:

答案 0 :(得分:2)

查看patsy和此scikit-learn integration patsylearn

这使您可以完全控制类似R的公式:

from patsylearn import PatsyTransformer
transformer = PatsyTransformer("y ~ a + b + a^2 + b^2")
transformer.fit(data)