Вопрос или проблема
Я работаю с финансовыми данными, где у меня есть признак (столбец) с 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: Разделение переменной
Лучший подход заключается в разделении первоначальной колонки на две разные переменные:
-
Непрерывная переменная (F_continuous):
- Содержит все непрерывные значения как есть.
- Для категориальных значений устанавливается определённый стандарт, например, 0.
-
Категориальные переменные (использование 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 кодирования — это оптимальный метод, позволяющий сохранить точность и интерпретируемость данных в вашем классификационном модели.