ColumnTransformer构造器
时间: 2023-10-14 21:09:10 浏览: 32
`ColumnTransformer` 构造器是用于对不同列应用不同转换器的工具类。它可以将不同的转换器应用于不同的列,然后将这些列组合在一起形成一个新的特征矩阵。
`ColumnTransformer` 构造器需要以下参数:
- `transformers`:包含每个转换器的元组列表。每个元组包含两个元素,第一个元素是转换器对象,第二个元素是需要进行转换的列。例如,`[('transformer1', Column1), ('transformer2', Column2)]`。
- `remainder`:指定如何处理未指定的列。默认情况下,未指定的列将被删除。可以将其设置为 `'passthrough'`,以将这些列作为原样传递。
- `sparse_threshold`:指定何时使用稀疏矩阵来表示数据。默认情况下,当特征数量大于 0.3 * (n_samples * n_features) 时,将使用稀疏矩阵。
下面是一个示例,说明如何使用 `ColumnTransformer` 构造器:
```
from sklearn.compose import ColumnTransformer
from sklearn.preprocessing import StandardScaler
from sklearn.preprocessing import OneHotEncoder
# 定义转换器
num_transformer = StandardScaler()
cat_transformer = OneHotEncoder()
# 定义要处理的列
num_cols = ['age', 'salary']
cat_cols = ['gender']
# 定义 ColumnTransformer 对象
preprocessor = ColumnTransformer(
transformers=[
('num', num_transformer, num_cols),
('cat', cat_transformer, cat_cols)
])
# 对数据进行转换
X_train_transformed = preprocessor.fit_transform(X_train)
```
在这个示例中,我们定义了两个转换器:`StandardScaler` 和 `OneHotEncoder`,并将它们分别应用于 `num_cols` 和 `cat_cols` 列。我们使用 `ColumnTransformer` 构造器将这些转换器组合在一起,并将其应用于训练数据。最后,我们使用 `fit_transform()` 方法将训练数据转换为新的特征矩阵。