sklearn.preprocessing.PolynomialFeatures¶
class sklearn.preprocessing.PolynomialFeatures(degree=2, *, interaction_only=False, include_bias=True, order='C')
生成多项式和交互特征。生成由度小于或等于指定度的特征的所有多项式组合组成的新特征矩阵。例如,如果输入样本是二维且格式为[a,b],则2阶多项式特征为[1,a,b,a ^ 2,ab,b ^ 2]。
参数 | 说明 |
---|---|
degree | integer 多项式特征的程度。默认值= 2。 |
interaction_only | boolean, default = False 如果为true,则仅生成交互特征:这些特征最多是不同输入特征的乘积(因此x [1] ** 2,x [0] * x [2] ** 3等)。 |
include_bias | boolean 如果为True(默认值),则包括一个偏差列,该特征中所有多项式幂均为零(即,一列一作为在线性模型中的截距项)。 |
order | str in {‘C’, ‘F’}, default ‘C’ 在密集情况下输出数组的顺序。“ F”阶的计算速度更快,但可能会减慢后续的估计量。 0.21版中的新功能。 |
属性 | 说明 |
---|---|
powers_ | array, shape (n_output_features, n_input_features) powers_ [i,j]是第i个输出中第j个输入的指数。 |
n_input_features_ | int 输入特征的总数。 |
n_output_features_ | int 多项式输出特征的总数。通过迭代所有适当大小的输入要素组合来计算输出要素的数量。 |
注释
请注意,输出数组中的要素数量与输入数组的要素数量呈多项式比例关系,而度数呈指数关系。高度可能会导致过度拟合。
参见examples/linear_model/plot_polynomial_interpolation.py
示例
>>> import numpy as np
>>> from sklearn.preprocessing import PolynomialFeatures
>>> X = np.arange(6).reshape(3, 2)
>>> 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.]])
>>> poly = PolynomialFeatures(interaction_only=True)
>>> poly.fit_transform(X)
array([[ 1., 0., 1., 0.],
[ 1., 2., 3., 6.],
[ 1., 4., 5., 20.]])
方法
方法 | 说明 |
---|---|
fit (X[, y]) |
计算输出要素的数量。 |
fit_transform (X[, y]) |
拟合数据,然后对其进行转换。 |
get_feature_names ([input_features]) |
返回输出要素的要素名称 |
get_params ([deep]) |
获取此估计量的参数。 |
set_params (**params) |
设置此估算器的参数。 |
transform (X) |
将数据转换为多项式特征 |
__init__(degree=2, *, interaction_only=False, include_bias=True, order='C')
适合标签编码器
初始化self,有关准确的签名,请参见help(type(self))。
fit(X, y=None)
计算输出要素的数量。
参数 | 说明 |
---|---|
X | array-like, shape (n_samples, n_features) 数据。 |
返回值 | 说明 |
---|---|
self | instance |
fit_transform(X, y=None, **fit_params)
拟合数据,然后对其进行转换。
使用可选参数fit_params将转换器拟合到X和y,并返回X的转换版本。
参数 | 说明 |
---|---|
X | {array-like, sparse matrix, dataframe} of shape (n_samples, n_features) |
y | ndarray of shape (n_samples,), default=None 目标值。 |
**fit_params | dict 其他拟合参数。 |
返回值 | 说明 |
---|---|
X_new | ndarray array of shape (n_samples, n_features_new) 转换后的数组。 |
get_feature_names(input_features=None)
返回输出要素的要素名称
参数 | 说明 |
---|---|
input_features | list of string, length n_features, optional 输入功能的字符串名称(如果有)。默认情况下,使用“ x0”,“ x1”,……“ xn_features”。 |
返回值 | 说明 |
---|---|
output_feature_names | list of string, length n_output_features |
get_params(deep=True)
设置此估算器的参数。
该方法适用于简单的估计器以及嵌套对象(例如管道)。后者的参数形式为<component>__<parameter>这样就可以更新嵌套对象的每个组件。
参数 | 说明 |
---|---|
**params | dict 估算器参数。 |
返回值 | 说明 |
---|---|
self | object 估算器实例。 |
transform(X)
将数据转换为多项式特征
参数 | 说明 |
---|---|
X | array-like or CSR/CSC sparse matrix, shape [n_samples, n_features] 数据要逐行转换。 对于稀疏输入(对于速度),CSR比CSC更可取,但如果度数为4或更高,则需要CSC。如果度数小于4,并且输入格式为CSC,则将其转换为CSR,生成多项式特征,然后转换回CSC。 如果度为2或3,则使用Andrew Nystrom和John Hughes所描述的“利用稀疏度来使用K-Simplex数加快CSR矩阵的多项式特征展开”中描述的方法,它比在CSC输入上使用的方法要快得多 。因此,CSC输入将转换为CSR,输出将在返回之前转换回CSC,因此优先选择CSR。 |
返回值 | 说明 |
---|---|
XP | np.ndarray or CSR/CSC sparse matrix, shape [n_samples, NP] 特征矩阵,其中NP是从输入组合生成的多项式特征的数量。 |