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)[源代码]#

从任意可调用对象构造Transformer。

FunctionTransformer将其X(可选y)参数转发到用户定义的函数或函数对象,并返回此函数的结果。这对于无状态转换很有用,例如获取频率日志、执行自定义扩展等。

注意:如果使用Lambda作为函数,则生成的Transformer将不可拾取。

Added in version 0.17.

阅读更多的 User Guide .

参数:
func可调用,默认值=无

用于转换的可调用对象。这将以与转换相同的参数传递,并转发args和kwargs。如果func为无,那么func将是身份函数。

inverse_func可调用,默认值=无

用于逆转换的可调用对象。这将传递与逆变换相同的参数,并转发args和kwargs。如果inverate_full为无,则inverate_full将是单位函数。

validate布尔,默认=假

指定在调用之前应检查输入X数组 func .可能性有:

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

  • 如果为True,则X将转换为2维NumPy数组或稀疏矩阵。如果转换不可能,则会引发异常。

在 0.22 版本发生变更: 违约 validate 从True变成False。

accept_sparse布尔,默认=假

验证funcc接受稀疏矩阵作为输入。如果validate为False,则没有任何影响。否则,如果accept_sparse为假,则稀疏矩阵输入将导致引发异常。

check_inverse布尔,默认=True

是否检查这个还是 func 其次是 inverse_func 导致原始输入。它可用于健全检查,当条件不满足时发出警告。

Added in version 0.20.

feature_names_out可调用、“一对一”或无,默认=无

Determines the list of feature names that will be returned by the get_feature_names_out method. If it is 'one-to-one', then the output feature names will be equal to the input feature names. If it is a callable, then it must take two positional arguments: this FunctionTransformer (self) and an array-like of input feature names (input_features). It must return an array-like of output feature names. The get_feature_names_out method is only defined if feature_names_out is not None.

看到 get_feature_names_out 了解更多详细信息。

Added in version 1.1.

kw_argsdict,默认=无

要传递给funcc的附加关键字参数的字典。

Added in version 0.18.

inv_kw_argsdict,默认=无

要传递给inverate_full的附加关键字参数的字典。

Added in version 0.18.

属性:
n_features_in_int

期间看到的功能数量 fit .

Added in version 0.24.

feature_names_in_ :nd形状数组 (n_features_in_ ,)nd数组形状(

Names of features seen during fit. Defined only when X has feature names that are all strings.

Added in version 1.0.

参见

MaxAbsScaler

按每个要素的最大绝对值缩放。

StandardScaler

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

LabelBinarizer

以one-vs-all的方式二进制化标签。

MultiLabelBinarizer

在可迭代项和多标签格式之间转换。

注意到

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

示例

>>> 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来安装Transformer。

如果 validateTrue , X 将被检查。

参数:
X形状的{类阵列,稀疏矩阵}(n_samples,n_features) 如果

输入数组。

y忽视

未使用,此处列出是为了按照惯例实现API一致性。

返回:
self对象

FunctionTransformer类实例。

fit_transform(X, y=None, **fit_params)[源代码]#

适应数据,然后对其进行转换。

适合变压器 Xy 具有可选参数 fit_params 并返回的转换版本 X .

参数:
X形状类似阵列(n_samples,n_features)

输入样本。

y形状为(n_samples,)或(n_samples,n_outputs)的阵列状, 默认值=无

目标值(无监督转换)。

**fit_paramsdict

其他适合参数。

返回:
X_newndray形状数组(n_samples,n_features_new)

变形的数组。

get_feature_names_out(input_features=None)[源代码]#

获取用于转换的输出要素名称。

此方法仅在以下情况下定义 feature_names_out 不是没有。

参数:
input_features字符串或无的类数组,默认=无

输入要素名称。

  • 如果 input_features 那么就是没有了 feature_names_in_ 用作输入要素名称。如果 feature_names_in_ 未定义,则生成名称: [x0, x1, ..., x(n_features_in_ - 1)] .

  • 如果 input_features 那么就像阵列一样 input_features 必须匹配 feature_names_in_ 如果 feature_names_in_ 是定义的。

返回:
feature_names_out字符串对象的nd数组

转换的功能名称。

  • 如果 feature_names_out 是“一对一”,则返回输入要素名称(请参阅 input_features 上图)。这需要 feature_names_in_ 和/或 n_features_in_ 要定义,如果出现以下情况,则会自动完成 validate=True .或者,您可以将它们放入 func .

  • If feature_names_out is a callable, then it is called with two arguments, self and input_features, and its return value is returned by this method.

get_metadata_routing()[源代码]#

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

请检查 User Guide 关于路由机制如何工作。

返回:
routingMetadataRequest

A MetadataRequest 封装路由信息。

get_params(deep=True)[源代码]#

获取此估计器的参数。

参数:
deep布尔,默认=True

如果为True,将返回此估计量和包含的作为估计量的子对象的参数。

返回:
paramsdict

参数名称映射到其值。

inverse_transform(X)[源代码]#

使用反函数变换X。

参数:
X形状的{类阵列,稀疏矩阵}(n_samples,n_features) 如果

输入数组。

返回:
X_out类数组,形状(n_samples,n_features)

转换的输入。

set_output(*, transform=None)[源代码]#

设置输出容器。

看到 介绍 set_output API 了解如何使用API的示例。

参数:
transform{“默认”,“pandas”,“polars”},默认=无

配置输出 transformfit_transform .

  • "default" :Transformer的默认输出格式

  • "pandas" :DataFrame输出

  • "polars" :两极输出

  • None :转换配置不变

Added in version 1.4: "polars" 添加了选项。

返回:
self估计器实例

估计实例。

set_params(**params)[源代码]#

设置此估计器的参数。

该方法适用于简单估计器以及嵌套对象(例如 Pipeline ).后者具有以下形式的参数 <component>__<parameter> 以便可以更新嵌套对象的每个组件。

参数:
**paramsdict

估计参数。

返回:
self估计器实例

估计实例。

transform(X)[源代码]#

使用正向函数变换X。

参数:
X形状的{类阵列,稀疏矩阵}(n_samples,n_features) 如果

输入数组。

返回:
X_out类数组,形状(n_samples,n_features)

转换的输入。