make_column_transformer#

sklearn.compose.make_column_transformer(*transformers, remainder='drop', sparse_threshold=0.3, n_jobs=None, verbose=False, verbose_feature_names_out=True, force_int_remainder_cols=True)#

构建一个由给定转换器组成的ColumnTransformer。

这是ColumnTransformer构造函数的简写;它不需要,也不允许命名转换器。相反,它们将根据其类型自动命名。它也不允许使用 transformer_weights 进行加权。

更多信息请参阅 用户指南

Parameters:
*transformers元组

形式为 (transformer, columns) 的元组,指定要应用于数据子集的转换器对象。

transformer{‘drop’, ‘passthrough’} 或估计器

估计器必须支持 fittransform 。 特殊字符串 ‘drop’ 和 ‘passthrough’ 也可以接受,分别表示删除列或不经过转换直接传递。

columnsstr, str 的数组, int, int 的数组, slice, bool 的数组 或 callable

在其第二个轴上索引数据。整数被解释为位置列,而字符串可以按名称引用 DataFrame 列。在 transformer 期望 X 为 1d 数组(向量)的情况下,应使用标量字符串或 int,否则将传递 2d 数组给转换器。 可调用对象传递输入数据 X 并可以返回上述任何内容。要按名称或 dtype 选择多列,可以使用 make_column_selector

remainder{‘drop’, ‘passthrough’} 或估计器, default=’drop’

默认情况下,仅在 transformers 中指定的列被转换并组合到输出中,未指定的列被删除(默认值为 'drop' )。 通过指定 remainder='passthrough' ,所有在 transformers 中未指定的剩余列将自动传递。此列子集与转换器的输出连接在一起。 通过将 remainder 设置为估计器,未指定的剩余列将使用 remainder 估计器。估计器必须支持 fittransform

sparse_thresholdfloat, default=0.3

如果转换后的输出包含稀疏和密集数据的混合,如果密度低于此值,它将被堆叠为稀疏矩阵。使用 sparse_threshold=0 始终返回密集。 当转换后的输出全部为稀疏或全部为密集数据时,堆叠结果将分别为稀疏或密集,并且此关键字将被忽略。

n_jobsint, default=None

并行运行的作业数。 None 表示 1,除非在 joblib.parallel_backend 上下文中。 -1 表示使用所有处理器。有关更多详细信息,请参阅 Glossary

verbosebool, default=False

如果为 True,将在每个转换器完成时打印所用的时间。

verbose_feature_names_outbool, default=True

如果为 True,ColumnTransformer.get_feature_names_out 将在所有特征名称前加上生成该特征的转换器名称。 如果为 False,ColumnTransformer.get_feature_names_out 将不会前缀任何特征名称,并且在特征名称不唯一时会出错。

Added in version 1.0.

force_int_remainder_colsbool, default=True

强制 transformers_ 的最后一个条目的列,对应于 “remainder” 转换器,始终存储为索引(int)而不是列名(str)。有关详细信息,请参阅 ColumnTransformer.transformers_ 属性的描述。

Note

如果您不访问 ColumnTransformer.transformers_ 拟合属性中剩余列的列列表,则不需要设置此参数。

Added in version 1.5.

Changed in version 1.7: force_int_remainder_cols 的默认值将从 True 更改为 False 在版本 1.7 中。

Returns:
ctColumnTransformer

返回一个 ColumnTransformer 对象。

See also

ColumnTransformer

类,允许将用于数据列子集的多个转换器对象的输出组合到一个特征空间中。

Examples

>>> from sklearn.preprocessing import StandardScaler, OneHotEncoder
>>> from sklearn.compose import make_column_transformer
>>> make_column_transformer(
...     (StandardScaler(), ['numerical_column']),
...     (OneHotEncoder(), ['categorical_column']))
ColumnTransformer(transformers=[('standardscaler', StandardScaler(...),
                                 ['numerical_column']),
                                ('onehotencoder', OneHotEncoder(...),
                                 ['categorical_column'])])