Overview of the OATS Project
The OATS project is designed to simplify the complex process of time series outlier detection and prediction, making it accessible and straightforward for users. Its main goal is to provide an easy-to-use interface for state-of-the-art anomaly detection methods, which can greatly assist in various experiments. The platform supports handling both univariate and multivariate time series data, offering a uniform output format that makes it flexible and adaptable to different detection needs.
Features and Technology Stack
OATS is developed using several cutting-edge technologies:
- Python: Utilized for its simplicity and widespread use in data analytics and scientific computing.
- Poetry: A dependency manager for Python, which simplifies the installation and management of project dependencies.
- Machine Learning Frameworks: Integration with frameworks such as PyTorch and TensorFlow, enabling robust model training and deployment.
- Time Series Libraries: Utilizes Darts for time series predictions and PyOD for outlier detection, extending functionality into time series anomaly detection.
Getting Started
OATS provides users with various options to get started based on their environment preferences:
- Prerequisites: Python version 3.8 to 3.10 is required. For Docker installations, Docker software needs to be installed.
- Installation Methods:
- PyPI: Installable via pip, though using an environment manager like conda or poetry is recommended.
- Docker: Users can clone the repository, build the Docker image, and run it either on CPU or GPU.
- Local Install: Installation can be done locally using Poetry by cloning the repository and running a few commands.
Using OATS
The OATS project is straightforward to use for time series anomaly detection. Users can quickly start by referring to their blog or using a Colab notebook for practical examples. Core functionalities include:
- Getting Anomaly Scores: Example code is provided to fit a model and retrieve anomaly scores from test data.
- Determining Thresholds: Instructions to calculate thresholds for anomalies, which helps in identifying significant deviations in data.
Model Selection
OATS offers a variety of models classified by their methods, such as predictive, distance-based, and reconstruction-based models. These models come with different capabilities, including multivariate support and dependency on deep learning frameworks. Detailed documentation can help users select models based on their specific needs.
Roadmap and Contribution
The project is continually evolving, with plans for further improvements including automatic hyper-parameter tuning, additional examples, new preprocessors, and more models. Contributions from the community are welcomed to enhance and expand the project's capabilities.
Licensing and Contact
The project is distributed under the Apache 2.0 License, and inquiries can be directed to key contributors, primarily Benjamin Ye. Users and developers are encouraged to explore the project on GitHub, provided documentation, and additional resources for more in-depth understanding and application.
Acknowledgments
The development of OATS has been a collaborative effort, benefiting from external libraries like Darts and PyOD, and is inspired by the TODS package from DATA Lab at Rice University. Special thanks are extended to various team members and contributors who supported the project's journey.
By leveraging OATS, users can make outlier detection in time series data intuitive and efficient, utilizing the combined power of modern technologies and expert insights in anomaly detection.