Предварительная обработка данных является первым и неотъемлемым этапом машинного обучения, поскольку качество данных и полезная информация, которая может быть получена из них, напрямую влияют на способность нашей модели к обучению, поэтому чрезвычайно важно, чтобы мы предварительно обработали наши данные, прежде чем вводить их в нашу модель. Процесс подготовки данных может отнимать большую часть времени специалиста по работе с данными. Процесс предобработки более-менее стандартизирован, то есть предобработка данных в финансовой компании по своим этапам схожа с предобработкой данных в телекоммуникационной компании или любой другой, единственное различие в самих данных. Без предварительной обработки данных банковский специалист не сможет построить модель.
Основные задачи на этапе предобработки данных:
– Обработка нулевых значений;
– Нормализация данных;
– Борьба с выбросами;
– Обработка категориальных признаков;
– Проблема мультиколлинеарности.
Обработка нулевых значений .
1) Самый простой способ решить проблему с пропущенными значениями в выборке — игнорировать объекты, в которых есть пропуски. Этот метод применим только тогда, когда небольшая часть данных в выборке имеет пропущенные значения. Преимущество такого подхода — простота и невозможность повредить данные, заменив пробелы. Если размер выборки достаточно велик, метод может работать хорошо. Альтернативный вариант в случае пробелов в ограниченном количестве характеристик — удалить эти характеристики из выборки.
2) Другой более простой метод — заменить пропуски специальным предопределенным значением, например 0 или -9999. Такой подход позволяет не уменьшать размер выборки, но может вводить значения, сильно отличающиеся от реальных.
3) Еще один простой способ восстановить пропущенные данные — заменить их на моду или среднее значением в разрезе определенной характеристики. В случае категориального типа данных все пропуски заменяются наиболее часто встречающимся значением, в случае количественной типа данных — средним значением признака. Этот метод, в отличие от двух предыдущих, учитывает имеющиеся данные и их статистические значения. Преимущество подхода — простота, однако на практике возникает проблема с определением, является ли конкретная характеристика категориальной или количественной, особенно с большим их количеством.
4) Исходя из предположения, что близкие объекты по значениям среди заполненных признаков близки по признакам, значение которых может быть пропущено (гипотеза компактности), для восстановления пропусков в данных применяется метод k ближайших соседей (kNN). Реализация аналогична использованию классического метода k ближайших соседей, за исключением того, что для каждого объекта прогнозируется сразу несколько недостающих значений.
5) Замена с помощью метода k средних (k-Means). Подобно методу k-ближайшего соседа, предполагается, что объекты, близкие по некоторым признакам, должны быть близки и по другим признакам. Однако, в отличие от метода kNN, он ищет не ближайших соседей для каждого объекта с пропущенными значениями, а скорее информацию о центре кластера, в который попал определенный объект с промежутками.
6) Также можно заменить отсутствующие значения в определенном признаке датасета, прогнозируя его исходя из других признаков датасета, используя один из алгоритмов машинного обучения. Поскольку в признаках, используемых для обучения, отсутствуют значения, необходимо изначально заменить их одним из простейших методов восстановления пропусков. В этом случае инициализация пропущенных значений выполняется путем замены среднего значения по признаку, в качестве алгоритма прогнозирования пропущенных значений можно использовать случайный лес или линейную регрессию. Для каждого признака, у которого отсутствует значение, обучение выполняется на объектах, у которых нет пропусков в этом датасете; для остальных признаков значения этого пропущенного признака подставляются с использованием обученного алгоритма ML. Эта процедура повторяется несколько раз до сходимости или указанного максимального количества итераций в случае случайного леса, либо до достижения необходимых метрик качества в случае линейных алгоритмов.
Выбор метода заполнения пропусков может зависеть от типов данных, в которых они есть, количества объектов с пропущенными значениями и причины их наличия. Каждое действие требует индивидуального выбора метода обработки пропущенных значений
Нормализация данных. Нормализация — это преобразование данных к неким безразмерным единицам. Иногда — в рамках заданного диапазона, например, [0..1] или [-1..1]. Иногда — с какими-то заданным свойством, как, например, стандартным отклонением равным 1.
Предположим, что в наших данных о клиентах банка и их активности есть столбцы: Age и Commission. Допустим, возможен возраст от 0 до 100 лет, а комиссия — от 100 долларов до 1000. Значения и их разбросы в столбце Commission больше, поэтому алгоритм автоматически решит, что этот признак важнее возраста. А это не так: все признаки значимы. Чтобы избежать этой ловушки, признаки масштабируются — приводятся к одному масштабу.
Аналитически любая нормализация сводится к формуле
, где