【2】监督学习--3--多项式变形--PolynomialFeatures

偶尔想看看多相似回归,就需要进行多项式的转化

sklearn.preprocessing.PolynomialFeatures(degree=2, interaction_only=False, include_bias=True)

PolynomialFeatures函数包含了3个参数和3个属性

参数:

  • degree : 项的指数和,默认为2。如果为2,如果输入的为[a,b],则输出为 [1, a, b, a^2, ab, b^2]
  • interaction_only : 默认的是False,如果为True,则每个式子中包含自己只有1次,不包含x[1] ** 2, x[0] * x[2] ** 3等
  • include_bias : boolean 。 If True (default), then include a bias column, the feature in which all polynomial powers are zero (i.e. a column of ones - acts as an intercept term in a linear model).

属性:

  • powers_ :可以看到多项式取值的方式
  • n_input_features_ : int 。The total number of input features.
  • n_output_features_ : int 。 The total number of polynomial output features. The number of output features is computed by iterating over all suitably sized combinations of input features.

代码:

import numpy as np
from sklearn.preprocessing import  PolynomialFeatures

X = np.arange(6).reshape(3, 2)

print '\nresult1:'
print X



poly = PolynomialFeatures(2)

print '\nresult2:'
print poly.fit_transform(X)

print '\nresult2_powers:'
print poly.powers_
print '\nresult2_input_features:'
print poly.n_input_features_
print '\nresult2_output_features:'
print poly.n_output_features_

X = np.arange(6).reshape(2, 3)

poly = PolynomialFeatures(degree =4,interaction_only=True) #同一个自己只能出现一次
print '\nresult3:'
print poly.fit_transform(X)
print '\nresult3_powers:'
print poly.powers_


poly = PolynomialFeatures(degree =1)
print '\nresult4:'
print poly.fit_transform(X)
print '\nresult4_powers:'
print poly.powers_

结果

result1:
[[0 1]
 [2 3]
 [4 5]]

result2:
[[ 1.  0.  1.  0.  0.  1.]
 [ 1.  2.  3.  4.  6.  9.]
 [ 1.  4.  5. 16. 20. 25.]]

result2_powers:
[[0 0]
 [1 0]
 [0 1]
 [2 0]
 [1 1]
 [0 2]]

result2_input_features:
2

result2_output_features:
6

result3:
[[ 1.  0.  1.  2.  0.  0.  2.  0.]
 [ 1.  3.  4.  5. 12. 15. 20. 60.]]

result3_powers:
[[0 0 0]
 [1 0 0]
 [0 1 0]
 [0 0 1]
 [1 1 0]
 [1 0 1]
 [0 1 1]
 [1 1 1]]

result4:
[[1. 0. 1. 2.]
 [1. 3. 4. 5.]]

result4_powers:
[[0 0 0]
 [1 0 0]
 [0 1 0]
 [0 0 1]]

参考资料

http://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.PolynomialFeatures.html

这里是一个广告位,,感兴趣的都可以发邮件聊聊:tiehan@sina.cn
个人公众号,比较懒,很少更新,可以在上面提问题,如果回复不及时,可发邮件给我: tiehan@sina.cn