sklearn.preprocessing.PolynomialFeatures
多項式擴展。
它是使用多項式的方法來進行的,如果有a,b兩個特征,那么它的2次多項式為(1,a,b,a^2,ab, b^2),這個多項式的形式是使用poly的效果。
api
class sklearn.preprocessing.PolynomialFeatures(degree=2, interaction_only=False, include_bias=True)
參數:degree:控制多項式的度,即你是幾次多項式擴展interaction_only: 默認為False,如果指定為True,那么就不會有特征自己和自己結合的項,上面的二次項中沒有a^2和b^2。include_bias:默認為True。如果為True的話,那么就會有上面的1那一項。
示例?
X = np.arange(6).reshape(3, 2)
print(X)
array([[0, 1],[2, 3],[4, 5]])
poly = PolynomialFeatures(2)
poly.fit_transform(X)
array([[ 1., 0., 1., 0., 0., 1.],[ 1., 2., 3., 4., 6., 9.],[ 1., 4., 5., 16., 20., 25.]]) # 符合(1,a,b,a^2,ab, b^2)
poly = PolynomialFeatures(interaction_only=True)
poly.fit_transform(X)
array([[ 1., 0., 1., 0.],[ 1., 2., 3., 6.],[ 1., 4., 5., 20.]]) # 輸出中不包含a^2和b^2項
?