PyOD – это Python-библиотека с более чем 30 современными алгоритмами обнаружения редких и подозрительных данных или событий. Область применения методов распознавания таких аномалий включает обнаружение мошенничества и внедрения в системы безопасности.
Обнаружение аномалий («выбросов») в большинстве случаев осложнено отсутствием соответствующих меток у таких данных и потому является задачей обучения без учителя. Специальные алгоритмы обнаружения выбросов дают возможность надежного распознавания образов в больших, неразмеченных массивах данных. PyOD включает широкий класс алгоритмов обнаружения аномалий, начиная с классических алгоритмов, таких как Isolation Forest, и заканчивая новейшими методами глубокого обучения и новыми алгоритмами (например, COPOD). Алгоритмы, включенные в PyOD, часто используются в исследованиях. Библиотека проста в использовании и содержит унифицированную документацию с примерами.
Все алгоритмы инициализируются числовым параметром в диапазоне от 0 до 0.5 (по умолчанию равным 0.1), характеризующим ожидаемую долю выбросов в данных и используется для установки порога оценки аномалий при приспособлении модели к конкретному набору данных. Библиотека включает следующие классы алгоритмов:
- линейные модели, в частности, PCA и One-Class SVM;
- модели на основе расчета близости, измеряющие расстояния между элементами данных: близкие друг к другу данные с большей вероятностью будут нормальными, а отдаленные – аномальными;
- вероятностные модели, использующие статистические распределения для выявления выбросов;
- модели, строящие ансамбли выбросов используют модельные ансамбли, чтобы выделить удаленные точки (одним из таких алгоритмов является Isolation Forest);
- нейронные сети: автоэнкодеры, в том числе вариационные, могут быть обучены распознаванию аномалий в неразмеченных данных.
В алгоритмах последнего типа автоэнкодеры обучаются сжимать и затем восстанавливать информацию в данных. Ошибки такой реконструкции являются кандидатами на аномалии. В последнее время было предложено несколько архитектур генеративно-состязательных сетей для обнаружения аномалий (например, MO_GAAL).
Один из способов построить наиболее надежную модель обнаружения выбросов (и избежать выбора одного алгоритма, так как каждый из них не универсален) – это объединить модели в ансамбль. Библиотека PyOD также позволяет сделать это и затем агрегировать оценки аномалий, распознанные несколькими алгоритмами.