当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python dask_ml.compose.ColumnTransformer用法及代码示例


用法:

class dask_ml.compose.ColumnTransformer(transformers, remainder='drop', sparse_threshold=0.3, n_jobs=1, transformer_weights=None, preserve_dataframe=True)

将转换器应用于数组或 pandas DataFrame 的列。

实验性:某些行为可能会在版本之间发生变化而不会弃用。

此估计器允许单独转换输入的不同列或列子集,并将结果组合到单个特征空间中。这对于异构或列数据很有用,可以将多个特征提取机制或转换组合到单个转换器中。

在用户指南中阅读更多信息。

注意

这需要scikit-learn 0.20.0 或更高版本。

参数

transformers元组列表

(名称、转换器、列)元组列表,指定要应用于数据子集的转换器对象。

姓名string

就像在 Pipeline 和 FeatureUnion 中一样,这允许使用 set_params 设置转换器及其参数并在网格搜索中进行搜索。

transformer估计器或 {‘passthrough’, ‘drop’}

估算器必须支持 fittransform 。 Special-cased 字符串 ‘drop’ and ‘passthrough’ 也被接受,分别表示删除列或将它们传递给未转换的列。

列)string or int, array-like of string or int, slice, boolean mask array or callable

在其第二个轴上索引数据。整数被解释为位置列,而字符串可以按名称引用 DataFrame 列。如果transformer 期望 X 是一维 array-like(向量),则应使用标量字符串或整数,否则将向转换器传递一个二维数组。可调用对象传递输入数据X,并且可以返回上述任何内容。

remainder{‘drop’, ‘passthrough’} 或估计器,默认 ‘drop’

默认情况下,只有 transformers 中的指定列在输出中进行转换和组合,而未指定的列将被删除。 (默认为 'drop' )。通过指定 remainder='passthrough' ,将自动传递所有未在 transformers 中指定的剩余列。该列子集与转换器的输出连接。通过将remainder 设置为估计器,其余未指定的列将使用remainder 估计器。估计器必须支持 fittransform

sparse_threshold浮点数,默认 = 0.3

如果转换后的输出包含稀疏和密集数据的混合,如果密度低于此值,它将被堆叠为稀疏矩阵。使用 sparse_threshold=0 始终返回密集。当转换后的输出由所有稀疏或所有密集数据组成时,堆叠结果将分别为稀疏或密集,该关键字将被忽略。

n_jobs整数或无,可选(默认=无)

并行运行的作业数。 None 表示 1,除非在 joblib.parallel_backend 上下文中。 -1 表示使用所有处理器。有关详细信息,请参阅词汇表。

transformer_weights字典,可选

每个转换器的特征的乘法权重。转换器的输出乘以这些权重。键是转换器名称,值是权重。

preserve_dataframe布尔,(默认=真)

连接结果时是否保留 pandas DataFrames。

警告

保留 DataFrame 的默认行为与 scikit-learn 的当前行为不同。如果需要确保输出与scikit-learn 的 ColumnTransformer 匹配,请设置 preserve_dataframe=False

属性

transformers_列表

作为(名称,fitted_transformer,列)的元组的拟合转换器的集合。 fitted_transformer 可以是估计器,‘drop’, or ‘passthrough’。如果还有剩余的列,则最后一个元素是形式的元组:(‘remainder’,transformer,remaining_columns)对应于remainder参数。如果还有剩余的列,则 len(transformers_)==len(transformers)+1 ,否则 len(transformers_)==len(transformers)

named_transformers_Bunch 对象,具有属性访问权限的字典

按名称访问已安装的转换器。

sparse_output_布尔值

指示 transform 的输出是稀疏矩阵还是密集 numpy 数组的布尔标志,这取决于各个转换器的输出和 sparse_threshold 关键字。

注意

转换后的特征矩阵中列的顺序遵循 transformers 列表中列的指定顺序。除非在 passthrough 关键字中指定,否则未指定的原始特征矩阵的列将从生成的转换特征矩阵中删除。用passthrough 指定的那些列被添加到转换器输出的右侧。

例子

>>> from dask_ml.compose import ColumnTransformer
>>> from sklearn.preprocessing import Normalizer
>>> ct = ColumnTransformer(
...     [("norm1", Normalizer(norm='l1'), [0, 1]),
...      ("norm2", Normalizer(norm='l1'), slice(2, 4))])
>>> X = np.array([[0., 1., 2., 2.],
...               [1., 1., 0., 1.]])
>>> # Normalizer scales each row of X to unit norm. A separate scaling
>>> # is applied for the two first and two last elements of each
>>> # row independently.
>>> ct.fit_transform(X)    
array([[0. , 1. , 0.5, 0.5],
       [0.5, 0.5, 0. , 1. ]])

相关用法


注:本文由纯净天空筛选整理自dask.org大神的英文原创作品 dask_ml.compose.ColumnTransformer。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。