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 函数被用作函数,则生成的转换器将无法被 pickling。
版本0.17中新增。
在 用户指南 中阅读更多内容。
- 参数:
- 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 数组或稀疏矩阵。如果转换失败,则会引发异常。
版本 0.22 中已更改:
validate的默认值从 True 更改为 False。- accept_sparsebool, default=False
指示 func 接受稀疏矩阵作为输入。如果 validate 为 False,则此参数无效。否则,如果 accept_sparse 为 False,稀疏矩阵输入将导致异常。
- check_inversebool, default=True
是否检查 `func` 后跟 `inverse_func` 是否能得到原始输入。这可用于健全性检查,并在条件未满足时发出警告。
0.20 版本新增。
- feature_names_outcallable, ‘one-to-one’ 或 None, default=None
确定 `get_feature_names_out` 方法将返回的特征名称列表。如果为 'one-to-one',则输出特征名称将等于输入特征名称。如果它是一个可调用对象,那么它必须接受两个位置参数:此
FunctionTransformer(self)和输入特征名称的数组(input_features)。它必须返回输出特征名称的数组。只有当feature_names_out不为 None 时,get_feature_names_out方法才会被定义。有关更多详细信息,请参阅
get_feature_names_out。版本 1.1 中新增。
- kw_argsdict, default=None
要传递给 func 的其他关键字参数的字典。
版本 0.18 新增。
- inv_kw_argsdict, default=None
要传递给 inverse_func 的其他关键字参数的字典。
版本 0.18 新增。
- 属性:
另请参阅
MaxAbsScaler按其最大绝对值缩放每个特征。
StandardScaler通过移除均值并缩放为单位方差来标准化特征。
LabelBinarizer以一对多方式将标签二值化。
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 来拟合转换器。
如果
validate为True,则会检查X。- 参数:
- X{array-like, sparse-matrix} of shape (n_samples, n_features) if
validate=Trueelse any object thatfunccan handle 输入数组。
- y被忽略
Not used, present here for API consistency by convention.
- X{array-like, sparse-matrix} of shape (n_samples, n_features) if
- 返回:
- selfobject
FunctionTransformer 类实例。
- fit_transform(X, y=None, **fit_params)[源代码]#
拟合数据,然后对其进行转换。
使用可选参数
fit_params将转换器拟合到X和y,并返回X的转换版本。- 参数:
- Xshape 为 (n_samples, n_features) 的 array-like
输入样本。
- y形状为 (n_samples,) 或 (n_samples, n_outputs) 的类数组对象,默认=None
目标值(对于无监督转换,为 None)。
- **fit_paramsdict
额外的拟合参数。仅当估计器在其
fit方法中接受额外的参数时才传递。
- 返回:
- X_newndarray array of shape (n_samples, n_features_new)
转换后的数组。
- get_feature_names_out(input_features=None)[源代码]#
获取转换的输出特征名称。
只有当
feature_names_out不为 None 时,此方法才会被定义。- 参数:
- input_featuresarray-like of str or None, default=None
输入特征名称。
如果
input_features为 None,则使用feature_names_in_作为输入特征名称。如果feature_names_in_未定义,则生成名称:[x0, x1, ..., x(n_features_in_ - 1)]。如果
input_features是 array-like,则input_features必须与feature_names_in_匹配,如果feature_names_in_已定义。
- 返回:
- feature_names_outstr 对象的 ndarray
转换后的特征名称。
如果
feature_names_out为 'one-to-one',则返回输入特征名称(参见上面的input_features)。这需要定义feature_names_in_和/或n_features_in_,这在validate=True时会自动完成。或者,您可以在func中设置它们。如果
feature_names_out是一个可调用对象,那么它将与两个参数(self和input_features)一起调用,其返回值将由此方法返回。
- get_metadata_routing()[源代码]#
获取此对象的元数据路由。
请查阅 用户指南,了解路由机制如何工作。
- 返回:
- routingMetadataRequest
封装路由信息的
MetadataRequest。
- get_params(deep=True)[源代码]#
获取此估计器的参数。
- 参数:
- deepbool, default=True
如果为 True,将返回此估计器以及包含的子对象(如果它们是估计器)的参数。
- 返回:
- paramsdict
参数名称映射到其值。
- inverse_transform(X)[源代码]#
使用反向函数转换 X。
- 参数:
- X{array-like, sparse-matrix} of shape (n_samples, n_features) if
validate=Trueelse any object thatinverse_funccan handle 输入数组。
- X{array-like, sparse-matrix} of shape (n_samples, n_features) if
- 返回:
- X_originalarray-like, shape (n_samples, n_features)
转换后的输入。
- set_output(*, transform=None)[源代码]#
设置输出容器。
有关如何使用 API 的示例,请参阅引入 set_output API。
- 参数:
- transform{“default”, “pandas”, “polars”}, default=None
配置
transform和fit_transform的输出。"default": 转换器的默认输出格式"pandas": DataFrame 输出"polars": Polars 输出None: 转换配置保持不变
1.4 版本新增: 添加了
"polars"选项。
- 返回:
- selfestimator instance
估计器实例。