创建列变换器#

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

根据给定的变换器构造一个列变换器。

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

更多信息请参见用户指南

参数:
*transformers元组

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

transformer{'drop', 'passthrough'} 或估计器

估计器必须支持fittransform。也接受特殊情况的字符串“drop”和“passthrough”,分别表示删除列或直接传递未转换的列。

columnsstr,str 数组,int,int 数组,切片,bool 数组或可调用对象

索引其第二轴上的数据。整数被解释为位置列,而字符串可以按名称引用 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

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

注意

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

1.5 版本新增。

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

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