sklearn 的 PolynomialFeatures 模块


from sklearn.preprocessing import PolynomialFeatures   
#导入PolynomialFeatures模块:生成多项式和交互特征。
#生成由所有多项式组合组成的新特征矩阵 度数小于或等于指定度数的要素。
#例如,如果输入样本是二维的并且形式为 [a, b],2次多项式特征为[1, a, b, a^2, ab, b^2]。

#PolynomialFeatures(degree=2, *, interaction_only=False, include_bias=True, order='C')
#PolynomialFeatures有四个参数
#degree:控制多项式的度
#interaction_only=False: 默认为False,如果指定为True,上面的二次项中没有a^2和b^2(自己与自己结合的项)
#include_bias=True:默认为True。如果为True的话,那么就会有上面的 1那一项。
#order{‘C’, ‘F’}, 默认=’C’:密集情况下输出数组的顺序。 'F' 顺序更快 计算,但可能会减慢后续的估计量。

import numpy as np
from sklearn.preprocessing import PolynomialFeatures
x = np.arange(6).reshape(3, 2)
#>>>[[0 1]
# [2 3]
# [4
5]]


poly = PolynomialFeatures(2)
poly.fit_transform(x)

# >>>[[ 1. 0. 1. 0. 0. 1.] 2次多项式特征为[1, a, b, a^2, ab, b^2]。
# [ 1. 2. 3. 4. 6. 9.]
# [ 1. 4. 5. 16. 20. 25.]]

poly = PolynomialFeatures(interaction_only=True)
poly.fit_transform(x)
# >>>[[ 1. 0. 1. 0.] 2次多项式特征为[1, a, b, ab]。
# [ 1. 2. 3. 6.]
# [ 1. 4. 5. 20.]]

# fit(X, y):计算输出特征的数量。
# fit_transform(X, y):适合数据,然后转换它。
# get_feature_names[输入特征]:返回输出特征的特征名称
# get_params[深的]:获取此估计器的参数。
# set_params(**参数):设置这个估计器的参数。
# transformX
:将数据转换为多项式特征


print(poly.fit(x)) #>>>PolynomialFeatures(interaction_only=True)
print(poly.fit_transform(x)) #
print(poly.transform(x))
fit(): 求得训练集X的均值,方差,最大值,最小值,这些训练集X固有的属性。
transform():在fit的基础上,进行标准化,降维,归一化等操作。
fit_transform():既包括了训练又包含了转换。


print(poly.get_feature_names()) #>>>['1', 'x0', 'x1', 'x0 x1'] =[1, a, b, a^2, ab, b^2]
print(poly.get_params())
#>>>{'degree': 2, 'include_bias': True, 'interaction_only': True, 'order': 'C'} 返回设置估计器的参数。


官方文档:
https://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.PolynomialFeatures.html
 
 

 

 

posted @ 2021-07-22 16:51  supreme_me  阅读(1251)  评论(0)    收藏  举报