Поиск по сайту Поиск

Истина где‑то рядом — ищем аномалии с Python. Часть 1: теория

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

Аномалии в реальном мире

Предположим, что у вас есть банковская карта. И вот, в один неудачный день её украли. Ваш банк  отслеживает вашу обычную схему трат, чтобы уведомлять о любых существенных изменениях. Эти схемы включают число транзакций, суммы, местоположение и так далее. Если кредитная карта украдена, то скорее всего расходы по ней сильно возрастут. Именно в таких ситуациях компании используют (в том числе) поиск аномалий для выявления необычных операций по карте. Но не перепутайте аномалии с шумом — это разные вещи!

Как выглядит шум в реальном мире? Для примера рассмотрим график продаж продуктового магазина. Люди, как правило, покупают больше продуктов в начале месяца, поэтому к его окончанию владелец магазина начинает замечать снижение продаж. Он начинает делать скидки на некоторые товары, чтобы увеличить спрос. Такая схема может привести к неравномерному росту продаж, но будет ли он вписываться в обычный график? Конечно же нет. Этот рост будет создавать шумы, а точнее стохастические шумы.

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

Разоблачаем странности: аномалии в данных

В книге Data Mining. Concepts and Techniques интересующее нас определение выглядит так: «Обнаружение выбросов (также известное как обнаружение аномалий) — это процесс поиска объектов данных, поведение которых сильно отличается от ожидаемого». Чтобы лучше осознать смысл выбросов, надо понимать, что отличает аномалию от шума.

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

https://paper-attachments.dropbox.com/s_1185AEC62427E23657579AF288686866FF5B3F65A0E36E86D1A293C6B0CCF4B4_1553405161903_sqDCqTEGAmcjqerU4VmkGaw.png
Множество точек (включая аномальные) на двумерном графике

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

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

Рассмотрим, что же может привести к возникновению аномалий в данных.

Появление аномалий в данных

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

1. Обнаружение проникновений

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

2. Мошеннические транзакции

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

3. Срабатывание электронных датчиков

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

Но причина аномалий может быть и в источнике данных — например, слишком высокая частота пульса после физических упражнений. Это важно учитывать при разработке коммерческих приложений. Мы приближаемся к четвёртой промышленной революции, в которой решающую роль играют интернет вещей (Internet of Things, IoT) и искусственный интеллект.  Где есть IoT, там есть и датчики. А точнее, широкая сеть датчиков, отслеживающая множество реальных проблем. Когда датчики срабатывают неверно, то их сигналы приводят к ложным срабатываниям систем устранения неполадок. Поэтому без обнаружения аномалий не обойтись.

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

Аномалии бывают разные

В литературе о Data Science приводится три типа аномалий:

— точечные

— контекстуальные

— коллективные

Рассмотрим подробнее каждый из них.

1. Точечные

Наиболее распространённый тип выбросов. Если представить данные в виде точек, то такие аномалии будут сильно выбиваться из общей картины:

Точечные аномалии
Точечные аномалии

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

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

2. Контекстуальные аномалии

Предположим, что мы находимся в городе Калькутта в Индии, и температура воздуха сегодня составляет 32 градуса Цельсия. Нормальная ли это температура? Без дополнительной информации ответить на этот вопрос трудно: нужно знать время года, местоположение, среднесуточную температуру за последние 10 лет и т. д. Если в Калькутте сейчас лето, то такая температура будет нормой. Но если зима, то нужно исследовать ситуацию глубже.

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

Обратите внимание на фразу «необычно тёплый». В случае с Аляской имеется в виду 15 градусов Цельсия, но для других стран такая температура не будет аномальной.

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

Контекстуальные аномалии
Контекстуальные аномалии

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

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

3. Коллективные аномалии

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

 Коллективные аномалии
 Коллективные аномалии

Это — пример коллективных аномалий. Их основная идея заключается в том, что такие сгруппированные точки не могут быть аномалиями по отдельности.  Для примера возьмём ежедневные поставки текстильной фабрики. В подобных отраслях часто случаются задержки заказов. Но если в какой-то из дней происходит слишком много задержек, может потребоваться дополнительное расследование. Одна отложенная поставка не сыграет роли, но при анализе подобной ситуации должна учитываться общая картина.

Коллективные аномалии интересны тем, что вы смотрите не на отдельные точки, а анализируете их поведение в целом.

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

Аномалии в машинном обучении

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

Фиктивный набор данных
Фиктивный набор данных

У набора данных два признака, x1 и x2, одна целевая переменная (метка) y и 6 наблюдений. При внимательном рассмотрении мы заметим, что пятое наблюдение выглядит странно, не правда ли? Но это зависит от нескольких вещей:

— Мы должны учитывать область исследования, из которой взяты данные. Иначе нельзя сказать, является ли пятое наблюдение аномалией. Может случиться так, что такое значение будет вполне нормальным.

— Был ли в порядке источник данных в процессе их получения? Всё ли функционировало так, как должно? Мы не всегда знаем ответы на подобные вопросы, но должны их учитывать, поскольку они могут изменить критерии поиска аномалий.

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

Для заданного набора входных векторов x1 и x2 необходимо спрогнозировать метку y.

Прогнозирование метки — это задача классификации. Предположим, вы обучили модель М на этих данных и получили точность классификации 96%. Неплохое начало! Возможно, вы даже придумаете лучшее решение для этого датасета. Но достаточно ли этой оценки? К сожалению, ответ — нет. Давайте выясним, почему.

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

Иллюзия «правильности» модели, которую даёт нам описанная выше точность, называется «классификационный парадокс». Самый простой и наивный способ решения этой проблемы — удаление выбросов перед отправкой данных. Но что, если в исследуемой нами области обнаружение аномалий чрезвычайно важно? Разве нельзя их как-то обрабатывать? Узнаем об этом в следующем разделе.

Получаем пользу от аномалий

Когда нам важно, чтобы модель могла правильно находить и оценивать выбросы, мы можем просто обучить её на наборе данных с аномалиями. Хорошо известный метод — обучение с учётом издержек классификации (Cost-Sensitive Learning). Идея в том, чтобы ввести штраф за каждую обнаруженную аномалию (обычные модели никак не наказывают и не поощряют свои прогнозы). Рассмотрим пример с мошенническими транзакциями. По сути, это задача бинарной классификации. Что же происходит, когда модель делает неправильный прогноз? Тут возможны два варианта:

— Классификация обычной операции как мошеннической

Ошибочная классификация незаконной операции как обычной


Настоящая законная транзакция

Настоящая мошенническая транзакция

Спрогнозированная законная транзакция

Нет проблем!

Большая проблема! Банк может покрыть дополнительные расходы

Спрогнозированная мошенническая транзакция

Некоторые проблемы.Банк может не покрыть расходы

Победа!

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

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

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

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

Ссылка на следующую часть

С оригинальной статьёй можно ознакомиться в блоге floydhub.com.

Какие показатели нужно отслеживать новому бизнесу? 10 главных метрик

Полный список финансовых показателей, которые нужно учитывать при запуске и развитии бизнеса. С формулами, комментариями и понятными примерами расчета. (далее…)
Read More

Драма Microsoft и Apple: от вражды до сотрудничества

Техногиганты всё время своего существования судились, обменивались колкостями и пытались обогнать друг друга по уровню новаторства в разработках. Наши коллеги...
Read More

Как компании меняли свой бренд из-за испорченной репутации: три кейса

В бизнесе нет страховки от ошибок — любой промах отражается на репутации. И иногда исправить ситуацию может только ребрендинг и...
Read More

Запускаем email-рассылку: как не попасть в спам при отправке писем

В статье рассказываем, почему рассылки попадают в спам, и делимся советами, как сделать так, чтобы письма всегда доставлялись до адресатов....
Read More

Ключ к успешному продвижению: что такое SMM-стратегия и как ее составить

Разберем, что такое SMM-стратегия, зачем она нужна и как эффективно использовать социальные сети для решения бизнес-задач. (далее…)
Read More

Новогодний маркетинг: лучшие приемы праздничной рекламы

Для бизнеса Новый год и Рождество — время всплеска продаж и увеличения прибыли. А способствуют этому всем знакомые персонажи: от...
Read More

Россияне предпочитают .ru вместо .com, а Дональд Трамп проиграл доменный спор за mar-a-lago.com

Рассказываем самые интересные новости доменного мира. (далее…)
Read More

Прокрастинация: что такое, виды и как бороться

Прокрастинатор полон идей и амбиций, но ему часто не хватает самодисциплины и силы воли, чтобы начать действовать. Что заставляет нас...
Read More

Что нужно покупателям в 2024: 5 трендов электронной коммерции

Ежегодно рынок e-commerce в России растет на треть, а в 2024 году, по прогнозам экспертов, его оборот составит более 7,2...
Read More

Гайд: стильный интернет-магазин на WordPress с помощью двух инструментов

Онлайн-торговля растет на 40-50% в год, поэтому открыть свой интернет-магазин никогда не поздно. Для старта не понадобятся знания HTML и...
Read More