Как обрабатывать один столбец с непрерывными и категориальными данными для модели машинного обучения

Вопрос или проблема

Я работаю с финансовыми данными, где у меня есть признак (столбец) с 90% значений в диапазоне от 0 до 1000 (непрерывные) и 10% значений как -1, -2 и -9. (значения по умолчанию)

Определение значений по умолчанию:
-1: данные недоступны
-2: частичные данные доступны
-9: данные доступны, но они слишком стары

Мой вопрос – поскольку значения по умолчанию являются категориальными по своей природе, как мне следует обрабатывать 10% случаев по умолчанию, чтобы отделить их от 90% непрерывных данных? Следует ли мне устанавливать их значения, такие как “-9999”, “-999”, “-99” или есть какие-то другие предложения?

Я хочу использовать эти данные для обучения классификационной модели.

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

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

Например, если данные:

ID Признак
1 100
2 250
3 -1
4 -2
5 -9
6 75
7 -2
8 0
9 -1
10 125

Это можно закодировать как:

ID F_непрерывный F_-1 F_-2 F_-9
1 100 0 0 0
2 250 0 0 0
3 0 1 0 0
4 0 0 1 0
5 0 0 0 1
6 75 0 0 0
7 0 0 1 0
8 0 0 0 0
9 0 1 0 0
10 125 0 0 0

Ответ или решение

Обработка единственной колонки с непрерывными и категориальными данными для модели машинного обучения может быть сложной задачей, особенно в финансовой сфере, где точность и интерпретируемость данных имеют решающее значение. В вашем случае вы имеете дело с колонкой, где 90% значений являются непрерывными числами в диапазоне от 0 до 1000, а 10% — это специальные значения (-1, -2, -9), которые представляют собой категориальные данные, указывая на различный уровень доступности информации.

Шаг 1: Понимание данных

Непрерывные значения (90%):
Это данные, которые можно использовать в стандартных алгоритмах машинного обучения для предсказания, и которые имеют числовую природу.

Категориальные значения (10%):

  • -1: данные недоступны
  • -2: частичные данные доступны
  • -9: данные устарели

Шаг 2: Установка цели обработки

Для эффективного использования ваших данных в модели классификации необходимо предпринять следующие шаги:

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

Шаг 3: Рекомендуемая обработка данных

Способ 1: Разделение переменной

Лучший подход заключается в разделении первоначальной колонки на две разные переменные:

  1. Непрерывная переменная (F_continuous):

    • Содержит все непрерывные значения как есть.
    • Для категориальных значений устанавливается определённый стандарт, например, 0.
  2. Категориальные переменные (использование one-hot кодирования):

    • Создайте отдельные бинарные (действие / отсутствие) признаки для каждого из категориальных значений.
    • Примерный вид:
      • F_-1: 1, если значение -1, иначе 0.
      • F_-2: 1, если значение -2, иначе 0.
      • F_-9: 1, если значение -9, иначе 0.

Такое разделение позволит каждой переменной просто и эффективно представлять разные аспекты данных без искажения информации.

Пример реализации:

Исходящие данные:

ID Feature
1 100
2 250
3 -1
4 -2
5 -9
6 75
7 -2
8 0
9 -1
10 125

Результирующие данные после обработки:

ID F_continuous F_-1 F_-2 F_-9
1 100 0 0 0
2 250 0 0 0
3 0 1 0 0
4 0 0 1 0
5 0 0 0 1
6 75 0 0 0
7 0 0 1 0
8 0 0 0 0
9 0 1 0 0
10 125 0 0 0

Шаг 4: Устранение значения по умолчанию

Устанавливать значения, такие как "-9999", "-999" или "-99", не рекомендуется, так как это может создать путаницу и возможно нарушить логику модельного предсказания. Лучше использовать одно стандартное значение, такое как 0, для непрерывной переменной, что четко указывает на отсутствие данных. К тому же, при использовании one-hot кодирования всегда можно легко интерпретировать отсутствующие данные.

Заключение

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

Оцените материал
Добавить комментарий

Капча загружается...