[Основа анализа данных Python]: обнаружение и обработка выбросов

искусственный интеллект Python анализ данных алгоритм

Добавить Автора

Публичный аккаунт WeChat:PythonНаука о данных

Знаю почти:аналитик данных Python


В предыдущей статье были описаны некоторые методы работы с отсутствующими значениями в данных.Ссылки следующие:[Основа анализа данных Python]: обработка пропущенных значений данных

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

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

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

2 Методы обнаружения выбросов

Общие методы обнаружения выбросов включают статистические методы, кластерные методы и некоторые специальные методы обнаружения выбросов и т. д. Эти методы представлены ниже.

1. Простая статистика

При использованииpandas, мы можем напрямую использоватьdescribe()Наблюдать за статистическим описанием данных (просто грубое наблюдение за некоторыми статистическими данными), но статистика является непрерывной, а именно:

df.describe()

Или просто используйте график рассеяния, чтобы четко наблюдать наличие выбросов. Следующее:

2. Принцип 3∂

Этот принцип имеет условие:Данные должны следовать нормальному распределению. В соответствии с принципом 3∂, если выброс превышает стандартное отклонение в 3 раза, его можно рассматривать как выброс. Вероятность плюс-минус 3∂ составляет 99,7%, тогда вероятность появления значения, отличающегося на 3∂ от среднего значения, равна P(|xu| > 3∂)

Красные стрелки указывают на выбросы.

3. Коробчатый сюжет

Этот метод использует ящичные диаграммыМежквартильный диапазон (IQR)Обнаружение выбросов, также называемыхтест Тьюки. Коробчатая диаграмма определяется следующим образом:

Межквартильный размах (IQR) – это разница между верхним и нижним квартилями. И мы передаем 1,5 раза IQR как норматив, оговариваем: более 1,5 разаВерхний квартиль + 1,5-кратное расстояние IQR, или нижний квартиль - 1,5-кратное расстояние IQRбаллы являются выбросами. Ниже приведена реализация кода на Python, которая в основном используетnumpyизpercentileметод.

Percentile = np.percentile(df['length'],[0,25,50,75,100])
IQR = Percentile[3] - Percentile[1]
UpLimit = Percentile[3]+ageIQR*1.5
DownLimit = Percentile[1]-ageIQR*1.5

также можно использоватьseabornметод визуализацииboxplotреализовать:

f,ax=plt.subplots(figsize=(10,8))
sns.boxplot(y='length',data=df,ax=ax)
plt.show()

Красные стрелки указывают на выбросы.

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

4. Проверка на основе модели

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

Определение вероятности выбросов:Выброс — это объект, модель распределения вероятности данных, которая имеет низкую вероятность. Предпосылка этой ситуации заключается в том, что необходимо знать, какому распределению следует набор данных.Если оценка неверна, это приведет к распределению с тяжелым хвостом.

такие как разработка функцийRobustScalerметод, при масштабировании значений признаков данных он будет использовать квантильное распределение признаков данных, чтобы разделить данные на несколько сегментов в соответствии с квантилями, и взять только средний сегмент для масштабирования, например, взять только квантиль 25% для 75 Данные квантиля % масштабируются. Это снижает влияние аномальных данных.

Преимущества и недостатки:(1) Статистическая теория имеет прочную основу, которая может быть очень эффективной при наличии достаточного количества данных и знаний о типах используемых тестов; (2) Для многомерных данных доступно меньше вариантов, а для многомерных данных эти возможности обнаружения плохие.

5. Обнаружение выбросов на основе близости

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

Определить значимую меру близости для набора данных проще, чем определить его статистическое распределение. Этот метод является более общим и простым в использовании, чем статистические методы, посколькуОценка выброса объекта определяется расстоянием до его k-ближайших соседей (KNN).

Следует отметить, что показатель выброса очень чувствителен к значению k. Если k слишком мало, небольшое количество соседних выбросов может привести к более низким оценкам выбросов; если K слишком велико, все объекты в кластерах с менее чем k точками могут стать выбросами. Чтобы сделать схему более устойчивой к выбору k, можно использовать среднее расстояние k ближайших соседей.

Преимущества и недостатки:(1) Простой; (2) Недостатки: метод близости требует времени O(m2), что не подходит для больших наборов данных; (3) метод также чувствителен к выбору параметров; (4) он не может обрабатывать регионы с разной плотностью Набор данных, поскольку он использует глобальный порог, не может учитывать это изменение плотности.

5. Обнаружение выбросов на основе плотности

С точки зрения плотности выбросы — это объекты в областях с низкой плотностью. Обнаружение выбросов на основе плотности тесно связано с обнаружением выбросов на основе близости, поскольку плотность обычно определяется с точки зрения близости.Обычный способ определить плотность — определить ее как величину, обратную среднему расстоянию до k ближайших соседей. Если расстояние маленькое, то плотность большая и наоборот.Другое определение плотностиИспользуется определение плотности, используемое алгоритмом кластеризации DBSCAN, то есть плотность вокруг объекта равна количеству объектов в пределах заданного расстояния d от объекта.

Преимущества и недостатки:(1) дает количественную оценку того, что объекты являются выбросами и хорошо обрабатываются, даже если данные имеют разные регионы; (2) как и методы, основанные на расстоянии, эти методы обязательно имеют временную сложность O(m2) Spend. Использование определенных структур данных для низкоразмерных данных может быть достигнутоO(mlogm); (3) Выбор параметров затруднен. Несмотря на то чтоLOFАлгоритм справляется с этим, просматривая разные значения k и затем беря максимальную оценку выброса, однако по-прежнему необходимо выбирать верхнюю и нижнюю границы для этих значений.

6. Кластерный метод обнаружения выбросов

Кластерные выбросы:Объект является выбросом на основе кластера, если объект не принадлежит строго ни к какому кластеру, то объект является выбросом.

Влияние выбросов на первоначальную кластеризацию: если выбросы обнаруживаются при кластеризации, возникает вопрос, действительна ли структура или нет, потому что выбросы влияют на кластеризацию. Это тожеk-meansНедостатком алгоритма является то, что он чувствителен к выбросам. Чтобы справиться с этим, можно использовать следующие методы: кластеризация объектов, выбросы удаляются, объекты снова кластеризуются (это не гарантирует получения оптимальных результатов).

Преимущества и недостатки:(1) Методы кластеризации, основанные на линейной и почти линейной сложности (k-средних), могут быть очень эффективными для поиска выбросов; (2) Определение кластеров обычно является дополнением выбросов, поэтому можно найти как кластеры, так и выбросы. (3) результирующий набор выбросов и их оценки могут сильно зависеть от количества используемых кластеров и наличия выбросов в данных, (4) качество кластеров, созданных алгоритмом кластеризации. очень большое влияние.

7. Специальное обнаружение выбросов

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

В дополнение к методам, упомянутым выше, есть еще два наиболее часто используемых метода обнаружения выбросов:One Class SVMиIsolation Forest, детали глубоко не изучены.

3 Как бороться с выбросами

Выбросы обнаружены, и нам нужно что-то с ними делать. Общие методы обработки выбросов можно условно разделить на следующие категории:

  • Удалить записи с выбросами: прямое удаление записей с выбросами;
  • Рассматривать как отсутствующее значение: обрабатывать выбросы как отсутствующие значения и использовать для обработки метод обработки отсутствующих значений;
  • средняя коррекция: Выброс может быть скорректирован средним значением двух наблюдений до и после;
  • не обрабатывать: Интеллектуальный анализ данных непосредственно в наборах данных с выбросами;

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

4 Резюме выбросов

Выше приведено краткое описание методов обнаружения и обработки выбросов.

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

Ссылаться на:

https://zhuanlan.zhihu.com/p/33665409 http://www.cnblogs.com/pinard/p/9314198.html https://blog.csdn.net/u013719780/article/details/48901183 http://www.cnblogs.com/charlotte77/p/5606926.html

"Анализ данных Python и практика майнинга"

Обратите внимание на публичный аккаунт WeChat:PythonНаука о данныхчтобы открыть для себя больше отличного контента.