Image

Мы использовали 5 методов обнаружения выбросов на реальном наборе данных: результаты разошлись в 96% случаев для помеченных образцов.

Содержание

Из 816 вин, отмеченных хотя бы одним методом, только 32 попали в единогласный список. У этих вин было нечто общее.

Методы обнаружения выбросов
Изображение предоставлено автором.

# Введение

Во всех руководствах по анализу данных обнаружение выбросов кажется довольно простым делом. Удалите все значения, превышающие три стандартных отклонения; вот и все. Но как только вы начинаете работать с реальным набором данных, где распределение асимметрично, и заинтересованная сторона спрашивает: «Почему вы удалили эту точку данных?», вы внезапно понимаете, что у вас нет хорошего ответа.

Поэтому мы провели эксперимент. Мы протестировали пять наиболее часто используемых методов обнаружения выбросов на реальном наборе данных (6497 португальских вин), чтобы выяснить: дают ли эти методы стабильные результаты?

Нет, они этого не сделали. То, чему мы научились из этого разногласия, оказалось гораздо ценнее всего, что мы могли бы почерпнуть из учебника.

Методы обнаружения выбросов
Изображение предоставлено автором.

Мы разработали этот анализ в виде интерактивного блокнота Strata, формат которого вы можете использовать для собственных экспериментов с помощью проекта Data Project на StrataScratch. Полный код можно посмотреть и запустить здесь.

# Настройка

Наши данные получены из общедоступного набора данных о качестве вина, размещенного в репозитории машинного обучения Калифорнийского университета в Ирвайне (UCI). Он содержит физико-химические измерения 6497 португальских вин «Виньо Верде» (1599 красных, 4898 белых), а также оценки качества от экспертов-дегустаторов.

Мы выбрали эти данные по нескольким причинам. Это производственные данные, а не искусственно сгенерированные. Распределения асимметричны (6 из 11 признаков имеют асимметрию > 1), поэтому данные не соответствуют общепринятым предположениям. А рейтинги качества позволяют нам проверить, встречаются ли обнаруженные «выбросы» чаще среди вин с необычными рейтингами.

Ниже представлены пять методов, которые мы протестировали:

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

# Раскрытие первого сюрприза: завышенные результаты многократных тестов

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

Показатель IQR выявил около 23% вин как выбросы. Показатель Z-Score выявил около 26%.

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

Математика проста. Если вероятность того, что каждая характеристика будет иметь «случайное» экстремальное значение, составляет менее 5%, то при наличии 11 независимых характеристик:
[ P(text{по крайней мере один крайний случай}) = 1 — (0,95)^{11} приблизительно 43% ]

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

Чтобы исправить это, мы изменили требование: помечать образец только тогда, когда как минимум 2 признака одновременно являются экстремальными.

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

Изменение значения min_features с 1 на 2 изменило определение с «любая характеристика выборки является экстремальной» на «выборка является экстремальной по нескольким характеристикам».

Вот исправление в коде:

# Подсчет экстремальных признаков для каждой выборки outlier_counts = (np.abs(z_scores) > 3.5).sum(axis=1) outliers = outlier_counts >= 2

# Сравнение 5 методов на одном наборе данных

После внедрения исправления для множественного тестирования мы подсчитали, сколько образцов выявил каждый метод:

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

Вот как мы настраиваем методы машинного обучения:

from sklearn.ensemble import IsolationForest from sklearn.neighbors import LocalOutlierFactor iforest = IsolationForest(contamination=0.05, random_state=42) lof = LocalOutlierFactor(n_neighbors=20, contamination=0.05)

Почему все методы машинного обучения показывают ровно 5%? Из-за параметра загрязнения. Он требует, чтобы они отмечали именно этот процент. Это квота, а не пороговое значение. Другими словами, Isolation Forest отметит 5% независимо от того, содержат ли ваши данные 1% истинных выбросов или 20%.

# Раскрывая реальную разницу: они различают разные вещи

Вот что нас больше всего удивило. Когда мы проанализировали степень согласованности методов, коэффициент сходства Жаккара варьировался от 0,10 до 0,30. Это очень низкий уровень согласованности.

Из 6497 вин:

  • Только 32 образца (0,5%) были помечены всеми четырьмя основными методами.
  • 143 образца (2,2%) были помечены как имеющие 3 и более маркированных метода.
  • Оставшиеся «выбросы» были выявлены только одним или двумя методами.

Вы можете подумать, что это ошибка, но в этом-то и суть. Каждый метод имеет своё собственное определение понятия «необычный»:

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

Если содержание остаточного сахара в вине значительно выше среднего, это одномерное отклонение (его выявит Z-критерий/межквартильный размах). Но если оно находится в окружении других вин с аналогичным содержанием сахара, LOF его не отметит. Это нормальное явление в местном контексте.

Так что настоящий вопрос не в том, «какой метод лучше?», а в том, «какой именно необычный объект я ищу?».

# Проверка здравомыслия: коррелируют ли выбросы с качеством вина?

Набор данных включает в себя экспертные оценки качества (3-9). Мы хотели узнать: чаще ли встречаются выбросы среди вин с крайне высокими оценками качества?

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

Вина исключительно высокого качества в два раза чаще оказывались отклонениями от общепринятого мнения. Это хорошая проверка на адекватность. В некоторых случаях связь очевидна: вино со слишком высоким содержанием летучих кислот имеет уксусный вкус, получает низкую оценку и отмечается как отклонение от нормы. Химический состав определяет оба результата. Но мы не можем предполагать, что это объясняет каждый случай. Могут существовать закономерности, которые мы не видим, или факторы, которые мы не учли.

# Три решения, которые повлияли на наши результаты

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

// 1. Использование надежного Z-балла вместо стандартного Z-балла

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

В результате стандартный Z-балл выявил 0,8% данных как выбросы, а надежный Z-балл — 3,5%.

# Надежный Z-балл с использованием медианы и MAD median = np.median(data, axis=0) mad = np.median(np.abs(data — median), axis=0) robust_z = 0.6745 * (data — median) / mad

// 2. Раздельное масштабирование красных и белых вин

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

# Масштабирование каждого типа вина отдельно from sklearn.preprocessing import RobustScaler scaled_parts = [] for wine_type in ['red', 'white']: subset = df[df['type'] == wine_type][features] scaled_parts.append(RobustScaler().fit_transform(subset))

// 3. Как понять, когда следует исключить метод

Метод эллиптической огибающей предполагает, что ваши данные подчиняются многомерному нормальному распределению. В нашем случае это не так. Шесть из одиннадцати признаков имели асимметрию выше 1, а один признак достиг значения 5,4. Мы оставили метод эллиптической огибающей в сравнении для полноты картины, но исключили его из голосования по консенсусу.

# Определение наиболее эффективного метода для данного набора данных о винах

Методы обнаружения выбросов
Изображение предоставлено автором.

Можем ли мы выбрать «победителя», учитывая характеристики наших данных (сильная асимметрия распределения, смешанная популяция, отсутствие известных эталонных данных)?

Robust Z-Score, IQR, Isolation Forest и LOF достаточно хорошо справляются с данными со смещенным распределением. Если бы нам пришлось выбирать один, мы бы остановились на Isolation Forest: он не предполагает каких-либо предположений о распределении, учитывает все признаки одновременно и корректно работает со смешанными выборками.

Но ни один метод не является универсальным:

  • Метод Isolation Forest может пропускать выбросы, которые являются экстремальными только по одному признаку (такие выбросы выявляются с помощью Z-Score/IQR).
  • Z-показатель/межквартильный размах могут не учитывать выбросы, которые являются необычными по нескольким параметрам (многомерные выбросы).

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

Вот как мы рассчитали консенсус:

# Подсчитываем, сколько методов отметило каждый образец consensus = zscore_out + iqr_out + iforest_out + lof_out high_confidence = df[consensus >= 3] # Идентифицировано 3+ методами

Без эталонных данных (как в большинстве реальных проектов) наиболее точным показателем уверенности является согласованность методов.

# Понимание того, что всё это значит для ваших собственных проектов

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

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

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

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

# Заключительные замечания

Суть не в том, что обнаружение выбросов не работает. Дело в том, что понятие «выброс» означает разные вещи в зависимости от того, кто задает вопрос. Z-Score и IQR обнаруживают значения, которые являются экстремальными по одному параметру. Isolation Forest и LOF находят образцы, которые выделяются на общем фоне. Elliptic Envelope хорошо работает, когда ваши данные действительно имеют гауссово распределение (наши данные не были такими).

Прежде чем выбирать метод, определитесь, что именно вам нужно. А если вы не уверены? Попробуйте несколько методов и выберите тот, который покажет наилучший результат.

# Часто задаваемые вопросы

// 1. Определение того, с какой техники мне следует начать

Хорошей отправной точкой может стать метод «Изоляционного леса». Он не предполагает, как распределены ваши данные, и использует все ваши признаки одновременно. Однако, если вы хотите выявить экстремальные значения для конкретного измерения (например, очень высокие показатели артериального давления), то для этого могут больше подойти Z-показатель или межквартильный размах (IQR).

// 2. Выбор коэффициента загрязнения для методов Scikit-learn

Это зависит от задачи, которую вы пытаетесь решить. Обычно используется значение 5% (или 0,05). Но имейте в виду, что загрязнение — это квота. Это означает, что 5% ваших выборок будут классифицированы как выбросы, независимо от того, есть ли на самом деле 1% или 20% истинных выбросов в ваших данных. Используйте коэффициент загрязнения, основанный на ваших знаниях о доле выбросов в ваших данных.

// 3. Удаление выбросов перед разделением обучающих и тестовых данных

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

// 4. Обработка категориальных признаков

Описанные здесь методы работают с числовыми данными. Для категориальных признаков возможны три варианта:

  • закодируйте ваши категориальные переменные и продолжайте;
  • использовать метод, разработанный для данных смешанного типа (например, HBOS);
  • Для обнаружения выбросов в числовых столбцах используйте отдельные методы, а для категориальных — частотные методы.

// 5. Как определить, является ли отмеченное как выброс ошибкой или просто необычным явлением

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

Нейт Розиди — специалист по анализу данных и продуктовой стратегии. Он также является адъюнкт-профессором, преподающим аналитику, и основателем StrataScratch, платформы, помогающей специалистам по анализу данных готовиться к собеседованиям с помощью реальных вопросов от ведущих компаний. Нейт пишет о последних тенденциях на рынке труда, дает советы по прохождению собеседований, делится проектами по анализу данных и освещает все аспекты SQL.

Источник: www.kdnuggets.com

✅ Найденные теги: «Мы, Выбросы, Методы, Набор Данных, новости, Обнаружение, Результаты

ОСТАВЬТЕ СВОЙ КОММЕНТАРИЙ

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

галерея

Графики зависимости с вероятностью p(d) от отношения d/R, три диаграммы с точками и линиями.
Волна из пластиковых мусорных контейнеров формирует завихрение в море.
Лазерный микроскоп в лаборатории с зеленым светом.
Человек на звездной дороге к галактике с книгами, символизирующими путь к знанию.
Двое мужчин за столом в кафе, интерьер с растениями и большими окнами.
ideipro logotyp
Переосмысление системы здравоохранения на основе ценностной ориентации: Лекции из астронавтов
Абстрактный объемный узор синие и оранжевые линии, темный фон.
Дети смотрят планшет, сидя на ковре дома.
Image Not Found
Волна из пластиковых мусорных контейнеров формирует завихрение в море.

Пептиды встречаются повсюду. Вот что вам нужно знать.

Популярность этих соединений резко возросла, но серьезные вопросы, касающиеся безопасности и эффективности, по-прежнему остаются нерешенными. Сара Роджерс/MITTR | Getty Images MIT Technology Review объясняет: Наши авторы помогут вам разобраться в сложном и запутанном мире технологий и понять,…

Мар 14, 2026
Лазерный микроскоп в лаборатории с зеленым светом.

Создан простой способ отличать разные типы коллагена

Установка для проведения измерений © Николай Суровцев / Институт автоматики и электрометрии СО РАН. Ученые разработали метод, который позволяет точно различить основные типы коллагена — белка, обеспечивающего прочность и эластичность кожи, связок и других соединительных тканей. Коллагены…

Мар 14, 2026
Человек на звездной дороге к галактике с книгами, символизирующими путь к знанию.

Как человеческий труд сохранит свою ценность в мире искусственного интеллекта

Путь к реальности — Эпизод 1 Делиться В дискуссиях об искусственном интеллекте сейчас доминирует одна точка зрения: что ИИ заменит всех нас, что рабочие места исчезнут в течение 18 месяцев, что крах рынка труда неизбежен. Одни говорят…

Мар 14, 2026
Двое мужчин за столом в кафе, интерьер с растениями и большими окнами.

Компания Wonderful привлекла 150 миллионов долларов в рамках раунда финансирования серии B при оценке в 2 миллиарда долларов.

Вкратце Источник изображения: Wonderful Израильский стартап Wonderful, занимающийся разработкой ИИ-агентов, привлек 150 миллионов долларов в рамках раунда финансирования серии B, в результате чего его рыночная капитализация оценивается в 2 миллиарда долларов. Это произошло всего через четыре месяца…

Мар 14, 2026

Впишите свой почтовый адрес и мы будем присылать вам на почту самые свежие новости в числе самых первых