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’} 或 估计器
估计器必须支持 fit 和 transform。也接受特殊处理的字符串 ‘drop’ 和 ‘passthrough’,分别表示丢弃列或直接传递未转换的列。
- columns字符串、字符串类数组、整型、整型类数组、切片、布尔类数组或可调用对象
按其第二轴对数据进行索引。整数被解释为位置列,而字符串可以按名称引用 DataFrame 列。当
transformer
期望 X 为一维类数组(向量)时,应使用标量字符串或整数,否则将把二维数组传递给转换器。可调用对象会接收输入数据X
并可以返回上述任何一种类型。要按名称或数据类型选择多列,可以使用make_column_selector
。
- remainder{‘drop’, ‘passthrough’} 或 估计器, 默认值=’drop’
默认情况下,只有
transformers
中指定的列会被转换并组合到输出中,未指定的列将被丢弃。(默认值为'drop'
)。通过指定remainder='passthrough'
,所有未在transformers
中指定的剩余列将自动直接通过。这部分列的子集将与转换器的输出连接起来。通过将remainder
设置为估计器,剩余的未指定列将使用remainder
估计器。该估计器必须支持 fit 和 transform。- 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'])])