1. 程式人生 > >Sklearn-preprocessing.PolynomialFeatures

Sklearn-preprocessing.PolynomialFeatures

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,是否包含偏差列。
  • 示例:
     
    1. >>> X = np.arange(6).reshape(3, 2)

    2. >>> X

    3. array([[0, 1],

    4. [2, 3],

    5. [4, 5]])

    6. >>> poly = PolynomialFeatures(2) #設定多項式階數為2,其他的預設

    7. >>> poly.fit_transform(X)

    8. array([[ 1., 0., 1., 0., 0., 1.],

    9. [ 1., 2., 3., 4., 6., 9.],

    10. [ 1., 4., 5., 16., 20., 25.]])

    11. >>> poly = PolynomialFeatures(interaction_only=True)#預設的階數是2,同時設定互動關係為true

    12. >>> poly.fit_transform(X)

    13. array([[ 1., 0., 1., 0.],

    14. [ 1., 2., 3., 6.],

    15. [ 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之類的。

--------------------- 本文來自 Cherzhoucheer 的CSDN 部落格 ,全文地址請點選:https://blog.csdn.net/CherDW/article/details/71243102?utm_source=copy