В этой статье обсуждаются несколько часто используемых методов обнаружения выбросов при предварительной обработке данных для разработки моделей машинного обучения.
Что такое выбросы?
Выбросы - это значения, которые отличаются от других значений в данных. Ниже приведен график, на котором выбросы выделены «красным», причем выбросы можно увидеть в обоих крайних значениях данных.
Причины выбросов в данных
- Ошибки при вводе данных или неисправный измерительный прибор (неисправный датчик может привести к чрезмерным показаниям).
- Естественное происшествие (заработная плата сотрудников младшего звена по сравнению с сотрудниками высшего звена)
Проблемы, вызванные выбросами
- Выбросы в данных могут вызывать проблемы при подборе модели (особенно линейных моделей).
- Выбросы могут привести к завышению показателей ошибок, которые придают больший вес большим ошибкам (например, среднеквадратичная ошибка, RMSE).
Методы выявления выбросов в данных
В этой статье мы будем использовать набор данных вин Scikit-Learn. Прежде чем продолжить, мы загрузим и подготовим данные.
1. Ящичные диаграммы
Ящичные диаграммы - это визуальный метод выявления выбросов. Ящичные диаграммы - один из многих способов визуализировать распределение данных. Ящичковая диаграмма отображает q1 (25-й процентиль), q2 (50-й процентиль или медиана) и q3 (75-й процентиль) данных вместе с (q1–1,5 * (q3-q1)) и (q3 + 1,5 * (q3-q1)). Выбросы, если таковые имеются, отображаются в виде точек выше и ниже графика.
На приведенном выше графике выбросы показаны точками ниже и выше прямоугольной диаграммы. «Алкоголь», «общее_фенолы», «od280 / od315_of_diluted_wines» и «пролин» не имеют выбросов.
2. Метод IQR.
Метод IQR используется в виде прямоугольной диаграммы для выделения выбросов. IQR означает межквартильный диапазон, который представляет собой разницу между q3 (75-й процентиль) и q1 (25-й процентиль). Метод IQR вычисляет нижнюю и верхнюю границы для выявления выбросов.
Нижняя граница = q1–1,5 * IQR
Верхняя граница = q3 + 1,5 * IQR
Любые значения ниже нижней границы и выше верхней границы считаются выбросами. Ниже представлена реализация метода IQR на Python.
На приведенном выше графике, как видно из прямоугольной диаграммы, «алкоголь», «total_phenols», «od280 / od315_of_diluted_wines» и «пролин» не имеют выбросов.
3. Метод Z-оценки
Метод Z-оценки - еще один метод обнаружения выбросов. Этот метод обычно используется, когда распределение переменной похоже на гауссово. Z-оценка - это количество стандартных отклонений, на которые значение переменной отличается от среднего значения переменной.
Z-Score = (X-среднее) / стандартное отклонение
когда значения переменной преобразуются в Z-баллы, тогда распределение переменной называется стандартным нормальным распределением со средним значением = 0 и стандартным отклонением = 1. Метод Z-оценки требует порогового значения, указанного пользователем для выявления выбросов. Широко используется нижний предел отсечки -3, а верхний предел +3. Причина использования этих пороговых значений заключается в том, что 99,7% значений лежат между -3 и +3 в стандартном нормальном распределении. Давайте посмотрим на реализацию метода Z-Score в Python.
4. Метод «Расстояние от среднего» (многомерный метод)
В отличие от предыдущих методов, этот метод рассматривает несколько переменных в наборе данных для обнаружения выбросов. Этот метод вычисляет евклидово расстояние точек данных от их среднего значения и преобразует расстояния в абсолютные z-значения. Любой z-показатель, превышающий предварительно заданное пороговое значение, считается выбросом. Мы рассмотрим две переменные («malic_acid» и «magnesium») набора данных вина для реализации этого метода в Python, используя пороговое значение 3.
Это несколько часто используемых методов обнаружения выбросов в машинном обучении. Наличие выбросов может вызвать проблемы при подборе модели (особенно линейных моделей), а также может привести к завышению показателей ошибок, которые придают больший вес большим ошибкам. Следовательно, перед построением модели машинного обучения необходимо обработать выбросы.