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

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

Предположим, нам нужно найти средний возраст детей, присутствовавших на свадьбе.

С выбросом:

Возраст= [6, 7, 9, 12, 8, 5, 10, 96]

Среднее значение = (6+7+9+12+8+5+10+96)/8 = 19,125

Без выброса:

Возраст= [6, 7, 9, 12, 8, 5, 10]

Среднее значение = (6+7+9+12+8+5+10)/7 = 8,143

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

Теперь мы знаем, что такое выбросы и как они вводят в заблуждение наши данные. Итак, нам нужно удалить эти выбросы в рамках очистки данных. Чтобы удалить их, мы должны сначала идентифицировать их.

Обнаружение выбросов

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

Я взял набор данных из Kaggle, чтобы показать, как мы можем обнаруживать выбросы на графиках. В наборе данных, который я использовал, есть определенные особенности, которые вы можете не понять. Итак, чтобы развеять ваше замешательство, позвольте мне упомянуть их. а) thalachh- максимальная достигнутая частота сердечных сокращений, b) холестерол в мг/дл, полученный с помощью датчика ИМТ.

Загрузка набора данных

Точечная диаграмма

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

Коробчатая диаграмма

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

Гистограмма

Мы можем обнаружить выброс на гистограмме.

Я взял ссылки из этого блога, чтобы получить представление об обнаружении выбросов — https://medium.com/analytics-vidhya/outliers-in-data-and-ways-to-detect-them-1c3a5f2c6b1e

2. Межквартильный диапазон. Межквартильный диапазон или IQR дает разницу между 75-м и 25-м процентилями. 25-й процентиль принимается за первый квартиль, а 75-й процентиль - за третий квартиль. 50-й процентиль является медианой. Мы должны установить нижнюю границу и верхнюю границу. Любая точка данных, лежащая ниже нижней границы или выше верхней границы, считается выбросом.

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

Я взял конкретную переменную, для которой вычисляются первый и третий квартили. Затем я вычислил IQR.

Теперь для установки верхней и нижней границ существует формула, а именно:

Нижняя граница: Q1–1,5 * IQR

Верхняя граница: Q3+1,5 * IQR

где Q1= первая квартиль и Q3 = третья квартиль

Любая точка, лежащая ниже 84,75 или выше 214,75, является выбросом. Чтобы проверить, есть ли выброс:

Итак, здесь, как вы можете видеть, у меня есть один выброс ниже нижней границы признака «талах».

3. Z-оценка. Z-оценка помогает понять, насколько сильно отклонение точки данных от ее среднего значения. Диапазон его значений составляет от -3 стандартных отклонений до +3 стандартных отклонений. Используемая формула:

Z-показатель = (x-среднее)/стандартное отклонение

где x - точка данных.

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

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

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

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

Нулевая гипотеза (H0) — в данных нет выбросов.

Альтернативная гипотеза (H1) — в данных есть выбросы.

При проверке гипотез мы принимаем уровень значимости или значение α равным 0,05. Однако в экспериментах, связанных с медициной, используется очень низкий уровень значимости 0,01 или 0,001.

Нам нужно рассчитать p-значение.

значение p = P(наблюдение из эксперимента| H0 )

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

Если мы получаем значение p меньше, чем значение α, то мы отвергаем H0 и принимаем H1. Это означает, что мы принимаем тот факт, что в данных есть выбросы. В противном случае, если мы получаем значение p больше, чем значение α, мы принимаем H0 и отвергаем H1. Это значит, что аутсайдера нет.

5.Фактор локального выброса (LOF). Фактор локального выброса измеряет отклонение точки данных от ее ближайших соседей. При этом расстояние достижимости K-ближайших соседей точки данных вычисляется для получения плотности локальной достижимости (LRD). И тогда, если локальная плотность этой точки сравнивается с другими точками и обнаруживается точка с меньшей плотностью, то она считается выбросом.

Фактор локального выброса = среднее значение всех LRD k-соседей точки данных / LRD этой точки данных

Если LOF точки данных > 1, то это выброс.

Я взял ссылки на код из этого блога для LOF- https://medium.com/mlpoint/local-outlier-factor-a-way-to-detect-outliers-dde335d77e1a

На приведенном выше графике четко видны выбросы.

Работа с выбросами

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

Я взял ссылку из этого блога, чтобы справиться с выбросами — https://www.askpython.com/python/examples/detection-removal-outliers-in-python

Методы обработки выбросов:

а) Замена выбросов нулевым значением. Выбросы можно заменить нулевыми значениями. Это можно сделать с помощью межквартильного диапазона. Мы знаем, что мы используем первый квартиль и третий квартиль, чтобы установить границу, за которой, если какая-либо точка данных находится, мы будем рассматривать ее как выброс. Итак, после обнаружения этого выброса мы можем заменить его нулевым значением вместо того, чтобы полностью удалять его из наших данных.

Давайте посмотрим, как мы можем это сделать.

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

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

i) Вменение со средним значением. После замены выброса на нулевое значение теперь мы можем заменить это значение средним значением этого признака.

Давайте посмотрим, как это сделать.

Признак «thalachh» раньше имел нулевое значение. После замены этого значения средним значением мы видим, что эта функция больше не имеет нулевого значения.

ii) Вменение с медианным значением. Мы можем выполнить вменение с медианным значением, отличным от вменения со средним значением, чтобы заполнить отсутствующее значение значением, которое мы можем получить после вычисления медианы.

Вот как мы можем это сделать.

Мы видим, что функция «thalachh» не имеет нулевого значения, поскольку это значение заменено медианным значением.

c) Удалить строку со значением Null. Это еще один способ работы с нулевыми значениями. После замены выброса нулевым значением мы можем просто удалить всю строку, содержащую нулевое значение. Но если значений NULL много, то удаление многих строк может привести к потере огромной информации.

Чтобы удалить строки с отсутствующим значением-

Форма набора данных уменьшается после удаления строки.

Есть много других методов для работы с выбросами. Я упомянул некоторые из них.

Сводка

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

Примечание. Для этой работы использовался Jupyter Notebook.

Ссылка на Github Code- ссылка

Вы можете связаться со мной в профиле Linkedin- ссылка