本文简要介绍python语言中 sklearn.compose.ColumnTransformer
的用法。
用法:
class sklearn.compose.ColumnTransformer(transformers, *, remainder='drop', sparse_threshold=0.3, n_jobs=None, transformer_weights=None, verbose=False, verbose_feature_names_out=True)
将转换器应用于数组或 pandas DataFrame 的列。
该估计器允许单独转换输入的不同列或列子集,并且每个转换器生成的特征将连接起来形成单个特征空间。这对于异构或列数据很有用,可以将多个特征提取机制或转换组合到单个转换器中。
在用户指南中阅读更多信息。
- transformers:元组列表
(名称、转换器、列)元组列表,指定要应用于数据子集的转换器对象。
- 名字:str
就像在 Pipeline 和 FeatureUnion 中一样,这允许使用
set_params
设置转换器及其参数并在网格搜索中进行搜索。- transformer:{‘drop’, ‘passthrough’} 或估算器
估算器必须支持拟合和变换。 Special-cased 字符串 ‘drop’ 和 ‘passthrough’ 也被接受,分别指示删除列或将它们传递给未转换的列。
- 列:str、str 的类似数组、int、int 的类似数组、bool、slice 或 callable 的类似数组
在第二个轴上索引数据。整数被解释为位置列,而字符串可以按名称引用 DataFrame 列。当
transformer
期望 X 是一个一维数组(向量)时,应该使用标量字符串或 int,否则一个二维数组将被传递给转换器。可调用对象传递输入数据X
,并且可以返回上述任何数据。要按名称或数据类型选择多个列,可以使用make_column_selector
。
- remainder:{‘drop’, ‘passthrough’} 或估计器,默认='drop'
默认情况下,只有
transformers
中的指定列在输出中进行转换和组合,而未指定的列将被删除。 (默认为'drop'
)。通过指定remainder='passthrough'
,将自动传递所有未在transformers
中指定的剩余列。该列子集与转换器的输出连接。通过将remainder
设置为估计器,其余未指定的列将使用remainder
估计器。估计器必须支持拟合和变换。请注意,使用此函数需要 DataFrame 列输入 fit 和 transform 具有相同的顺序。- sparse_threshold:浮点数,默认=0.3
如果不同转换器的输出包含稀疏矩阵,如果整体密度低于此值,则这些将堆叠为稀疏矩阵。使用
sparse_threshold=0
始终返回密集。当转换后的输出由所有密集数据组成时,堆叠的结果将是密集的,该关键字将被忽略。- n_jobs:整数,默认=无
并行运行的作业数。
None
表示 1,除非在joblib.parallel_backend
上下文中。-1
表示使用所有处理器。有关详细信息,请参阅词汇表。- transformer_weights:字典,默认=无
每个转换器的特征的乘法权重。转换器的输出乘以这些权重。键是转换器名称,值是权重。
- verbose:布尔,默认=假
如果为 True,则在安装每个转换器时经过的时间将在完成时打印。
- verbose_feature_names_out:布尔,默认=真
如果为 True,
get_feature_names_out
将在所有特征名称前加上生成该特征的转换器名称。如果为 False,get_feature_names_out
将不会为任何函数名称添加前缀,并且如果函数名称不唯一,则会出错。
- transformers_:列表
已安装转换器的集合,作为(名称、fitted_transformer、列)的元组。
fitted_transformer
可以是估计器、‘drop’ 或 ‘passthrough’。如果没有选择任何列,则这将是未安装的转换器。如果还有剩余列,则最终元素是以下形式的元组:(‘remainder’、transformer、remaining_columns),对应于remainder
参数。如果还有剩余列,则为len(transformers_)==len(transformers)+1
,否则为len(transformers_)==len(transformers)
。named_transformers_
sklearn.utils.Bunch按名称访问已安装的转换器。
- sparse_output_:bool
指示
transform
的输出是稀疏矩阵还是密集 numpy 数组的布尔标志,这取决于各个转换器的输出和sparse_threshold
关键字。- output_indices_:dict
从每个转换器名称到切片的字典,其中切片对应于转换后的输出中的索引。这对于检查哪个转换器负责哪个转换特征很有用。
- n_features_in_:int
拟合期间看到的特征数。仅当底层转换器在合适时公开此类属性时才定义。
参数:
属性:
注意:
转换后的特征矩阵中列的顺序遵循
transformers
列表中列的指定顺序。除非在passthrough
关键字中指定,否则未指定的原始特征矩阵的列将从生成的转换特征矩阵中删除。用passthrough
指定的那些列被添加到转换器输出的右侧。例子:
>>> import numpy as np >>> from sklearn.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. ]])
相关用法
- Python sklearn ConfusionMatrixDisplay.from_predictions用法及代码示例
- Python sklearn ComplementNB用法及代码示例
- Python sklearn CountVectorizer用法及代码示例
- Python sklearn ConfusionMatrixDisplay用法及代码示例
- Python sklearn CompoundKernel用法及代码示例
- Python sklearn ConstantKernel用法及代码示例
- Python sklearn ConfusionMatrixDisplay.from_estimator用法及代码示例
- Python sklearn CalibrationDisplay.from_predictions用法及代码示例
- Python sklearn ClassifierChain用法及代码示例
- Python sklearn CategoricalNB用法及代码示例
- Python sklearn CalibrationDisplay.from_estimator用法及代码示例
- Python sklearn CalibrationDisplay用法及代码示例
- Python sklearn CalibratedClassifierCV用法及代码示例
- Python sklearn CCA用法及代码示例
- Python sklearn jaccard_score用法及代码示例
- Python sklearn WhiteKernel用法及代码示例
- Python sklearn VotingRegressor用法及代码示例
- Python sklearn gen_batches用法及代码示例
- Python sklearn ExpSineSquared用法及代码示例
- Python sklearn MDS用法及代码示例
- Python sklearn adjusted_rand_score用法及代码示例
- Python sklearn MLPClassifier用法及代码示例
- Python sklearn train_test_split用法及代码示例
- Python sklearn RandomTreesEmbedding用法及代码示例
- Python sklearn GradientBoostingRegressor用法及代码示例
注:本文由纯净天空筛选整理自scikit-learn.org大神的英文原创作品 sklearn.compose.ColumnTransformer。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。