Skip to content

Анализ временного ряда для выявления аномалий с использованием метода межквартильного размаха.

License

Notifications You must be signed in to change notification settings

mihnin/anomalizer

Repository files navigation

Anomalizer

Титульное изображение

Описание проекта

Anomalizer - это инструмент для анализа временных рядов и выявления аномалий с использованием метода межквартильного размаха (IQR). Проект разработан с использованием библиотеки Streamlit для создания интерактивного веб-приложения, которое позволяет пользователям загружать свои данные, настраивать параметры анализа и визуализировать результаты.

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

Функциональные возможности

  • Загрузка данных: Поддержка загрузки файлов Excel с данными.
  • Выбор столбцов: Возможность выбора столбца с датой для оси X и числового столбца для анализа.
  • Группировка данных: Поддержка выбора категориальных признаков для группировки данных.
  • Настройка порогов: Возможность настройки нижнего и верхнего порогов для обнаружения аномалий.
  • Визуализация: Построение графиков с использованием Plotly для визуализации аномалий.
  • Скачивание результатов: Возможность скачивания результатов анализа в формате Excel.
  • Поиск аномалий по каждому столбцу: Возможность поиска аномалий по каждому столбцу в датасете и отображение результатов в таблице.

Установка

Рекомендуется использовать conda для управления зависимостями и создания изолированной среды. Следуйте этим шагам для настройки проекта:

  1. Установите Anaconda или Miniconda.

  2. Клонируйте репозиторий:

    git clone https://github.com/yourusername/anomalizer.git
  3. Перейдите в директорию проекта:

    cd anomalizer
  4. Создайте и активируйте новую среду:

    conda create --name anomalizer-env python=3.8
    conda activate anomalizer-env
  5. Установите зависимости:

    pip install -r requirements.txt

Использование

  1. Запустите приложение Streamlit:
    streamlit run app5.py
  2. Откройте браузер и перейдите по адресу http://localhost:8501.
  3. Следуйте инструкциям на экране для загрузки данных и настройки параметров анализа.

Примеры использования

Пример 1: Анализ временного ряда

  1. Загрузите файл Excel с временными рядами.
  2. Выберите столбец с датой для оси X и числовой столбец для анализа.
  3. Выберите категориальные признаки для группировки данных.
  4. Настройте нижний и верхний пороги для обнаружения аномалий.
  5. Нажмите кнопку "Обнаружить аномалии".
  6. Просмотрите результаты и визуализацию.

Пример 1 - Шаг 1 Пример 1 - Шаг 2

Пример 2: Анализ данных с категориальными признаками

  1. Загрузите файл Excel с данными, содержащими категориальные признаки.
  2. Выберите столбец с датой для оси X (если доступно) и числовой столбец для анализа.
  3. Нажмите кнопку "Обработать файл и найти аномалии по каждому столбцу".
  4. Просмотрите результаты.

Пример 2 - Шаг 1 Пример 2 - Шаг 2

Бизнес-выгоды

Anomalizer - это универсальный инструмент, который помогает находить аномалии в любых данных, будь то финансовые, логистические или физические показатели, передаваемые с датчиков АСУ ТП. Выявление аномалий может помочь в:

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

Документация

Метод межквартильного размаха (IQR) для определения выбросов

Межквартильный размах (IQR) - это статистическая мера разброса данных, которая используется для выявления выбросов в наборе данных. Этот метод устойчив к экстремальным значениям и эффективен для несимметричных распределений.

Шаги метода:

  1. Сортировка данных

    • Упорядочиваем все значения по возрастанию.
  2. Нахождение квартилей

    • Q1 (первый квартиль): 25-й процентиль
    • Q2 (медиана): 50-й процентиль
    • Q3 (третий квартиль): 75-й процентиль
  3. Расчет межквартильного размаха (IQR)

    • IQR = Q3 - Q1
  4. Определение границ выбросов

    • Нижняя граница = Q1 - (множитель * IQR)
    • Верхняя граница = Q3 + (множитель * IQR)
    • Стандартный множитель: 1.5
  5. Выявление выбросов

    • Любые значения, выходящие за пределы этих границ, считаются выбросами.

Пример на яблоках

Представим, что у нас есть следующие веса 20 яблок (в граммах), уже отсортированные по возрастанию: 82, 85, 88, 90, 92, 95, 98, 100, 103, 105, 108, 110, 112, 115, 118, 120, 123, 125, 128, 130

Теперь выполним расчет:

  1. Разделим наши яблоки на 4 группы (по 5 яблок в каждой):

    • Группа 1: 82, 85, 88, 90, 92
    • Группа 2: 95, 98, 100, 103, 105
    • Группа 3: 108, 110, 112, 115, 118
    • Группа 4: 120, 123, 125, 128, 130
  2. Определим значения Q1 и Q3:

    • Q1 (граница между 1-й и 2-й группой) = 92 г
    • Q3 (граница между 3-й и 4-й группой) = 120 г
  3. Вычислим межквартильный размах:

    • Межквартильный размах = Q3 - Q1 = 120 г - 92 г = 28 г

Таким образом, межквартильный размах для нашего набора яблок составляет 28 граммов. Это означает, что разница в весе между 25% и 75% наших яблок (то есть, "средние" 50% яблок) составляет 28 граммов. Этот показатель дает нам представление о разбросе весов большинства яблок, исключая самые легкие и самые тяжелые, которые могли бы исказить общую картину.

Влияние множителя IQR

  • Увеличение множителя делает метод менее чувствительным (меньше значений определяется как выбросы).
  • Уменьшение множителя делает метод более чувствительным (больше значений определяется как выбросы).

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

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

Лицензия

Этот проект лицензирован под лицензией GNU General Public License v3.0. Подробности см. в файле LICENSE.

About

Анализ временного ряда для выявления аномалий с использованием метода межквартильного размаха.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published