FunctionTransformer#

class sklearn.preprocessing.FunctionTransformer(func=None, inverse_func=None, *, validate=False, accept_sparse=False, check_inverse=True, feature_names_out=None, kw_args=None, inv_kw_args=None)#

构建一个来自任意可调用对象的转换器。

FunctionTransformer将其X(和可选的y)参数传递给用户定义的函数或函数对象,并返回该函数的结果。这对于诸如频率对数、自定义缩放等无状态转换非常有用。

注意:如果使用lambda作为函数,则生成的转换器将无法序列化。

Added in version 0.17.

更多信息请参阅 用户指南

Parameters:
funccallable, default=None

用于转换的可调用对象。这将传递与transform相同的参数,args和kwargs将转发。如果func为None,则func将是恒等函数。

inverse_funccallable, default=None

用于逆转换的可调用对象。这将传递与inverse transform相同的参数,args和kwargs将转发。如果inverse_func为None,则inverse_func将是恒等函数。

validatebool, default=False

指示在调用 func 之前是否应检查输入X数组。可能的值为:

  • 如果为False,则不进行输入验证。

  • 如果为True,则X将转换为二维NumPy数组或稀疏矩阵。如果无法进行转换,则会引发异常。

Changed in version 0.22: validate 的默认值从True更改为False。

accept_sparsebool, default=False

指示func是否接受稀疏矩阵作为输入。如果validate为False,则此参数无效。否则,如果accept_sparse为false,稀疏矩阵输入将引发异常。

check_inversebool, default=True

是否检查 func 后跟 inverse_func 是否返回到原始输入。它可以用于健全性检查,当条件不满足时发出警告。

Added in version 0.20.

feature_names_outcallable, ‘one-to-one’ or None, default=None

确定 get_feature_names_out 方法将返回的特征名称列表。如果为’one-to-one’,则输出特征名称将等于输入特征名称。如果为可调用对象,则必须接受两个位置参数:此 FunctionTransformerself )和输入特征名称的数组类似对象( input_features )。它必须返回输出特征名称的数组类似对象。仅当 feature_names_out 不为None时,才定义 get_feature_names_out 方法。

有关更多详细信息,请参见 get_feature_names_out

Added in version 1.1.

kw_argsdict, default=None

传递给func的额外关键字参数的字典。

Added in version 0.18.

inv_kw_argsdict, default=None

传递给inverse_func的额外关键字参数的字典。

Added in version 0.18.

Attributes:
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.

See also

MaxAbsScaler

按每个特征的最大绝对值缩放特征。

StandardScaler

通过去除均值并缩放到单位方差来标准化特征。

LabelBinarizer

以一对一的方式二值化标签。

MultiLabelBinarizer

在可迭代对象的可迭代对象和多标签格式之间转换。

Notes

如果 func 返回具有 columns 属性的输出,则强制列与 get_feature_names_out 的输出一致。

Examples

>>> import numpy as np
>>> from sklearn.preprocessing import FunctionTransformer
>>> transformer = FunctionTransformer(np.log1p)
>>> X = np.array([[0, 1], [2, 3]])
>>> transformer.transform(X)
array([[0.       , 0.6931...],
       [1.0986..., 1.3862...]])
fit(X, y=None)#

通过检查X来拟合转换器。

如果 validateTrue ,将检查 X

Parameters:
X{array-like, sparse-matrix} of shape (n_samples, n_features) if validate=True else any object that func can handle

输入数组。

yIgnored

不使用,在此处出现是为了API一致性。

Returns:
selfobject

FunctionTransformer类的实例。

fit_transform(X, y=None, **fit_params)#

拟合数据,然后进行转换。

将转换器拟合到 Xy ,并带有可选参数 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)#

获取变换后的输出特征名称。

只有在 feature_names_out 不为 None 时,此方法才被定义。

Parameters:
input_features字符串数组或 None, 默认=None

输入特征名称。

  • 如果 input_features 为 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

变换后的特征名称。

  • 如果 feature_names_out 是 ‘一对一’,则返回输入特征名称(见上文 input_features )。这需要 feature_names_in_ 和/或 n_features_in_ 被定义,这在 validate=True 时会自动完成。或者,你可以在 func 中设置它们。

  • 如果 feature_names_out 是可调用对象,则它以两个参数 selfinput_features 调用,并且其返回值由此方法返回。

get_metadata_routing()#

获取此对象的元数据路由。

请查看 用户指南 以了解路由机制的工作原理。

Returns:
routingMetadataRequest

MetadataRequest 封装的 路由信息。

get_params(deep=True)#

获取此估计器的参数。

Parameters:
deepbool, 默认=True

如果为True,将返回此估计器和包含的子对象(也是估计器)的参数。

Returns:
paramsdict

参数名称映射到它们的值。

inverse_transform(X)#

使用逆函数转换X。

Parameters:
X{array-like, sparse-matrix} of shape (n_samples, n_features) if validate=True else any object that inverse_func can handle

输入数组。

Returns:
X_outarray-like, shape (n_samples, n_features)

转换后的输入。

set_output(*, transform=None)#

设置输出容器。

请参阅 介绍 set_output API 以了解如何使用API的示例。

Parameters:
transform{“default”, “pandas”, “polars”}, 默认=None

配置 transformfit_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)#

Transform X using the forward function.

Parameters:
X{array-like, sparse-matrix} of shape (n_samples, n_features) 如果 validate=True 则为任意 func 可以处理的对象

输入数组。

Returns:
X_outarray-like, shape (n_samples, n_features)

转换后的输入。