Spec-Zone.ru › scikit-learn

Преобразователь столбцов

класс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 может быть вызываемой функцией или строкой для форматирования.

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]

Получить параметры этого оценщика.

Возвращает параметры, заданные в конструкторе, а также оценщики, содержащиеся в transformers ColumnTransformer.

Параметры:
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(). Обратите внимание, что вы можете напрямую установить параметры оценок, содержащихся в transformers ColumnTransformer.

Параметры:
**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 (размерности вывода) по всем преобразователям. Если какой-либо результат является разреженной матрицей, все результаты будут преобразованы в разреженные матрицы.

Примеры из галереи

Основные моменты выпуска scikit-learn 1.5

Основные моменты выпуска scikit-learn 1.4

Основные моменты выпуска scikit-learn 1.2

Основные моменты выпуска scikit-learn 1.1

Основные моменты выпуска scikit-learn 1.0

Инженерия временных признаков

Регрессия Пуассона и потери, не являющиеся нормальными

Регрессия Твида на страховых претензиях

Графики частичной зависимости и индивидуальной условной ожидаемой зависимости

Важность перестановок против важности признаков случайного леса (MDI)

Отображение конвейеров

Оценка алгоритмов обнаружения выбросов

Представление API set_output

Преобразователь столбцов с разнородными источниками данных

Преобразователь столбцов с различными типами

Сравнение Target Encoder с другими кодерами

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API