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]。
更多信息请参阅 用户指南 。
- Parameters:
- degreeint 或 tuple (min_degree, max_degree), 默认=2
如果给定一个单一的int,它指定多项式特征的最大度数。如果传递一个元组
(min_degree, max_degree)
, 则min_degree
是最小度数,max_degree
是生成的特征的最大多项式度数。请注意,min_degree=0
和min_degree=1
是等效的,因为输出零次项由include_bias
决定。- interaction_onlybool, 默认=False
如果为
True
,则仅生成交互特征:特征是至多degree
个 不同 输入特征的乘积,即排除 相同输入特征的二次或更高次幂的项:包含:
x[0]
,x[1]
,x[0] * x[1]
, 等等。排除:
x[0] ** 2
,x[0] ** 2 * x[1]
, 等等。
- include_biasbool, 默认=True
如果为
True
(默认),则包含一个偏置列,该特征中所有多项式幂均为零(即一列全为1 - 在 线性模型中充当截距项)。- order{‘C’, ‘F’}, 默认=’C’
在密集情况下输出数组的有序性。
'F'
顺序计算速度更快,但可能会减慢后续估计器的速度。Added in version 0.21.
- Attributes:
powers_
ndarray of shape (n_output_features_
,n_features_in_
)指数,用于输出中每个输入的值。
- n_features_in_int
在 fit 期间看到的特征数量。
Added in version 0.24.
- feature_names_in_ndarray of shape (
n_features_in_
,) 在 fit 期间看到的特征名称。仅当
X
的特征名称均为字符串时定义。Added in version 1.0.
- n_output_features_int
多项式输出特征的总数。输出特征的数量是通过迭代所有合适大小的输入特征组合来计算的。
See also
SplineTransformer
生成单变量B样条基的转换器。
Notes
请注意,输出数组中的特征数量在输入数组的特征数量中是多项式增长的,并且在度数中是指数增长的。高次可能导致过拟合。
参见 examples/linear_model/plot_polynomial_interpolation.py
Examples
>>> 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=None)#
计算输出特征的数量。
- Parameters:
- X{array-like, sparse matrix},形状为 (n_samples, n_features)
数据。
- y忽略
未使用,为了保持API一致性而存在。
- Returns:
- selfobject
拟合的转换器。
- fit_transform(X, y=None, **fit_params)#
拟合数据,然后进行转换。
将转换器拟合到
X
和y
,并带有可选参数fit_params
, 并返回X
的转换版本。- Parameters:
- X形状为 (n_samples, n_features) 的类数组
输入样本。
- y形状为 (n_samples,) 或 (n_samples, n_outputs) 的类数组, 默认=None
目标值(无监督转换为 None)。
- **fit_paramsdict
其他拟合参数。
- Returns:
- X_new形状为 (n_samples, n_features_new) 的 ndarray 数组
转换后的数组。
- get_feature_names_out(input_features=None)#
获取变换后的输出特征名称。
- Parameters:
- input_features字符串数组或None, 默认=None
输入特征。
如果
input_features is None
,则使用feature_names_in_
作为输入特征名称。如果feature_names_in_
未定义,则生成以下输入特征名称:["x0", "x1", ..., "x(n_features_in_ - 1)"]
。如果
input_features
是数组类型,则input_features
必须与feature_names_in_
匹配,如果feature_names_in_
已定义。
- Returns:
- feature_names_out字符串对象的ndarray
变换后的特征名称。
- get_metadata_routing()#
获取此对象的元数据路由。
请查看 用户指南 以了解路由机制的工作原理。
- Returns:
- routingMetadataRequest
MetadataRequest
封装的 路由信息。
- get_params(deep=True)#
获取此估计器的参数。
- Parameters:
- deepbool, 默认=True
如果为True,将返回此估计器和包含的子对象(也是估计器)的参数。
- Returns:
- paramsdict
参数名称映射到它们的值。
- property powers_#
指数,用于输出中每个输入的值。
- set_output(*, transform=None)#
设置输出容器。
请参阅 介绍 set_output API 以了解如何使用API的示例。
- Parameters:
- transform{“default”, “pandas”, “polars”}, 默认=None
配置
transform
和fit_transform
的输出。"default"
: 转换器的默认输出格式"pandas"
: DataFrame 输出"polars"
: Polars 输出None
: 转换配置不变
Added in version 1.4:
"polars"
选项已添加。
- Returns:
- self估计器实例
估计器实例。
- set_params(**params)#
设置此估计器的参数。
该方法适用于简单估计器以及嵌套对象(例如
Pipeline
)。后者具有形式为<component>__<parameter>
的参数,以便可以更新嵌套对象的每个组件。- Parameters:
- **paramsdict
估计器参数。
- Returns:
- selfestimator instance
估计器实例。
- transform(X)#
转换数据为多项式特征。
- Parameters:
- X{array-like, sparse matrix} 形状为 (n_samples, n_features)
要转换的数据,逐行进行。
对于稀疏输入,首选CSR而非CSC(为了速度),但如果度数为4或更高,则需要CSC。如果度数小于4且输入格式为CSC,它将被转换为CSR,生成其多项式特征,然后转换回CSC。
如果度数为2或3,将使用Andrew Nystrom和John Hughes在”利用稀疏性加速CSR矩阵的多项式特征扩展使用K-Simplex数”中描述的方法,这比在CSC输入上使用的方法快得多。因此,CSC输入将被转换为CSR,输出将在返回之前转换回CSC,因此首选CSR。
- Returns:
- XP{ndarray, sparse matrix} 形状为 (n_samples, NP)
特征矩阵,其中
NP
是从输入组合生成的多项式特征的数量。如果提供稀疏矩阵,它将被转换为稀疏的csr_matrix
。