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’,则输出特征名称将等于输入特征名称。如果为可调用对象,则必须接受两个位置参数:此FunctionTransformer
(self
)和输入特征名称的数组类似对象(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:
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来拟合转换器。
如果
validate
为True
,将检查X
。- Parameters:
- X{array-like, sparse-matrix} of shape (n_samples, n_features) if
validate=True
else any object thatfunc
can handle 输入数组。
- yIgnored
不使用,在此处出现是为了API一致性。
- X{array-like, sparse-matrix} of shape (n_samples, n_features) if
- Returns:
- selfobject
FunctionTransformer类的实例。
- 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)#
获取变换后的输出特征名称。
只有在
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
是可调用对象,则它以两个参数self
和input_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 thatinverse_func
can handle 输入数组。
- X{array-like, sparse-matrix} of shape (n_samples, n_features) if
- Returns:
- X_outarray-like, shape (n_samples, n_features)
转换后的输入。
- 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)#
Transform X using the forward function.
- Parameters:
- X{array-like, sparse-matrix} of shape (n_samples, n_features) 如果
validate=True
则为任意func
可以处理的对象 输入数组。
- X{array-like, sparse-matrix} of shape (n_samples, n_features) 如果
- Returns:
- X_outarray-like, shape (n_samples, n_features)
转换后的输入。