sklearn.compose.make_column_transformer

sklearn.compose.make_column_transformer(*transformers, **kwargs)

[源码]

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

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

用户指南中阅读更多内容.

参数 说明
*transformers tuples
指定要应用于数据子集的转换器对象的表单(转换器、列)的元组
transformer {‘drop’, ‘passthrough’} or estimator
估计器必须支持fittransform。特殊大小写的字符串‘drop’和‘passthrough’也被接受,分别表示要删除列或将它们传递给未转换的列。
columns str, array-like of str, int, array-like of int, slice, array-like of bool or callable
在其第二轴上索引数据。整数被解释为位置列,而字符串可以按名称引用DataFrame列。应该使用标量字符串或int,如果transformer期望X是一维数组类(向量),否则2d数组将传递给转换器。可调用传递输入数据X,并可以返回上述任何内容。若要按名称或dtype选择多列,可以使用make_column_selector
remainder {‘drop’, ‘passthrough’} or estimator, default=’drop’
默认情况下,只有transformers中的指定列在输出中转换和组合,而非指定列被删除。(默认‘drop’)。通过指定remainder='passthrough',所有未在transformers中指定的其余列都将自动通过。这个列的子集与的transformers输出连接在一起。通过将remainder设置为估计器,其余未指定的列将使用remainder估计器。估计器必须支持fittransform。请注意,使用此特性需要在fittransform中输入的DataFrame列具有相同的顺序。
sparse_threshold float, default=0.3
如果不同的转换器输出含有稀疏矩阵,则如果总密度低于此值,则将这些矩阵叠加为稀疏矩阵。使用sparse_threshold=0来始终返回稠密。当转换后的输出由所有密集数据组成时,叠加的结果将是密集的,而这个关键字将被忽略。
n_jobs int, default=None
要运行的并行数。None意味1, 除非在joblib.parallel_backend环境中。-1指使用所有处理器。有关详细信息,请参Glossary
verbose bool, default=False
如果是True,拟合每个变压器所需的时间将在完成时打印出来。
返回值 说明
ct 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'])])