dask_ml.compose.make_column_transformer
dask_ml.compose.make_column_transformer¶
- dask_ml.compose.make_column_transformer(*transformers, **kwargs)¶
从给定的转换器构建一个 ColumnTransformer。
这是 ColumnTransformer 构造函数的一种简写形式;它不需要也不允许命名转换器。相反,它们将根据其类型自动获得名称。它也不允许使用
transformer_weights
进行加权。在 用户指南 中阅读更多信息。
- 参数
- *transformers元组 (tuples)
指定要应用于数据子集的转换器对象的元组,形式为 (transformer, columns)。
- transformer{‘drop’, ‘passthrough’} 或 估计器 (estimator)
估计器必须支持 fit 和 transform。也接受特殊处理的字符串 ‘drop’ 和 ‘passthrough’,分别表示丢弃列或不经转换地通过它们。
- columnsstr, 字符串数组, int, 整数数组, slice, 布尔数组 或 callable
在数据的第二轴上进行索引。整数被解释为位置列,而字符串可以通过名称引用 DataFrame 列。当
transformer
期望 X 为一维类数组 (向量) 时,应使用标量字符串或整数,否则将把二维数组传递给转换器。callable 将获得输入数据 X 并可以返回上述任何类型。要按名称或 dtype 选择多列,可以使用make_column_selector
。
- remainder{‘drop’, ‘passthrough’} 或 估计器 (estimator),默认为 ‘drop’
默认情况下,只有 transformers 中指定的列会被转换并组合到输出中,未指定的列则被丢弃(默认为
'drop'
)。通过指定remainder='passthrough'
,所有未在 transformers 中指定的剩余列将自动不经转换地通过。这部分列将与转换器的输出连接在一起。通过将remainder
设置为一个估计器,剩余的未指定列将使用这个remainder
估计器。该估计器必须支持 fit 和 transform。- sparse_thresholdfloat,默认为 0.3
如果转换后的输出包含稀疏和密集数据的混合,当密度低于此值时,它将堆叠为稀疏矩阵。使用
sparse_threshold=0
将始终返回密集数据。当转换后的输出全部由稀疏或全部由密集数据组成时,堆叠结果将分别是稀疏或密集的,此时将忽略此关键字。- n_jobsint,默认为 None
并行运行的作业数量。
None
表示 1,除非在joblib.parallel_backend
上下文中。-1
表示使用所有处理器。有关更多详细信息,请参阅 术语表。- verbosebool,默认为 False
如果为 True,则在每个转换器完成拟合时,将打印其耗时。
- verbose_feature_names_outbool,默认为 True
如果为 True,
ColumnTransformer.get_feature_names_out()
将在所有特征名称前加上生成该特征的转换器的名称。如果为 False,ColumnTransformer.get_feature_names_out()
将不会添加任何前缀,并且如果特征名称不唯一,则会报错。1.0 版本新增。
- force_int_remainder_colsbool,默认为 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'])])