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

Что такое выбросы?

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

Причины выбросов в данных

  1. Ошибки при вводе данных или неисправный измерительный прибор (неисправный датчик может привести к чрезмерным показаниям).
  2. Естественное происшествие (заработная плата сотрудников младшего звена по сравнению с сотрудниками высшего звена)

Проблемы, вызванные выбросами

  1. Выбросы в данных могут вызывать проблемы при подборе модели (особенно линейных моделей).
  2. Выбросы могут привести к завышению показателей ошибок, которые придают больший вес большим ошибкам (например, среднеквадратичная ошибка, 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.

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