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объект
-
Обученный кодировщик.
- 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)
-
Преобразованный ввод.
Примеры галереи
© 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