ПРЕОБРАЗОВАНИЕ КАТЕГОРИАЛЬНЫХ ДАННЫХ: ПРАКТИЧЕСКОЕ РУКОВОДСТВО НА ПРИМЕРЕ ДАТАСЕТА “ТИТАНИК”

Артыков Ильнур Кимсанович1, Гриневский Денис Станиславович1
1Нефтекамский филиал Уфимского университета науки и технологий, студент 4 курса, Факультет экономико-математический

Аннотация
Статья посвящена критически важному этапу предобработки данных в машинном обучении — кодированию категориальных признаков. На практическом примере датасета «Титаник» подробно разбираются два фундаментальных метода: бинарное кодирование и One-Hot Encoding. В работе поэтапно описано преобразование таких признаков, как «Пол», «Класс» и «Порт посадки», в числовой формат, пригодный для работы алгоритмов. Объясняется, почему выбор правильного метода кодирования напрямую влияет на качество и интерпретируемость будущей модели. Материал служит практическим руководством для начинающих специалистов в области анализа данных и машинного обучения.

Ключевые слова: , , , , , , , , ,


Рубрика: 05.00.00 ТЕХНИЧЕСКИЕ НАУКИ

Библиографическая ссылка на статью:
Артыков И.К., Гриневский Д.С. Преобразование категориальных данных: практическое руководство на примере датасета “Титаник” // Современные научные исследования и инновации. 2025. № 11 [Электронный ресурс]. URL: https://web.snauka.ru/issues/2025/11/103920 (дата обращения: 09.04.2026).

Любой проект в области анализа данных или машинного обучения начинается с этапа предобработки данных. Этот этап, часто называемый «feature engineering» (создание признаков), является критически важным для построения качественных моделей. Одна из самых распространенных задач на этом этапе — работа с категориальными признаками. Такие признаки описывают принадлежность объекта к определенной группе или классу: например, пол, страна проживания, тип товара, образовательная степень.

Алгоритмы машинного обучения — будь то линейная регрессия, решающее дерево или нейронная сеть — оперируют числами. Они не могут напрямую интерпретировать текстологические значения вроде «М» или «Саутгемптон». Наша задача — найти способ перевести эту категориальную информацию в числовую, не исказив при этом ее смысл. В этой статье мы решим практическую задачу по кодированию трех признаков из датасета «Титаник» и объясним теоретическую базу, стоящую за этим процессом.

Категориальные признаки делятся на два основных типа:

Номинальные (Nominal): Категории не имеют внутреннего порядка. Например, «Порт посадки» (Саутгемптон, Шербур, Куинстаун). Нет такого понятия, что «Шербур > Саутгемптон».

Порядковые (Ordinal): Категории имеют четкий, естественный порядок. Например, «Класс» (1-й, 2-й, 3-й) или «Уровень образования» (школа, бакалавр, магистр). Здесь 1-й класс объективно «выше» 3-го по уровню сервиса и комфорта.

Неправильное кодирование может ввести алгоритм в заблуждение. Если мы просто заменим порты посадки числами (Саутгемптон=1, Шербур=2, Куинстаун=3), модель может ошибочно решить, что между ними существует количественное отношение (например, что Куинстаун «в три раза больше» Саутгемптона), что бессмысленно.

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

1.1. Бинарное кодирование (Label Encoding для бинарных признаков)

Этот метод применяется к признакам, имеющим ровно две категории.

Принцип: Каждой категории присваивается число: 0 или 1.

Область применения: Идеально подходит для бинарных признаков, таких как «Пол» (М/Ж), «Есть ли домашнее животное?» (Да/Нет), «Прошел ли клиент целевое действие?» (Да/Нет).

Пример из задания: Для признака «Пол» мы применили простое правило:

‘М’ → 1

‘Ж’ → 0

Такой подход экономно использует пространство признаков (не создает новых столбцов) и однозначно разделяет объекты на две группы.

1.2. One-Hot Encoding (OHE) — Кодирование в виде «горячего» вектора

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

Принцип: Для каждой уникальной категории внутри признака создается новый бинарный (0/1) столбец. Для каждого объекта 1 ставится в столбце, соответствующем его категории, а во всех остальных новых столбцах — 0.

Область применения: Номинальные признаки с тремя и более категориями, такие как «Порт посадки» или к примеру «Страна», «Марка автомобиля».

Пример из задания:

Пример представлен на рисунке 1.

Рисунок 1

Исходный признак «Класс» имеет 3 категории: 1, 2, 3. Хотя он является порядковым, OHE также применим, особенно если мы не хотим, чтобы модель предполагала строгую линейную зависимость (иногда разница между 1-м и 2-м классом может быть значительнее, чем между 2-м и 3-м).

Процесс: Мы создали три новых признака: Класс_1, Класс_2, Класс_3.

Для пассажира 1-го класса: Класс_1=1, Класс_2=0, Класс_3=0.

Для пассажира 3-го класса: Класс_1=0, Класс_2=0, Класс_3=1.

Исходный признак «Порт посадки» имеет 3 категории: Саутгемптон, Шербур, Куинстаун.

Процесс: Мы создали три новых признака: Порт_Саутгемптон, Порт_Шербур, Порт_Куинстаун.

Для пассажира, севшего в Шербуре: Порт_Саутгемптон=0, Порт_Шербур=1, Порт_Куинстаун=0.

Важное замечание: После применения OHE исходный категориальный столбец удаляется из набора данных, чтобы избежать избыточности.

2. Постановка задачи

Нам был предоставлен датасет с информацией о 14 пассажирах Титаника (рисунок 1). Содержащиеся в нем категориальные признаки («Пол», «Класс», «Порт посадки») непригодны для непосредственного анализа алгоритмами машинного обучения.

Цель: Преобразовать эти три признака в числовой формат, руководствуясь следующими правилами:

Пол: Закодировать бинарно (‘М’ → 1, ‘Ж’ → 0).

Класс: Применить One-Hot Encoding, создав три dummy-переменных: Класс_1, Класс_2, Класс_3.

Порт посадки: Применить One-Hot Encoding, создав три dummy-переменных: Порт_Саутгемптон, Порт_Шербур, Порт_Куинстаун.

Результатом должна стать рисунок 2, где для каждого пассажира указаны его имя и новые, закодированные версии указанных признаков.

3. Описание решения

Решение задачи выполнялось в несколько последовательных шагов для каждого пассажира из исходной Таблицы 1.

Шаг 1: Кодирование признака «Пол».

Для каждого пассажира мы смотрели на значение в столбце «Пол» и заменяли его на 1 (если ‘М’) или 0 (если ‘Ж’). Например:

Джон Линган (№1): ‘М’ → 1.

Аврора Аделия Ландергрен (№2): ‘Ж’ → 0.

Шаг 2: One-Hot Encoding для признака «Класс».

Для каждого пассажира мы анализировали его класс и проставляли 1 в соответствующем столбце, и 0 — в двух других.

Джон Линган (№1): Класс = 1 → Класс_1=0, Класс_2=1, Класс_3=0.

Аврора Аделия Ландергрен (№2): Класс = 2 → Класс_1=0, Класс_2=1, Класс_3=0.

Графиня Ротес(№4): Класс = 3 → Класс_1=1, Класс_2=0, Класс_3=0.

Шаг 3: One-Hot Encoding для признака «Порт посадки».

Аналогично предыдущему шагу, мы создали три бинарных столбца для портов.

Графиня Ротес(№4): Порт = Саутгемптон → Порт_Саутгемптон=1, Порт_Шербур=0, Порт_Куинстаун=0.

Альбер Малле (№3): Порт = Шербур → Порт_Саутгемптон=0, Порт_Шербур=1, Порт_Куинстаун=0.

Джон Линган (№1): Порт = Куинстаун → Порт_Саутгемптон=0, Порт_Шербур=0, Порт_Куинстаун=1.

Результат: В результате ручного применения этих правил для 4 пассажиров была заполнена Таблица 2. Её фрагмент представлен ниже для наглядности (рисунок 2).

Рисунок 2

Выводы

Проделанная работа наглядно демонстрирует важность и необходимость этапа предобработки категориальных данных. Путем применения всего двух методов кодирования — бинарного и One-Hot Encoding — мы превратили текстологическую информацию, непонятную для машины, в строгий числовой формат.

Корректность представления: One-Hot Encoding позволил избежать навязывания ложного порядкового соотношения между номинальными признаками (порты) и нивелировать возможный нелинейный эффект порядкового признака (класс).

Готовность к анализу: Полученная в Таблице 2 матрица признаков является чистой и готовой к использованию. Её можно напрямую подавать на вход алгоритмам машинного обучения для решения задач классификации (например, предсказание выживания) или регрессии.

Универсальность методов: Рассмотренные подходы являются стандартными и широко применяются в индустрии. Понимание их принципов — фундаментальный навык для любого специалиста по data science.

В реальных проектах этот процесс автоматизируется с помощью библиотек, таких как Pandas (pd.get_dummies()) или Scikit-learn (OneHotEncoder), что позволяет обрабатывать тысячи строк за доли секунды. Однако ручное выполнение, как в этом задании, закрепляет понимание сути преобразования, что неизменно важнее механического владения инструментом.



Все статьи автора «Артыков Ильнур Кимсанович»


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