sklearn:如何获取多项式特征的系数
我知道可以通过使用:获得多项式特征作为数字polynomial_features.transform(X)
。根据手册,在以下两个方面,这些功能是:[1,
a, b, a^2, ab, b^2]
。但是,如何获得高阶功能的描述?.get_params()
不显示任何功能列表。
-
顺便说一下,现在有更合适的功能: 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