Выброс – это Наблюдение (Observation), удаленное от других в выборке. Другими словами, это наблюдение, которое расходится с общей закономерностью Выборки (Sample).
Стоит различать это определение с Несбалансированным датасетом (Imbalanced Dataset). Хоть в определениях и есть некоторые сходства, однако несбалансированный набор данных с точки зрения Машинного обучения (ML) – это меньший размер выборки одного класса в сравнении с другим.
Источники выбросов
Появление таких наблюдений может быть вызвано:
- Различиями в способах измерений (например, изменилась чувствительность датчика)
- Экспериментальными ошибками (регламент эксперимента совершенствуется на ходу)
- Новыми процессами (появление другого человека в наблюдении за поведением одного единственного)
Выбросы могут быть результатом ошибки во время сбора данных или индикатором расхождения наблюдений. Потому их надлежит исключить из Датасета (Dataset). Однако Дата-сайентисты (Data Scientist) могут столкнуться с трудностями во время разграничения выбросов и нормальных значений, потому и не спешат исключать то или иное наблюдение.
Разновидности выбросов
Выделяют 3 типа выбросов:
- Глобальные: наблюдение далеко выходит за пределы всего набора данных. Пример: в классе все ученики – сверстники, но попадается запись об учащемся в возрасте 500 лет.
- Условные: наблюдения считаются аномальными с учетом контекста. Пример: экономические показатели резко страны падают из-за мирового экономического кризиса, и на какое-то время нормой становятся более низкие показатели.
- Коллективные: набор наблюдений, близких друг к другу и имеющих близкие аномальные значения. Подмножество точек считается аномальным, если эти значения как совокупность значительно отклоняются от всего набора данных, но значения отдельных точек данных сами по себе не являются аномальными ни в контекстном, ни в глобальном смысле:
Почему так важно идентифицировать выбросы?
Алгоритмы Машинного обучения чувствительны к диапазону и распределению значений атрибутов. Выбросы могут ввести в заблуждение Модель (Model), что приведет к увеличению времени обучения, меньшей Точности (Accuracy) и, в конечном итоге, к худшим результатам.
Визуальные методы обнаружения выбросов
Выбросы легко обнаружить с помощью следующих графиков:
- Ящик с усами (Boxplot) – это метод анализа одного или нескольких Признаков (Feature), которые используют Медиану (Median), а также квантили 0.25, 0.75:
- Гистограмма (Histogram)
Математические методы обнаружения выбросов
Наряду с визуальными методами мы также можем использовать некоторые математические функции:
- Стандартизованная оценка (Z-Score), которая характеризует меру наблюдаемого значения. В большинстве случаев используется пороговое значение: если значение Z-оценки больше или меньше 3 или -3 соответственно, эта точка данных будет классифицирована как выброс.
- Межквартильный размах (Interquartile Range), разница между верхним и нижним квартилями.
Это далеко не полный список методов для поиска выбросов.
Выбросы и библиотека Scikit-learn
Выбросы можно найти с помощью Scikit-learn. Начнем с импорта необходимых библиотек:
Затем мы загрузим "Бостонский датасет" о ценах на недвижимость:
Мы будем работать со следующим Датафреймом (DataFrame):
Названия признаков имеют следующие значения:
Отобразим ящик с усами для одного из признаков – расстояния от бостонских центров занятости:
Теперь – точечную диаграмму:
Обратимся к математическим методам обнаружения выбросов и начнем со Стандартизированной оценки:
Мы получим полный перечень стандартизированных оценок для каждого значения признака:
Сузим область поиска и отсечем нормальные значения:
Список значительно сузился:
Удалим из датасета значения, чей Z-критерий меньше 3:
Размер датасета слегка изменился:
Рассмотрим еще один способ – межквартильный размах:
Применив метод quantile() к датасету, мы получили список межквартильных размахов для каждого признака датасета:
Очистим набор данных с помощью специального условия:
Ноутбук, не требующий дополнительной настройки на момент написания статьи, можно скачать здесь.
Понравилась статья? Поддержите нас, поделившись статьей в социальных сетях и подписавшись на канал. И попробуйте наши курсы по Машинному обучению на Udemy.