Sklearn-preprocessing.PolynomialFeatures

来源:互联网 发布:ipad pro 键盘 知乎 编辑:程序博客网 时间:2024/05/17 09:19
在建模过程中多次用到过sklearn.preprocessing.PolynomialFeatures,可以理解为专门生成多项式特征,并且多项式包含的是相互影响的特征集,比如:一个输入样本是2维的。形式如[a,b] ,则二阶多项式的特征集如下[1,a,b,a^2,ab,b^2]。
  • 官网文档:http://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.PolynomialFeatures.html
  • 参数:
  • degree : integer,多项式阶数,默认为2;
  • interaction_only : boolean, default = False,如果值为true(默认是false),则会产生相互影响的特征集;
  • include_bias : boolean,是否包含偏差列。
  • 示例:
    >>> X = np.arange(6).reshape(3, 2)>>> Xarray([[0, 1],       [2, 3],       [4, 5]])>>> poly = PolynomialFeatures(2) #设置多项式阶数为2,其他的默认>>> poly.fit_transform(X)array([[  1.,   0.,   1.,   0.,   0.,   1.],       [  1.,   2.,   3.,   4.,   6.,   9.],       [  1.,   4.,   5.,  16.,  20.,  25.]])>>> poly = PolynomialFeatures(interaction_only=True)#默认的阶数是2,同时设置交互关系为true>>> poly.fit_transform(X)array([[  1.,   0.,   1.,   0.],       [  1.,   2.,   3.,   6.],       [  1.,   4.,   5.,  20.]])
上面的数组中,每一行是一个list。比如[0,1] 类似与上面的[a,b]。好的现在它的多项式输出矩阵就是[1,a,b,a^2,ab,b^2]。所以就是下面对应的[1,0,1,0,0,1]。现在将interaction_only=True。这时就是只找交互作用的多项式输出矩阵。例如[a,b]的多项式交互式输出[1,a,b,ab]。不存在自己与自己交互的情况如;a^2或者a*b^2之类的。
0 0