0Pricing
Data Science Academy · Урок

Кодирование категориальных столбцов

Основы one-hot-кодирования и кодирования метками

«Кодирование категориальных столбцов» — бесплатный урок Data Science Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Data Science Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Data Science Academy содержит 4 уроков всего.

Почему кодирование важно

Большинство моделей понимают только числа, хотя Ваши данные полны слов вроде «красный» или «синий». Кодирование превращает эти метки в числа, на которых модель может учиться. 🔢

Номинальные и порядковые категории

У некоторых категорий есть порядок: маленький, средний, большой. У других, например у названий городов, порядка нет. Именно этот порядок определяет, какое кодирование будет корректным.

Кодирование меток

Кодирование меток присваивает каждой категории целое число: красный становится 0, синий — 1. Это просто, но создаёт порядок, которого в действительности может не быть.

from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()
codes = le.fit_transform(df['color'])

Ловушка вымышленного порядка

Если синий обозначен числом 1, а зелёный — 2, модель может решить, что зелёный больше синего. Для номинальных данных такое ложное ранжирование может снизить точность.

Унитарное кодирование

Однократное кодирование создаёт для каждой категории отдельный столбец со значением 1 или 0. Никакого искусственного порядка — только понятные признаки «да» или «нет».

get_dummies в pandas

Самый быстрый способ выполнить однократное кодирование в pandas — использовать get_dummies. Передайте ему столбец, и он развернёт каждую категорию в отдельный столбец со значениями 0/1.

dummies = pd.get_dummies(df['color'])

Избегайте ловушки фиктивных переменных

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

pd.get_dummies(df['color'], drop_first=True)

OneHotEncoder для конвейеров

Для моделей предпочтительнее использовать OneHotEncoder из scikit-learn. Он запоминает изученные категории, поэтому обучающие и тестовые данные остаются полностью согласованными.

from sklearn.preprocessing import OneHotEncoder
enc = OneHotEncoder(handle_unknown='ignore')

Задавайте порядок осознанно

Если порядок действительно важен, задайте соответствие самостоятельно, чтобы значения от меньшего к большему преобразовывались в диапазон от 1 до 3. Порядковое соответствие сохраняет исходный смысл.

order = {'small': 1, 'medium': 2, 'large': 3}
df['size_num'] = df['size'].map(order)

Остерегайтесь высокой кардинальности

Однократное кодирование столбца с тысячами значений создаёт тысячи столбцов. При высокой кардинальности сначала объедините редкие значения.

Обрабатывайте неизвестные категории

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

Быстрая проверка

Ваш столбец с цветом не имеет естественного порядка. Какое кодирование не создаёт ложного ранжирования?

Повторение: кодирование

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

Часто задаваемые вопросы

Урок «Кодирование категориальных столбцов» бесплатный?

Да — полный текст урока «Кодирование категориальных столбцов» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Data Science Academy, подпишись на CoddyKit PRO. Курс Data Science Academy содержит 4 уроков всего.

Чему я научусь в уроке «Кодирование категориальных столбцов»?

Основы one-hot-кодирования и кодирования метками Ты практикуешь Data Science Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Data Science Academy?

Предыдущий опыт не требуется. Data Science Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.

Сколько времени занимает урок «Кодирование категориальных столбцов»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Data Science Academy?

Да. Каждый урок Data Science Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Преобразование чисел в категории
  2. Кодирование категориальных столбцов
  3. Масштабирование и нормализация чисел
  4. Создание признаков из дат и текста
← Назад к Data Science Academy