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进行加权。在用户指南中了解更多信息。
- 参数:
- *transformerstuples
形式为 (transformer, columns) 的元组,指定要应用于数据子集的转换器对象。
- transformer{‘drop’, ‘passthrough’} or estimator
估算器必须支持 fit 和 transform。特殊字符串 ‘drop’ 和 ‘passthrough’ 也被接受,分别表示删除列或按原样传递列。
- columnsstr, array-like of str, int, array-like of int, slice, array-like of bool or callable
在数据的第二个轴上进行索引。整数被解释为位置列,而字符串可以按名称引用 DataFrame 列。如果
transformer期望 X 是一个 1d 类数组(向量),则应使用标量字符串或整数,否则将把一个 2d 数组传递给转换器。可调用对象传入输入数据X并可以返回上述任何一种类型。要按名称或 dtype 选择多列,可以使用make_column_selector。
- remainder{‘drop’, ‘passthrough’} or estimator, default=’drop’
默认情况下,输出中只转换和合并
transformers中指定的列,未指定的列将被删除。(默认值为'drop')。通过指定remainder='passthrough',所有未在transformers中指定的剩余列将自动按原样传递。此列子集将与转换器的输出连接。通过将remainder设置为估算器,剩余未指定的列将使用remainder估算器。估算器必须支持 fit 和 transform。- 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将不会为任何特征名称加上前缀,如果特征名称不唯一,则会报错。1.0 版本新增。
- force_int_remainder_colsbool, default=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'])])