TODS: автоматизированная система обнаружения аномалий временных рядов
TODS — это комплексная автоматизированная система машинного обучения для обнаружения аномалий в многомерных данных временных рядов. TODS предоставляет исчерпывающие модули для создания систем обнаружения аномалий на основе машинного обучения, включая: обработку данных, обработку временных рядов, анализ признаков (извлечение), алгоритмы обнаружения и модуль подкрепления. Функциональность, предоставляемая этими модулями, включает предварительную обработку данных общего назначения, сглаживание/преобразование данных временных рядов, извлечение признаков из временной/частотной областей, различные алгоритмы обнаружения и привлечение человеческого опыта для калибровки системы. В TODS можно выполнить три распространённых сценария обнаружения аномалий во временных рядах: точечное обнаружение (аномалии — точки времени), групповое обнаружение (подпоследовательности как аномалии) и системное обнаружение (наборы временных рядов как аномалии). Также предоставляется широкий спектр соответствующих алгоритмов. Этот пакет разработан DATA Lab @ Rice University.
Особенности TODS:
Комплексная система машинного обучения, которая поддерживает исчерпывающие компоненты от предварительной обработки, извлечения признаков, алгоритмов обнаружения, а также интерфейса с участием человека.
Широкий спектр алгоритмов, включая все точечные алгоритмы обнаружения, поддерживаемые PyOD, современные групповые (коллективные) алгоритмы обнаружения, такие как DeepLog, Telemanon, а также различные ансамблевые алгоритмы для выполнения системного обнаружения.
Автоматизированное машинное обучение направлено на предоставление процесса без использования знаний, который строит оптимальную конвейерную линию на основе предоставленных данных путём автоматического поиска наилучшей комбинации из всех существующих модулей.
Если вы считаете эту работу полезной, вы можете сослаться на неё:
@article{Lai_Zha_Wang_Xu_Zhao_Kumar_Chen_Zumkhawaka_Wan_Martinez_Hu_2021,
title={TODS: An Automated Time Series Outlier Detection System},
volume={35},
number={18},
journal={Proceedings of the AAAI Conference on Artificial Intelligence},
author={Lai, Kwei-Herng and Zha, Daochen and Wang, Guanchu and Xu, Junjie and Zhao, Yue and Kumar, Devesh and Chen, Yile and Zumkhawaka, Purav and Wan, Minyang and Martinez, Diego and Hu, Xia},
year={2021}, month={May},
pages={16060-16062}
}
Этот пакет работает с Python 3.7+ и pip 19+. Вам необходимо установить следующие пакеты в системе (для Debian/Ubuntu):
sudo apt-get install libssl-dev libcurl4-openssl-dev libyaml-dev build-essential libopenblas-dev libcap-dev ffmpeg **Используйте зеркало в Gitee:**
git clone https://github.com/datamllab/tods.git
**Установите локально с помощью pip:**
cd tods pip install -e .
# Примеры
Примеры доступны в [/examples](examples/). Для базового использования вы можете оценить конвейер на заданных наборах данных. Здесь мы предоставляем пример для загрузки нашего стандартного конвейера и оценки его на подмножестве набора данных yahoo.
```python
import pandas as pd
from tods import schemas as schemas_utils
from tods import generate_dataset, evaluate_pipeline
table_path = 'datasets/anomaly/raw_data/yahoo_sub_5.csv'
target_index = 6 # какой столбец является целевым
metric = 'F1_MACRO' # F1 для обоих меток 0 и 1
# Чтение данных и генерация набора данных
df = pd.read_csv(table_path)
dataset = generate_dataset(df, target_index)
# Загрузка стандартного конвейера
pipeline = schemas_utils.load_default_pipeline()
# Запуск конвейера
pipeline_result = evaluate_pipeline(dataset, pipeline, metric)
print(pipeline_result)
Мы также предоставляем поддержку AutoML, чтобы помочь вам автоматически найти хороший конвейер для ваших данных.
import pandas as pd
from axolotl.backend.simple import SimpleRunner
from tods import generate_dataset, generate_problem
from tods.searcher import BruteForceSearch
# Некоторая информация
table_path = 'datasets/yahoo_sub_5.csv'
target_index = 6 # какой столбец является целевым
time_limit = 30 # Сколько секунд вы хотите искать
metric = 'F1_MACRO' # F1 для обеих меток 0 и 1
# Чтение данных, генерация набора данных и проблемы
df = pd.read_csv(table_path)
dataset = generate_dataset(df, target_index=target_index)
problem_description = generate_problem(dataset, metric)
# Запускаем бэкенд
backend = SimpleRunner(random_seed=0)
# Запускаем алгоритм поиска
search = BruteForceSearch(problem_description=problem_description,
backend=backend)
# Находим лучший конвейер
best_runtime, best_pipeline_result = search.search_fit(input_data=[dataset], time_limit=time_limit)
best_pipeline = best_runtime.pipeline
best_output = best_pipeline_result.output
# Оцениваем лучший конвейер
best_scores = search.evaluate(best_pipeline).scores
Мы выражаем благодарность программе Data Driven Discovery of Models (D3M) Агентства перспективных исследовательских проектов Министерства обороны США (DARPA).
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )