sklearn:如何获取多项式特征的系数

发布于 2021-01-29 18:08:23

我知道可以通过使用:获得多项式特征作为数字polynomial_features.transform(X)。根据手册,在以下两个方面,这些功能是:[1, a, b, a^2, ab, b^2]。但是,如何获得高阶功能的描述?.get_params()不显示任何功能列表。

关注者
0
被浏览
159
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    顺便说一下,现在有更合适的功能: PolynomialFeatures.get_feature_names

    from sklearn.preprocessing import PolynomialFeatures
    import pandas as pd
    import numpy as np
    
    data = pd.DataFrame.from_dict({
        'x': np.random.randint(low=1, high=10, size=5),
        'y': np.random.randint(low=-1, high=1, size=5),
    })
    
    p = PolynomialFeatures(degree=2).fit(data)
    print p.get_feature_names(data.columns)
    

    输出结果如下:

    ['1', 'x', 'y', 'x^2', 'x y', 'y^2']
    

    注意由于某种原因,您必须先适合PolynomialFeatures对象,然后才能使用get_feature_names()。

    如果您是熊猫恋人(就像我一样),则可以使用以下所有新功能轻松组成DataFrame:

    features = DataFrame(p.transform(data), columns=p.get_feature_names(data.columns))
    print features
    

    结果将如下所示:

         1    x    y   x^2  x y  y^2
    0  1.0  8.0 -1.0  64.0 -8.0  1.0
    1  1.0  9.0 -1.0  81.0 -9.0  1.0
    2  1.0  1.0  0.0  1.0   0.0  0.0
    3  1.0  6.0  0.0  36.0  0.0  0.0
    4  1.0  5.0 -1.0  25.0 -5.0  1.0
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看