Привет,

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

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

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

Sklearn LabelEncoder()

Конечно, вы можете сопоставить все существующие значения для каждой категориальной функции и использовать старый добрый метод IF THEN ELSE, чтобы преобразовать ваши данные в числовые. Но есть более простой способ сделать это в Python.

В пакете Sklearn.preprocessing есть множество функций, которые помогут вам подготовить данные. Один из них делает именно то, что мы хотим. LabelEncoder() — это одна из функций, которая может сделать всю эту тяжелую работу за вас.

Как видите, я разбираю все функции, которые хотел преобразовать в числовые, и зацикливаюсь на функции. Вы все еще можете сделать это индивидуально, если вам так хочется. Вот как сейчас выглядит DataFrame:

Поскольку все мои функции теперь являются числовыми, день недели, понедельник, теперь представлен как номер ноль, а вторник — как номер три.

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

В этом случае было бы лучше обманывать эти функции.

Панды get_dummies()

В качестве альтернативы показанному ранее мошеннику пакет pandas имеет действительно хорошую функцию для достижения того же результата. Вместо того, чтобы указывать уникальное значение для каждого значения в функции dayday, вы можете использовать что-то вроде этого:

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

Перед тем, как ты уйдешь

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

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

Родриго Дебони Дуткоски.