В статистике выброс - это точка наблюдения, удаленная от других наблюдений.

Эти экстремальные значения не обязательно должны влиять на производительность или точность модели, но когда они имеют место, они называются «влиятельными» точками.

Примечание. выброс - это точка данных, которая расходится с общим шаблоном в выборке. Влиятельная точка - это любая точка, которая сильно влияет на наклон линии регрессии.

Теперь возникает вопрос, как мы можем обнаружить эти выбросы и как с ними справиться?

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

Наиболее частые причины выбросов в наборе данных:

  • Ошибки ввода данных (человеческие ошибки)
  • Ошибки измерения (приборные ошибки)
  • Экспериментальные ошибки (извлечение данных или ошибки планирования / выполнения эксперимента)
  • Преднамеренный (фиктивные выбросы, сделанные для проверки методов обнаружения)
  • Ошибки обработки данных (манипуляции с данными или непреднамеренные изменения набора данных)
  • Ошибки выборки (извлечение или смешивание данных из неправильных или различных источников)
  • Естественный (не ошибка, новинки в данных)

Общие методы обнаружения выбросов

Существует несколько методов выявления выбросов в наборе данных.

  • Коробчатая диаграмма
  • Диаграмма рассеяния
  • Метод Z-оценки
  • Оценка IQR

Коробчатый график

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

Самый быстрый и простой способ определить выбросы - визуализировать их с помощью графиков. Если ваш набор данных невелик (примерно до 10 тыс. Наблюдений и 100 функций), я настоятельно рекомендую вам создавать диаграммы разброса и ящичные диаграммы переменных. Если нет выбросов, вы обязательно получите некоторые другие идеи, такие как корреляции, изменчивость или внешние факторы, такие как влияние мировой войны / рецессии на экономические факторы. Однако этот метод не рекомендуется для данных большой размерности, где не работает визуализация.

Ящичковая диаграмма использует межквартильный диапазон для обнаружения выбросов. Здесь мы сначала определяем квартили Q 1 и Q 3.

Межквартильный размах определяется как IQR = Q3 - Q1.

Верхний предел = 3 квартал + 1,5 * IQR

Нижний предел = Q1–1,5 * IQR

Все, что ниже нижнего предела и выше верхнего предела, считается выбросом.

Диаграмма разброса

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

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

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

Z-оценка

Z-оценка - это число стандартных отклонений со знаком, на которое значение наблюдения или точки данных превышает среднее значение того, что наблюдается или измеряется.

Этот метод предполагает, что переменная имеет гауссовское распределение. Он представляет собой количество стандартных отклонений, на которое наблюдение отличается от среднего:

Здесь мы обычно определяем выбросы как точки, модуль z-показателя которых превышает пороговое значение. Это пороговое значение обычно больше 2 (обычное значение - 3).

Интуиция, лежащая в основе Z-показателя, заключается в описании любой точки данных путем нахождения их взаимосвязи со стандартным отклонением и средним значением группы точек данных. Z-оценка находит распределение данных, где среднее значение равно 0, а стандартное отклонение равно 1, то есть нормальное распределение.

Вы, должно быть, задаетесь вопросом, как это помогает в выявлении выбросов? Что ж, при вычислении Z-балла мы повторно масштабируем и центрируем данные и ищем точки данных, которые слишком далеки от нуля. Эти точки данных, которые слишком далеки от нуля, будут рассматриваться как выбросы. В большинстве случаев используется порог 3 или -3, т.е. если значение Z-оценки больше или меньше 3 или -3 соответственно, эта точка данных будет идентифицирована как выбросы.

Мы будем использовать функцию Z-score, определенную в библиотеке scipy, для обнаружения выбросов.

Пусть вас не смущают результаты. Первый массив содержит список номеров строк, а второй массив номеров соответствующих столбцов, что означает, что z [55] [1] имеет Z-оценку выше 3.

Оценка IQR

«Межквартильный размах», сокращенно «IQR», - это просто ширина прямоугольника на графике «ящик и усы». То есть IQR = Q3 - Q1. IQR можно использовать как меру разброса значений.

Статистика предполагает, что ваши ценности сгруппированы вокруг некоторого центрального значения. IQR показывает, насколько разбросаны «средние» значения; его также можно использовать, чтобы определить, когда некоторые другие значения «слишком далеки» от центрального значения. Эти «слишком далекие» точки называются «выбросами», потому что они «лежат за пределами» диапазона, в котором мы их ожидаем.

IQR - это длина прямоугольника на вашем графике с усами. Выброс - это любое значение, которое более чем в полтора раза превышает длину прямоугольника с любого конца поля.

То есть, если точка данных ниже Q1–1,5 × IQR или выше Q3 + 1,5 × IQR, это считается слишком далеким от центральных значений, чтобы быть разумным.

Код на Python для расчета оценки IQR.

Исправление, удаление выбросов

Z-оценка

В предыдущем разделе мы увидели, как можно обнаружить выбросы, используя Z-оценку, но теперь мы хотим удалить или отфильтровать выбросы и получить чистые данные. Это можно сделать с помощью всего одного строчного кода, поскольку мы уже вычислили Z-оценку.

Оценка IQR -

Так же, как Z-оценка, мы можем использовать ранее рассчитанную оценку IQR, чтобы отфильтровать выбросы, сохраняя только действительные значения.

Алгоритмы, отправляющие выбросы

  • Линейная регрессия

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

  • Логистическая регрессия

На логистическую регрессию влияют выбросы, как мы видим на диаграмме выше.

  • SVM

SVM не очень устойчив к выбросам. Наличие нескольких выбросов может привести к очень плохой глобальной неправильной классификации.

  • Ближайшие соседи (KNN)

Алгоритм чувствителен к выбросам, поскольку один пример с неверной маркировкой резко меняет границы класса. Аномалии существенно влияют на метод, потому что k-NN получает всю информацию из входных данных, а не из алгоритма, который пытается обобщить данные.

Предложение: Избегайте очень небольшого числа соседей (например, k = 1), особенно если вы находитесь перед зашумленными данными, так всегда.

  • Наивный байесовский

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

  • Дерево решений

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

  • Случайный лес

Случайный лес обрабатывает выбросы, по сути объединяя их.

  • К-средние

Алгоритм k-средних обновляет центры кластеров, принимая среднее значение всех точек данных, которые находятся ближе к каждому центру кластера. Когда все точки собраны вместе, среднее значение имеет смысл. Однако, если у вас есть выбросы, это может повлиять на средний расчет всего кластера. В результате это подтолкнет центр кластера ближе к выбросу.

Пример

Среднее значение 2,2,2,3,3,3,4,4,42,2,2,3,3,3,4,4,4 равно 33

Если мы добавим к этому единицу 2323, среднее значение станет 55, что больше любого из других значений.

Поскольку в k-средних вы будете брать среднее значение, вам придется выполнять множество расчетов, чувствительных к выбросам.

Вот почему у нас есть алгоритм k-medians. Он просто использует медианное значение, а не среднее значение, и менее чувствителен к выбросам.

Тем не менее, есть много способов обнаружить и исправить выбросы, но я однажды рассмотрел основные и важные методы.

Приятного чтения :)

Ссылки: