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

从给定的转换器构造一个 ColumnTransformer。

这是 ColumnTransformer 构造函数的快捷方式;它不需要也不允许为转换器命名。相反,它们会根据各自的类型自动获得名称。此外,它不允许使用 transformer_weights 进行加权。

用户指南 中了解更多信息。

参数:
*transformers元组

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

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

估计器必须支持 fittransform。也接受特殊字符串 ‘drop’ 和 ‘passthrough’,分别表示丢弃这些列或不对其进行转换直接通过。

columnsstr, str 的数组序列, int, int 的数组序列, slice, bool 的数组序列 或 可调用对象

对数据的第二个轴进行索引。整数被解释为列位置,而字符串可以按名称引用 DataFrame 列。当 transformer 期望 X 为一维数组序列(向量)时,应使用标量字符串或整数;否则将向转换器传递二维数组。可调用对象会被传入输入数据 X,并可以返回上述任意类型。要按名称或数据类型选择多个列,可以使用 make_column_selector

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

默认情况下,只有 transformers 中指定的列会被转换并在输出中合并,未指定的列将被丢弃(默认值为 'drop')。通过指定 remainder='passthrough',所有未在 transformers 中指定的剩余列将自动直接通过。此列子集将与转换器的输出进行连接。通过将 remainder 设置为估计器,剩余未指定的列将使用该 remainder 估计器进行处理。该估计器必须支持 fittransform

sparse_thresholdfloat, 默认=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 不会添加前缀,如果特征名称不唯一,则会报错。

1.0 版本新增。

返回:
ctColumnTransformer

返回一个 ColumnTransformer 对象。

另请参阅

ColumnTransformer

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

示例

>>> 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'])])