Spec-Zone.ru › scikit-learn

OrdinalEncoder

classsklearn.preprocessing.OrdinalEncoder(*, categories='auto', dtype=<class 'numpy.float64'>, handle_unknown='error', unknown_value=None, encoded_missing_value=nan, min_frequency=None, max_categories=None)[source]

Кодирование категориальных признаков как целочисленного массива.

Вход в этот преобразователь должен быть похожим на массив целых чисел или строк, обозначающих значения, принимаемые категориальными (дискретными) признаками. Признаки преобразуются в порядковые целые числа. В результате получается один столбец целых чисел (от 0 до n_categories - 1) на признак.

Подробнее см. в Руководстве пользователя. Для сравнения различных кодировщиков см.: Сравнение кодировщиков Target Encoder с другими кодировщиками.

Добавлен в версии 0.20.

Параметры:
categories‘auto’ или список массивов, по умолчанию =‘auto’

Категории (уникальные значения) на признак:

  • ‘auto’ : Определяет категории автоматически из обучающих данных.
  • список : categories[i] содержит ожидаемые категории в i-ом столбце. Переданные категории не должны смешивать строки и числовые значения, и должны быть отсортированы в случае числовых значений.

Используемые категории можно найти в атрибуте categories_.

dtypeчисловой тип, по умолчанию=np.float64

Желаемый тип данных выходных данных.

handle_unknown{‘error’, ‘use_encoded_value’}, по умолчанию=’error’

При значении ‘error’ при преобразовании будет поднята ошибка, если присутствует неизвестный категориальный признак. При значении ‘use_encoded_value’ закодированное значение неизвестных категорий будет установлено в значение, указанное для параметра unknown_value. В inverse_transform неизвестная категория будет обозначена как None.

Добавлен в версии 0.24.

unknown_valueint или np.nan, по умолчанию=None

При значении параметра handle_unknown, равном ‘use_encoded_value’, этот параметр необходим и установит закодированное значение неизвестных категорий. Он должен отличаться от значений, используемых для кодирования любой из категорий в fit. Если установлено значение np.nan, то параметр dtype должен иметь тип данных float.

Добавлен в версии 0.24.

encoded_missing_valueint или np.nan, по умолчанию=np.nan

Закодированное значение пропущенных категорий. Если установлено np.nan, то параметр dtype должен иметь тип данных float.

Добавлен в версии 1.1.

min_frequencyint или float, по умолчанию=None

Указывает минимальную частоту, ниже которой категория будет считаться редкой.

  • Если int, категории с меньшей кратностью будут считаться редкими.
  • Если float, категории с меньшей кратностью, чем min_frequency * n_samples будут считаться редкими.

Добавлен в версии 1.3: Подробнее см. в Руководстве пользователя.

max_categoriesint, по умолчанию=None

Указывает верхнюю границу числа выходных категорий для каждого входного признака при рассмотрении редких категорий. Если существуют редкие категории, max_categories включает категорию, представляющую редкие категории, наряду с частыми категориями. Если None, нет ограничений на количество выходных признаков.

max_categories не учитывают пропущенные или неизвестные категории. Установка unknown_value или encoded_missing_value в целое число увеличит количество уникальных целочисленных кодов на единицу каждое. Это может привести к максимальному количеству целочисленных кодов max_categories + 2.

Добавлен в версии 1.3: Подробнее см. в Руководстве пользователя.

Атрибуты:
categories_список массивов

Категории каждого признака, определенные во время fit (в порядке признаков в X и соответствующие результатам transform). Это не включает категории, которые не были замечены во время fit.

n_features_in_int

Количество признаков, увиденных во время fit.

Добавлен в версии 1.0.

feature_names_in_ndarray формы (n_features_in_,)

Названия признаков, увиденные во время fit. Определены только тогда, когда X имеет имена признаков, которые все строки.

Добавлен в версии 1.0.

infrequent_categories_список ndarray

Редкие категории для каждого признака.

См. также

OneHotEncoder

Выполняет one-hot кодирование категориальных признаков. Это кодирование подходит для категориальных переменных с низкой и средней кратностью, как в контролируемых, так и в неконтролируемых задачах.

TargetEncoder

Кодирует категориальные признаки, используя контролируемый сигнал в задаче классификации или регрессии. Это кодирование обычно подходит для категориальных переменных с высокой кратностью.

LabelEncoder

Кодирует целевые метки значениями от 0 до n_classes-1.

Примечания

При большом количестве значений nan, определение категорий становится медленным с версиями Python до 3.10. Обработка значений nan была улучшена начиная с Python 3.10 (см. bpo-43475).

Примеры

Дано множество данных с двумя признаками, мы позволим кодировщику найти уникальные значения для каждого признака и преобразовать данные в порядковое кодирование.

>>> from sklearn.preprocessing import OrdinalEncoder
>>> enc = OrdinalEncoder()
>>> X = [['Male', 1], ['Female', 3], ['Female', 2]]
>>> enc.fit(X)
OrdinalEncoder()
>>> enc.categories_
[array(['Female', 'Male'], dtype=object), array([1, 2, 3], dtype=object)]
>>> enc.transform([['Female', 3], ['Male', 1]])
array([[0., 2.],
       [1., 0.]])
>>> enc.inverse_transform([[1, 0], [0, 1]])
array([['Male', 1],
       ['Female', 2]], dtype=object)

По умолчанию, OrdinalEncoder терпимо относится к пропущенным значениям, распространяя их.

>>> import numpy as np
>>> X = [['Male', 1], ['Female', 3], ['Female', np.nan]]
>>> enc.fit_transform(X)
array([[ 1.,  0.],
       [ 0.,  1.],
       [ 0., nan]])

Вы можете использовать параметр encoded_missing_value для кодирования пропущенных значений.

>>> enc.set_params(encoded_missing_value=-1).fit_transform(X)
array([[ 1.,  0.],
       [ 0.,  1.],
       [ 0., -1.]])

Редкие категории включаются установкой max_categories или min_frequency. В следующем примере «a» и «d» считаются редкими и объединены в одну категорию, «b» и «c» — свои категории, неизвестные значения закодированы как 3, а пропущенные значения — как 4.

>>> X_train = np.array(
...     [["a"] * 5 + ["b"] * 20 + ["c"] * 10 + ["d"] * 3 + [np.nan]],
...     dtype=object).T
>>> enc = OrdinalEncoder(
...     handle_unknown="use_encoded_value", unknown_value=3,
...     max_categories=3, encoded_missing_value=4)
>>> _ = enc.fit(X_train)
>>> X_test = np.array([["a"], ["b"], ["c"], ["d"], ["e"], [np.nan]], dtype=object)
>>> enc.transform(X_test)
array([[2.],
       [0.],
       [1.],
       [2.],
       [3.],
       [4.]])
fit(X, y=None)[source]

Обучить OrdinalEncoder на X.

Параметры:
Xarray-like формы (n_samples, n_features)

Данные для определения категорий каждого признака.

yNone

Игнорируется. Этот параметр существует только для совместимости с Pipeline.

Возвращаемое значение:
selfобъект

Обученный кодировщик.

END_OF_DOCUMENT_MARKER
fit_transform(X, y=None, **fit_params)[source]

Подгонка к данным, а затем их преобразование.

Подгоняет преобразователь к X и y с необязательными параметрами fit_params и возвращает преобразованную версию X.

Параметры:
Xодномерный массив данных формы (n_samples, n_features)

Входные образцы.

yодномерный массив данных формы (n_samples,) или (n_samples, n_outputs), по умолчанию=None

Целевые значения (None для неконтролируемых преобразований).

**fit_paramsсловарь

Дополнительные параметры подгонки.

Возвращает:
X_newмассив ndarray формы (n_samples, n_features_new)

Преобразованный массив.

get_feature_names_out(input_features=None)[source]

Получить имена выходных признаков для преобразования.

Параметры:
input_featuresмассив-подобный тип 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_outмассив ndarray из строк

То же, что и входные признаки.

get_metadata_routing()[source]

Получить метаданные маршрутизации этого объекта.

Пожалуйста, обратитесь к Руководству пользователя по работе механизма маршрутизации.

Возвращает:
routingMetadataRequest

MetadataRequest, содержащий информацию о маршрутизации.

get_params(deep=True)[source]

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

Параметры:
deepbool, по умолчанию=True

Если True, возвращает параметры этого оценщика и вложенных под-объектов, являющихся оценщиками.

Возвращает:
paramsсловарь

Имена параметров, сопоставленные с их значениями.

propertyinfrequent_categories_

Редкие категории для каждого признака.

inverse_transform(X)[source]

Преобразовать данные обратно в исходное представление.

Параметры:
Xмассив-подобный тип данных формы (n_samples, n_encoded_features)

Преобразованные данные.

Возвращает:
X_trмассив ndarray формы (n_samples, n_features)

Обратно преобразованный массив.

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>, чтобы можно было обновить каждый компонент вложенного объекта.

Параметры:
**paramsсловарь

Параметры оценщика.

Возвращает:
selfэкземпляр оценщика

Экземпляр оценщика.

transform(X)[source]

Преобразовать X в порядковые коды.

Параметры:
Xмассив-подобный тип данных формы (n_samples, n_features)

Данные для кодирования.

Возвращает:
X_outмассив ndarray формы (n_samples, n_features)

Преобразованный ввод.

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

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

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

Поддержка категориальных признаков в Gradient Boosting

Объединение прогнозистов с помощью стекинга

Регрессия Пуассона и ненормальная потеря

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

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

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

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

© 2007–2025 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.6/modules/generated/sklearn.preprocessing.OrdinalEncoder.html

Spec-Zone.ru

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