ColumnTransformer предназначен для последовательного применения различных функций преобразования данных к нескольким столбцам. Работает на arrays
, sparse matrices
и pandas DataFrames
. Результат каждого преобразователя объединяется в единое пространство признаков. Определение класса:
class sklearn.compose.ColumnTransformer(transformers,
remainder='drop',
sparse_threshold=0.3,
n_jobs=None,
transformer_weights=None)
transformers
принимает список кортежей, состоящий из (name, transformer, column(s))
.
name
- указанное пользователем имя для трансформатора transformer
- это преобразователь из преобразования данных библиотека от sklearn. column(s)
- это список индексов или имен столбцов, которые вы будете использовать sh для применения указанных c transformer
remainder
может принимать два значения drop
или passthrough
. Остальные индексы или столбцы ввода либо удаляются, либо включаются по мере их появления соответственно.
Теперь, возвращаясь к вашему вопросу,
Column_Trans=ColumnTransformer([('encoder',OneHotEncoder(),[0])],
remainder='passthrough')
- - это преобразователи
[('encoder',OneHotEncoder(),[0])]
- , кодировщик - это
name
, - OneHotEncoder () is
transformer
column 0
значения будут использоваться для выполнения OneHotEncoding.
Следовательно, окончательный вывод будет совпадать с выводом OneHotEncoded в столбце 0 и оставшимися столбцами ввода при передаче passthrough в remainder
.
Пример:
from sklearn.compose import ColumnTransformer
from sklearn.preprocessing import OneHotEncoder
import numpy as np
X = np.array([[0.0, 1.0, 2.3, 2.1],
[1.0, 0.4, 0.6, 1.2]])
ct = ColumnTransformer([('encoder', OneHotEncoder(), [0])],
remainder='passthrough')
ct.fit_transform(X)
# Here, One Hot Encoding is performed on each row of X on the first columns of
# each row independently, concatenating last two columns as they originally
# appear in input
>>> array([[1., 0., 1.0, 2.3, 2.1],
[0., 1., 0.4, 0.6, 1.2]])