OrdinalEncoder#
-
класс sklearn.preprocessing.OrdinalEncoder(*, categories='auto', dtype=
'numpy.float64'> , handle_unknown='error', unknown_value=None, encoded_missing_value=nan, min_frequency=None, max_categories=None)[источник]# Кодирует категориальные признаки как целочисленный массив.
Входными данными для этого преобразователя должен быть массивоподобный объект целых чисел или строк, обозначающих значения категориальных (дискретных) признаков. Признаки преобразуются в порядковые целые числа. В результате получается один столбец целых чисел (от 0 до n_categories - 1) для каждого признака.
Подробнее в Руководство пользователя. Для сравнения различных кодировщиков обратитесь к: Сравнение Target Encoder с другими кодировщиками.
Добавлено в версии 0.20.
- Параметры:
- категории'auto' или список array-like, по умолчанию='auto'
Категории (уникальные значения) для каждого признака:
'auto' : Определять категории автоматически на основе обучающих данных.
list :
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, default=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_list of ndarrayРедкие категории для каждого признака.
Смотрите также
OneHotEncoderВыполняет one-hot кодирование категориальных признаков. Это кодирование подходит для категориальных переменных с низкой и средней кардинальностью, как в контролируемых, так и в неконтролируемых настройках.
TargetEncoderКодирует категориальные признаки с использованием контролируемого сигнала в конвейере классификации или регрессии. Это кодирование обычно подходит для категориальных переменных с высокой кардинальностью.
LabelEncoderКодирует целевые метки значениями от 0 до
n_classes-1.
Примеры
Для набора данных с двумя признаками мы позволяем кодировщику найти уникальные значения для каждого признака и преобразовать данные в порядковое кодирование.
>>> 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)[источник]#
Обучите OrdinalEncoder на X.
- Параметры:
- Xarray-like формы (n_samples, n_features)
Данные для определения категорий каждого признака.
- yNone
Игнорируется. Этот параметр существует только для совместимости с
Pipeline.
- Возвращает:
- selfobject
Обученный энкодер.
- fit_transform(X, y=None, **fit_params)[источник]#
Обучение на данных с последующим преобразованием.
Обучает преобразователь на
Xиyс необязательными параметрамиfit_paramsи возвращает преобразованную версиюX.- Параметры:
- Xarray-like формы (n_samples, n_features)
Входные выборки.
- yarray-like формы (n_samples,) или (n_samples, n_outputs), default=None
Целевые значения (None для неконтролируемых преобразований).
- **fit_paramsdict
Дополнительные параметры обучения. Передавайте только если оценщик принимает дополнительные параметры в своем
fitметод.
- Возвращает:
- X_newndarray массив формы (n_samples, n_features_new)
Преобразованный массив.
- get_feature_names_out(input_features=None)[источник]#
Получить имена выходных признаков для преобразования.
- Параметры:
- 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_iffeature_names_in_определен.
- Возвращает:
- feature_names_outndarray из str объектов
То же, что и входные признаки.
- 6332()[источник]#
Получить маршрутизацию метаданных этого объекта.
Пожалуйста, проверьте Руководство пользователя о том, как работает механизм маршрутизации.
- Возвращает:
- маршрутизацияMetadataRequest
A
MetadataRequestИнкапсуляция информации о маршрутизации.
- get_params(глубокий=True)[источник]#
Получить параметры для этого оценщика.
- Параметры:
- глубокийbool, по умолчанию=True
Если True, вернет параметры для этого оценщика и вложенных подобъектов, которые являются оценщиками.
- Возвращает:
- paramsdict
Имена параметров, сопоставленные с их значениями.
- inverse_transform(X)[источник]#
Преобразовать данные обратно в исходное представление.
- Параметры:
- Xмассивоподобный объект формы (n_samples, n_encoded_features)
Преобразованные данные.
- Возвращает:
- X_originalndarray формы (n_samples, n_features)
Обратно преобразованный массив.
- set_output(*, преобразовать=None)[источник]#
Установить контейнер вывода.
См. Введение API set_output для примера использования API.
- Параметры:
- преобразовать{“default”, “pandas”, “polars”}, по умолчанию=None
Настройка вывода
transformиfit_transform."default": Формат вывода трансформера по умолчанию"pandas": DataFrame вывод"polars": Вывод PolarsNone: Конфигурация преобразования не изменена
Добавлено в версии 1.4:
"polars"опция была добавлена.
- Возвращает:
- selfэкземпляр estimator
Экземпляр оценщика.
- set_params(**params)[источник]#
Установить параметры этого оценщика.
Метод работает как на простых оценщиках, так и на вложенных объектах (таких как
Pipeline). Последние имеют параметры видачтобы можно было обновить каждый компонент вложенного объекта.__ - Параметры:
- **paramsdict
Параметры оценщика.
- Возвращает:
- selfэкземпляр estimator
Экземпляр оценщика.
- преобразовать(X)[источник]#
Преобразовать X в порядковые коды.
- Параметры:
- Xarray-like формы (n_samples, n_features)
Данные для кодирования.
- Возвращает:
- X_outndarray формы (n_samples, n_features)
Преобразованный вход.
Примеры галереи#
Поддержка категориальных признаков в градиентном бустинге
Графики частичной зависимости и индивидуального условного ожидания
Важность перестановок против важности признаков случайного леса (MDI)