Label Encoding: обработайте неизвестные категории в test
При подготовке категориального признака тестовая выборка содержит значения, которых не было при обучении кодировщика. Реализуйте solve(payload) с форматом результата и обработкой новых категорий из условия. Подготовку табличных моделей, inference pipeline и deployment отработайте в платном курсе ML Engineer / Data Scientist: табличные модели в продакшн — откройте программу.
Безопасное Label Encoding с пометкой новых категорий
Вам дан DataFrame с категориальным признаком и отдельный DataFrame для теста, где в тестовой выборке могут встречаться категории, отсутствующие в обучающей.
Постановка
- Обучить LabelEncoder на train данных.
- В test заменить неизвестные категории на специальный код -1.
- Вернуть два столбца:
train_encoded: Series с кодированием train (числа от 0 до N-1).test_encoded: Series с кодированием test, где неизвестные категории имеют значение -1.
Таким образом, кодирование в test будет безопасным, без ошибок при трансформации новых категорий.
Формат входных данных:
payload["df_train"]— DataFrame с train.payload["df_test"]— DataFrame с test.payload["cat_col"]— название категориального столбца.
Формат результата:
- Словарь с ключами
train_encodedиtest_encoded, значениями — pandas.Series с индексами, соответствующими df_train и df_test.
Пример
import pandas as pd
train = pd.DataFrame({'city': ['London', 'Paris', 'Berlin', 'London']})
test = pd.DataFrame({'city': ['Paris', 'Madrid', 'London']})
col = 'city'
# train_encoded будет [1, 2, 0, 1]
# test_encoded будет [2, -1, 1] потому что 'Madrid' в test новая категория
Без регистрации. Гостевая проверка не сохраняет прогресс. Для сохранения перейдите к уроку.
Отправьте решение, чтобы увидеть результаты тестов.
Связанные задачи
- SHAP-значения: статистики распределения по признакам
- Заполнение пропусков медианой: найдите утечку train и val
- Permutation importance: на какой выборке оценивать признаки
- Препроцессор обучен на train: выберите метод для test
- Early stopping в градиентном бустинге: задача
- crossvalscore: какой параметр выбирает метрику
