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='deprecated')[source]#

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

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

用户指南中阅读更多信息。

参数:
*transformers元组

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

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

估计器必须支持 fittransform。也接受特殊处理的字符串 ‘drop’ 和 ‘passthrough’,分别表示丢弃列或直接传递未转换的列。

columns字符串、字符串类数组、整型、整型类数组、切片、布尔类数组或可调用对象

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

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

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

sparse_threshold浮点数, 默认值=0.3

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

n_jobs整型, 默认值=None

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

verbose布尔型, 默认值=False

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

verbose_feature_names_out布尔型, 默认值=True

如果为 True,ColumnTransformer.get_feature_names_out 将用生成该特征的转换器的名称作为所有特征名的前缀。如果为 False,ColumnTransformer.get_feature_names_out 将不会给任何特征名加前缀,如果特征名不唯一,则会报错。

版本 1.0 新增。

force_int_remainder_cols布尔型, 默认值=True

此参数无效。

注意

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

版本 1.5 新增。

版本 1.7 变更: force_int_remainder_cols 的默认值将在 1.7 版中从 True 更改为 False

自版本 1.7 起已弃用: force_int_remainder_cols 已弃用,并将在 1.9 版中移除。

返回:
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'])])