Преобразователь столбцов
- классsklearn.compose.ColumnTransformer(transformers, *, remainder='drop', sparse_threshold=0.3, n_jobs=None, transformer_weights=None, verbose=False, verbose_feature_names_out=True, force_int_remainder_cols=True)[source]
-
Применяет преобразователи к столбцам массива или pandas DataFrame.
Этот оценщик позволяет по-разному преобразовывать различные столбцы или подмножества столбцов входных данных, и сгенерированные каждым преобразователем признаки будут объединены, чтобы сформировать единое пространство признаков. Это полезно для гетерогенных или столбцовых данных, для объединения нескольких механизмов извлечения признаков или преобразований в один преобразователь.
Подробнее см. в Руководстве пользователя.
Добавлен в версии 0.20.
- Параметры:
-
- transformersсписок кортежей
-
Список кортежей (имя, преобразователь, столбцы), определяющий объекты преобразователей, которые будут применяться к подмножествам данных.
- имястрока
-
Как в Pipeline и FeatureUnion, это позволяет устанавливать преобразователь и его параметры с помощью
set_paramsи искать их в сетке поиска. - преобразователь{‘drop’, ‘passthrough’} или оценочная модель
-
Оценочная модель должна поддерживать fit и transform. Также принимаются специальные строки ‘drop’ и ‘passthrough’, указывающие на удаление столбцов или их пропуск без преобразований соответственно.
- столбцыстрока, массив-подобный объект строк, целых чисел, массивов-подобных объектов целых чисел, массивов-подобных объектов булевых значений, срез или вызываемая функция
-
Индексирует данные по второму осям. Целые числа интерпретируются как позиционные столбцы, а строки могут ссылаться на столбцы DataFrame по имени. Скалярная строка или целое число должны использоваться там, где
transformerожидает, что X будет одномерным массивом-подобным объектом (вектором), в противном случае преобразователю будет передан двумерный массив. Вызываемая функция получает входные данныеXи может возвращать любой из перечисленных выше типов. Для выбора нескольких столбцов по имени или типу данных можно использоватьmake_column_selector.
- remainder{‘drop’, ‘passthrough’} или оценочная модель, по умолчанию=’drop’
-
По умолчанию преобразуются и объединяются в выходные данные только указанные столбцы в
transformers, а не указанные столбцы отбрасываются. (по умолчанию'drop'). Указавremainder='passthrough', все оставшиеся столбцы, которые не были указаны вtransformers, но присутствуют в данных, переданных вfit, будут автоматически переданы. Это подмножество столбцов конкатенируется с результатом работы преобразователей. Для DataFrames дополнительные столбцы, не виденные во времяfit, будут исключены из выходных данныхtransform. Установивremainderв оценочную модель, оставшиеся не указанные столбцы будут использоватьremainderоценочную модель. Оценочная модель должна поддерживать fit и transform. Обратите внимание, что использование этой функции требует, чтобы столбцы DataFrame, введенные при fit и transform, имели идентичный порядок. - sparse_thresholdчисло с плавающей запятой, по умолчанию=0.3
-
Если выходные данные различных преобразователей содержат разреженные матрицы, они будут объединены как разреженная матрица, если общая плотность меньше этого значения. Используйте
sparse_threshold=0для всегда возвращения плотной матрицы. Когда выходные данные преобразования состоят только из плотных данных, объединенный результат будет плотным, и этот параметр будет проигнорирован. - n_jobsцелое число, по умолчанию=None
-
Количество задач, выполняемых параллельно.
Noneозначает 1, за исключением контекстаjoblib.parallel_backend.-1означает использование всех процессоров. См. Словарь для получения дополнительных сведений. - transformer_weightsсловарь, по умолчанию=None
-
Умножительные веса для признаков по преобразователям. Выход преобразователя умножается на эти веса. Ключи — имена преобразователей, значения — веса.
- verboseбулево значение, по умолчанию=False
-
Если True, время, затраченное на подгонку каждого преобразователя, будет выводиться по завершении его работы.
- verbose_feature_names_outбулево значение, строка или вызываемая функция[[строка, строка], строка], по умолчанию=True
-
- Если True,
ColumnTransformer.get_feature_names_outбудет добавлять префикс ко всем именам признаков с именем преобразователя, который сгенерировал этот признак. Это эквивалентно установкеverbose_feature_names_out="{transformer_name}__{feature_name}". - Если False,
ColumnTransformer.get_feature_names_outне будет добавлять префикс к именам признаков и выдаст ошибку, если имена признаков не уникальны. - Если
Callable[[str, str], str],ColumnTransformer.get_feature_names_outпереименует все признаки, используя имя преобразователя. Первый аргумент вызываемой функции — имя преобразователя, второй — имя признака. Возвращаемая строка будет новым именем признака. - Если
str, это должна быть строка, готовая к форматированию. Приведенная строка будет отформатирована с использованием двух имен полей:transformer_nameиfeature_name. Например,"{feature_name}__{transformer_name}". См. методstr.formatиз стандартной библиотеки для получения дополнительной информации.
Добавлен в версии 1.0.
Изменено в версии 1.6:
verbose_feature_names_outможет быть вызываемой функцией или строкой для форматирования. - Если True,
- force_int_remainder_colsбулево значение, по умолчанию=True
-
Принудительно хранить столбцы последнего элемента
transformers_, который соответствует преобразователю «остаток», всегда в виде индексов (целых чисел), а не имен столбцов (строк). См. описание атрибутаtransformers_для получения подробной информации.Примечание
Если вы не обращаетесь к списку столбцов для столбцов остатка в атрибуте
transformers_fitted, вам не нужно устанавливать этот параметр.Добавлен в версии 1.5.
Изменено в версии 1.7: Значение по умолчанию для
force_int_remainder_colsизменится сTrueнаFalseв версии 1.7.
- Атрибуты:
-
- transformers_список
-
Коллекция подогнанных преобразователей в виде кортежей (имя, подогнанный_преобразователь, столбец).
fitted_transformerможет быть оценочной моделью или'drop';'passthrough'заменяется эквивалентнойFunctionTransformer. В случае отсутствия выбранных столбцов это будет неподогнанный преобразователь. Если есть оставшиеся столбцы, последний элемент — кортеж вида: (‘remainder’, transformer, remaining_columns), соответствующий параметруremainder. Если есть оставшиеся столбцы, тогдаlen(transformers_)==len(transformers)+1, в противном случаеlen(transformers_)==len(transformers).Изменено в версии 1.5: Если есть оставшиеся столбцы и
force_int_remainder_colsравно True, оставшиеся столбцы всегда представлены своими позиционными индексами в входных данныхX(как в более ранних версиях). Еслиforce_int_remainder_colsравно False, формат пытается соответствовать формату других преобразователей: если все столбцы были предоставлены в виде имён столбцов (str), оставшиеся столбцы хранятся как имена столбцов; если все столбцы были предоставлены в виде массивов масок (bool), так же хранятся и оставшиеся столбцы; во всех остальных случаях оставшиеся столбцы хранятся в виде индексов (int). -
named_transformers_Bunch -
Доступ к подогнанному преобразователю по имени.
- sparse_output_булево значение
-
Булево значение, указывающее, является ли выход
transformразреженной матрицей или плотным массивом NumPy, что зависит от выхода отдельных преобразователей и параметраsparse_threshold. - output_indices_словарь
-
Словарь, где ключ — имя преобразователя, а значение — срез, соответствующий индексам в преобразованном выходе. Это полезно для проверки того, какой преобразователь отвечает за какой преобразованный признак.
Добавлен в версии 1.0.
- n_features_in_целое число
-
Количество признаков, увиденных во время fit. Определено только если подлежащие преобразователи имеют такой атрибут при подгонке.
Добавлен в версии 0.24.
-
feature_names_in_массив NumPy формы (
n_features_in_,) -
Имена признаков, увиденных во время fit. Определено только если у
Xесть имена признаков, все из которых являются строками.Добавлен в версии 1.0.
См. также
make_column_transformer-
Функция удобства для объединения результатов нескольких объектов преобразования, примененных к подмножествам столбцов исходного пространства признаков.
make_column_selector-
Функция удобства для выбора столбцов на основе типа данных или имени столбца с помощью шаблона регулярных выражений.
Примечания
Порядок столбцов в преобразованной матрице признаков соответствует порядку, в котором столбцы указаны в списке
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. ]])ColumnTransformerможно настроить с преобразователем, который требует одномерный массив, установив столбец в строку:>>> from sklearn.feature_extraction.text import CountVectorizer >>> from sklearn.preprocessing import MinMaxScaler >>> import pandas as pd >>> X = pd.DataFrame({ ... "documents": ["First item", "second one here", "Is this the last?"], ... "width": [3, 4, 5], ... }) >>> # "documents" is a string which configures ColumnTransformer to >>> # pass the documents column as a 1d array to the CountVectorizer >>> ct = ColumnTransformer( ... [("text_preprocess", CountVectorizer(), "documents"), ... ("num_preprocess", MinMaxScaler(), ["width"])]) >>> X_trans = ct.fit_transform(X)Для более подробного примера использования см. Преобразователь столбцов со смешанными типами.
- fit(X, y=None, **params)[source]
-
Обучить все преобразователи с использованием X.
- Параметры:
-
- X{array-like, dataframe} формы (n_samples, n_features)
-
Входные данные, подмножества которых используются для обучения преобразователей.
- yarray-like формы (n_samples,…), по умолчанию=None
-
Мишени для контролируемого обучения.
- **paramsdict, по умолчанию=None
-
Параметры, которые необходимо передать методам
fitиtransformбазовых преобразователей.Вы можете передать их только если включен маршрут метаданных, который можно включить, используя
sklearn.set_config(enable_metadata_routing=True).Добавлен в версии 1.4.
- Возвращает:
-
- selfColumnTransformer
-
Этот оценщик.
- fit_transform(X, y=None, **params)[source]
-
Обучить все преобразователи, преобразовать данные и объединить результаты.
- Параметры:
-
- X{array-like, dataframe} формы (n_samples, n_features)
-
Входные данные, подмножества которых используются для обучения преобразователей.
- yarray-like формы (n_samples,), по умолчанию=None
-
Мишени для контролируемого обучения.
- **paramsdict, по умолчанию=None
-
Параметры, которые необходимо передать методам
fitиtransformбазовых преобразователей.Вы можете передать их только если включен маршрут метаданных, который можно включить, используя
sklearn.set_config(enable_metadata_routing=True).Добавлен в версии 1.4.
- Возвращает:
-
- X_t{array-like, разреженная матрица} формы (n_samples, sum_n_components)
-
Результирующие данные, полученные при горизонтальном объединении преобразователей. sum_n_components — сумма n_components (размерность вывода) по всем преобразователям. Если какой-либо результат — разреженная матрица, всё будет преобразовано в разреженные матрицы.
- get_feature_names_out(input_features=None)[source]
-
Получить имена выходных признаков для преобразования.
- Параметры:
-
- input_featuresarray-like из str или None, по умолчанию=None
-
Входные признаки.
- Если
input_features—None, тоfeature_names_in_используются как имена признаков. Еслиfeature_names_in_не определено, то генерируются следующие имена входных признаков:["x0", "x1", ..., "x(n_features_in_ - 1)"]. - Если
input_features— массив-подобный объект, тоinput_featuresдолжен соответствоватьfeature_names_in_еслиfeature_names_in_определено.
- Если
- Возвращает:
-
- feature_names_outndarray из str объектов
-
Имена преобразованных признаков.
- get_metadata_routing()[source]
-
Получить маршрутизацию метаданных для этого объекта.
Пожалуйста, обратитесь к Руководству пользователя по работе механизма маршрутизации.
Добавлен в версии 1.4.
- Возвращает:
-
- routingMetadataRouter
-
MetadataRouter, содержащий информацию о маршрутизации.
- get_params(deep=True)[source]
-
Получить параметры этого оценщика.
Возвращает параметры, заданные в конструкторе, а также оценщики, содержащиеся в
transformersColumnTransformer.- Параметры:
-
- deepbool, по умолчанию=True
-
Если True, возвращаются параметры этого оценщика и содержащихся вложенных объектов-оценщиков.
- Возвращает:
-
- paramsdict
-
Имена параметров, сопоставленные со значениями.
- propertynamed_transformers_
-
Получить обученный преобразователь по имени.
Только для чтения атрибут для доступа к любому преобразователю по заданному имени. Ключи — имена преобразователей, значения — обученные объекты преобразователей.
- set_output(*, transform=None)[source]
-
Установите контейнер вывода при вызове
"transform"и"fit_transform".Вызов
set_outputустановит вывод всех оценок вtransformersиtransformers_.- Параметры:
-
- transform{“default”, “pandas”, “polars”}, по умолчанию=None
-
Настройка вывода
transformиfit_transform.-
"default": Формат вывода по умолчанию преобразователя -
"pandas": Вывод в формате DataFrame -
"polars": Вывод в формате Polars -
None: Конфигурация преобразования не изменяется
Добавлен в версии 1.4: Добавлена опция
"polars". -
- Возвращаемое значение:
-
- selfэкземпляр оценщика
-
Экземпляр оценщика.
- set_params(**kwargs)[source]
-
Установить параметры этого оценщика.
Список допустимых параметров можно получить с помощью
get_params(). Обратите внимание, что вы можете напрямую установить параметры оценок, содержащихся вtransformersColumnTransformer.- Параметры:
-
- **kwargsdict
-
Параметры оценщика.
- Возвращаемое значение:
-
- selfColumnTransformer
-
Этот оценщик.
- transform(X, **params)[source]
-
Преобразовать X, применяя каждый преобразователь по отдельности, и объединить результаты.
- Параметры:
-
- X{array-like, dataframe} формы (n_samples, n_features)
-
Данные, которые нужно преобразовать по подмножеству.
- **paramsdict, по умолчанию=None
-
Параметры, которые нужно передать методу
transformбазовых преобразователей.Вы можете передать их только если включена маршрутизация метаданных, которую можно включить с помощью
sklearn.set_config(enable_metadata_routing=True).Добавлен в версии 1.4.
- Возвращаемое значение:
-
- X_t{array-like, разреженная матрица} формы (n_samples, sum_n_components)
-
Горизонтально склеенные результаты преобразователей. sum_n_components — сумма n_components (размерности вывода) по всем преобразователям. Если какой-либо результат является разреженной матрицей, все результаты будут преобразованы в разреженные матрицы.
Примеры из галереи
© 2007–2025 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.6/modules/generated/sklearn.compose.ColumnTransformer.html