Необычные значения в данных

Цикл постов о подготовке данных. Пост 3



Продолжаем серию постов, посвященную подготовке данных. Первый пост тут, второй - тут.



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



Фреймворк работы с выбросами



- Выявляем необычные точки

- Формулируем гипотезы: как был сгенерирован выброс

- Проверяем гипотезы

- Принимаем решение: интересны ли нам эти случаи

- Выкидываем или трансформируем необычные данные



Примеры



Выявляем необычные точки



Например, анализируя данные о прокате велосипедов, мы можем увидеть заметную часть (несколько процентов) очень коротких поездок. Поездка меньше 60 секунд - очевидно, аномалия.



Формулируем гипотезу: как был сгенерирован выброс



Гипотеза 1: ошибки/отказы. Велосипед был сломан, пользователь увидел это и вернул в прокат.



Гипотеза 2: дождь. Все, кто собирался ехать, отменяют поездки.



Проверяем гипотезы



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



Гипотеза 2. Если гипотеза верна, короткие поездки будут сгруппированы по времени и локации, но не привязаны к конкретному велосипеду.



Принимаем решение: интересны ли нам эти случаи



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



Выкидываем или трансформируем необычные данные



Если данные не несут дополнительного велью для продукта - можно удалить, если несут, то смотрим пост 2.



Мораль



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



Ваш @Reliable ML