TargetEncoder
- классsklearn.preprocessing.TargetEncoder(categories='auto', target_type='auto', smooth='auto', cv=5, shuffle=True, random_state=None)[source]
-
Кодировщик целей для регрессии и классификации.
Каждая категория кодируется на основе сокращенной оценки средних значений целевой переменной для наблюдений, принадлежащих к этой категории. Схема кодирования смешивает глобальное среднее значение целевой переменной со средним значением целевой переменной, обусловленным значением категории (см. [MIC]).
Когда тип целевой переменной — «многоклассовый», кодирование основано на оценке условной вероятности для каждого класса. Целевая переменная сначала бинаризуется с помощью схемы «один против всех» через
LabelBinarizer, затем используется среднее значение целевой переменной для каждого класса и каждой категории для кодирования, что приводит кn_features*n_classesзакодированным выходным признакам.TargetEncoderучитывает пропущенные значения, такие какnp.nanилиNone, как другую категорию и кодирует их так же, как и другие категории. Категории, которые не встречались во времяfit, кодируются со средним значением целевой переменной, то естьtarget_mean_.Демонстрация важности
TargetEncoderвнутреннего перекрестного обучения представлена в Внутреннее перекрестное обучение кодировщика целей. Сравнение различных кодировщиков можно найти в Сравнение кодировщика целей с другими кодировщиками. Подробнее см. в Руководстве пользователя.Примечание
fit(X, y).transform(X)не равноfit_transform(X, y), так как используется схема перекрестного обучения вfit_transformдля кодирования. Подробности см. в Руководстве пользователя.Добавлен в версии 1.3.
- Параметры:
-
- categories“auto” или список формы (n_features,) массивов, по умолчанию «auto»
-
Категории (уникальные значения) по признаку:
-
"auto": Автоматически определить категории из обучающих данных. - список :
categories[i]содержит ожидаемые категории в i-м столбце. Переданные категории не должны смешивать строки и числовые значения в одном признаке и должны быть отсортированы в случае числовых значений.
Используемые категории хранятся в
categories_атрибуте. -
- target_type{“auto”, “continuous”, “binary”, “multiclass”}, по умолчанию «auto»
-
Тип целевой переменной.
-
"auto": Тип целевой переменной определяется с помощьюtype_of_target. -
"continuous": Непрерывная целевая переменная -
"binary": Бинарная целевая переменная -
"multiclass": Многоклассовая целевая переменная
Примечание
Тип целевой переменной, определенный с помощью
"auto", может не соответствовать желаемому типу целевой переменной, используемому для моделирования. Например, если целевая переменная состояла из целых чисел от 0 до 100, тоtype_of_targetопределит целевую переменную как"multiclass". В этом случае установкаtarget_type="continuous"укажет целевую переменную как задачу регрессии. Атрибутtarget_type_указывает тип целевой переменной, используемый кодировщиком.Изменено в версии 1.4: Добавлена опция ‘multiclass’.
-
- smooth“auto” или float, по умолчанию «auto»
-
Величина смешения среднего значения целевой переменной, обусловленной значением категории, с глобальным средним значением целевой переменной. Более высокое значение
smoothпридаст большее значение глобальному среднему значению целевой переменной. Если"auto", тоsmoothустанавливается на оценку эмпирических Байесов. - cvint, по умолчанию 5
-
Определяет количество фолдов в стратегии перекрестного обучения, используемой в
fit_transform. Для классификационных целевых переменных используетсяStratifiedKFold, а для непрерывных целевых переменных —KFold. - shufflebool, по умолчанию True
-
Перемешивать ли данные в
fit_transformперед разделением на фолды. Обратите внимание, что образцы в каждом разбиении не будут перемешиваться. - random_stateint, RandomState instance или None, по умолчанию None
-
Когда
shuffleравно True,random_stateвлияет на порядок индексов, что контролирует случайность каждого фолда. В противном случае этот параметр не влияет. Передайте целое число для воспроизводимого результата при нескольких вызовах функции. См. Словарь.
- Атрибуты:
-
- encodings_список формы (n_features,) или (n_features * n_classes) массивов
-
Наборы кодировок, обученные по всем
X. Для признакаi,encodings_[i]— это кодировки, соответствующие категориям, указанным вcategories_[i]. Приtarget_type_«multiclass» кодировка для признакаiи классаjхранится вencodings_[j + (i * len(classes_))]. Например, для 2 признаков (f) и 3 классов (c), кодировки упорядочены: f0_c0, f0_c1, f0_c2, f1_c0, f1_c1, f1_c2, - categories_список формы (n_features,) массивов
-
Категории каждого входного признака, определённые во время обучения или указанные в
categories(в порядке признаков вXи соответствующие выводуtransform). - target_type_str
-
Тип целевой переменной.
- target_mean_float
-
Общее среднее значение целевой переменной. Это значение используется только в
transformдля кодирования категорий. - n_features_in_int
-
Количество признаков, встреченных во время fit.
-
feature_names_in_массив формы (
n_features_in_,) -
Названия признаков, встреченных во время fit. Определены только тогда, когда
Xимеет имена признаков, которые все являются строками. - classes_массив или None
-
Если
target_type_равно ‘binary’ или ‘multiclass’, содержит метку для каждого класса, в противном случаеNone.
См. также
OrdinalEncoder-
Выполняет порядковое (целочисленное) кодирование категориальных признаков. В отличие от TargetEncoder, это кодирование не контролируется данными. Применение полученного кодирования как числовых признаков поэтому приводит к произвольно упорядоченным значениям и, как следствие, обычно приводит к снижению предсказательной способности, когда используется как предобработка для классификатора или регрессора.
OneHotEncoder-
Выполняет one-hot кодирование категориальных признаков. Эта неконтролируемая схема кодирования лучше подходит для категориальных переменных с низкой кратностью, так как она создаёт новый признак для каждой уникальной категории.
Ссылки
Примеры
С
smooth="auto", параметр сглаживания устанавливается на оценку эмпирических Байесов:>>> import numpy as np >>> from sklearn.preprocessing import TargetEncoder >>> X = np.array([["dog"] * 20 + ["cat"] * 30 + ["snake"] * 38], dtype=object).T >>> y = [90.3] * 5 + [80.1] * 15 + [20.4] * 5 + [20.1] * 25 + [21.2] * 8 + [49] * 30 >>> enc_auto = TargetEncoder(smooth="auto") >>> X_trans = enc_auto.fit_transform(X, y)
>>> # A high `smooth` parameter puts more weight on global mean on the categorical >>> # encodings: >>> enc_high_smooth = TargetEncoder(smooth=5000.0).fit(X, y) >>> enc_high_smooth.target_mean_ np.float64(44...) >>> enc_high_smooth.encodings_ [array([44..., 44..., 44...])]
>>> # On the other hand, a low `smooth` parameter puts more weight on target >>> # conditioned on the value of the categorical: >>> enc_low_smooth = TargetEncoder(smooth=1.0).fit(X, y) >>> enc_low_smooth.encodings_ [array([20..., 80..., 43...])]
- fit(X, y)[source]
-
Подгоняет
TargetEncoderк X и y.- Параметры:
-
- Xмассив-подобный, форма (n_samples, n_features)
-
Данные для определения категорий каждого признака.
- yмассив-подобный, форма (n_samples,)
-
Целевые данные, используемые для кодирования категорий.
- Возвращает:
-
- selfобъект
-
Обученный кодировщик.
- fit_transform(X, y)[source]
-
Обучает
TargetEncoderи преобразует X с помощью целевого кодирования.Примечание
fit(X, y).transform(X)не равноfit_transform(X, y)потому что вfit_transformдля кодирования используется схема перекрёстного обучения. Подробности см. в Руководстве пользователя.- Параметры:
-
- Xмассив-подобный, форма (n_samples, n_features)
-
Данные для определения категорий каждого признака.
- yмассив-подобный, форма (n_samples,)
-
Целевые данные, используемые для кодирования категорий.
- Возвращает:
-
- X_transмассив NumPy с формой (n_samples, n_features) или (n_samples, (n_features * n_classes))
-
Преобразованный ввод.
- get_feature_names_out(input_features=None)[source]
-
Получение имён выходных признаков для преобразования.
- Параметры:
-
- input_featuresмассив-подобный str или None, по умолчанию None
-
Не используется, присутствует здесь для согласованности API по умолчанию.
- Возвращает:
-
- feature_names_outмассив str-объектов
-
Преобразованные имена признаков.
feature_names_in_используется, если он не определен, в противном случае генерируются следующие имена входных признаков:["x0", "x1", ..., "x(n_features_in_ - 1)"]. Когдаtype_of_target_равно “многоклассовому”, имена имеют формат ‘<имя_признака>_<имя_класса>’.
- get_metadata_routing()[source]
-
Получение маршрутизации метаданных этого объекта.
Пожалуйста, проверьте Руководство пользователя по тому, как работает механизм маршрутизации.
- Возвращает:
-
- routingMetadataRequest
-
MetadataRequestencapsulating routing information.
- get_params(deep=True)[source]
-
Получить параметры этого оценщика.
- Параметры:
-
- deepbool, по умолчанию True
-
Если True, вернёт параметры этого оценщика и содержащихся в нём подобъектов, являющихся оценщиками.
- Возвращает:
-
- paramsdict
-
Имена параметров, сопоставленные со значениями.
- propertyinfrequent_categories_
-
Редкие категории для каждого признака.
- set_output(*, transform=None)[source]
-
Установка контейнера вывода.
См. Введение в API set_output для примера использования API.
- Параметры:
-
- transform{“default”, “pandas”, “polars”}, по умолчанию None
-
Настройка вывода для
transformиfit_transform.-
"default": Формат вывода по умолчанию для преобразователя -
"pandas": Вывод DataFrame -
"polars": Вывод Polars -
None: Настройка преобразования не изменится
Добавлена в версии 1.4:
"polars"опция была добавлена. -
- Возвращает:
-
- selfэкземпляр оценщика
-
Экземпляр оценщика.
- set_params(**params)[source]
-
Установить параметры этого оценщика.
Метод работает как с простыми оценщиками, так и со вложенными объектами (например, с
Pipeline). У последних параметры имеют вид<component>__<parameter>, чтобы можно было обновлять каждый компонент вложенного объекта.- Параметры:
-
- **paramsdict
-
Параметры оценщика.
- Возвращает:
-
- selfэкземпляр оценщика
-
Экземпляр оценщика.
- transform(X)[source]
-
Преобразование X с помощью кодирования целевой переменной.
Примечание
fit(X, y).transform(X)не равноfit_transform(X, y), так как вfit_transformиспользуется схема перекрёстного обучения для кодирования. Подробнее см. Руководство пользователя.- Параметры:
-
- Xarray-like of shape (n_samples, n_features)
-
Данные для определения категорий каждого признака.
- Возвращаемые значения:
-
- X_transndarray of shape (n_samples, n_features) или (n_samples, (n_features * n_classes))
-
Преобразованный ввод.
Примеры из галереи
© 2007–2025 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.6/modules/generated/sklearn.preprocessing.TargetEncoder.html