Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added new markdowns to show as tabs #81

Merged
merged 2 commits into from
Dec 15, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
57 changes: 5 additions & 52 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,10 @@
This package identifies outlier(s) for a given time-series dataset in simple steps. It supports day, week, month and
quarter level time-series data.

- [Highlights](docs/Highlights.md)
- [Outlier Detection Functions](docs/Outlier%20Detection%20Functions.md)
- [Diagnostic Functions](docs/Diagnostic%20Functions.md)

### Installation

```bash
Expand All @@ -18,7 +22,7 @@ pip install pycatcher

<hr style="border:1.25px solid gray">

## Summary of features
### Summary of features
PyCatcher provides an efficient solution for detecting anomalies in time-series data using various statistical methods.
Below are the available techniques for anomaly detection, each optimized for different data characteristics.

Expand Down Expand Up @@ -159,57 +163,6 @@ Build an IQR plot for a given dataframe (for less than 2 years of data).

<hr style="border:1.25px solid gray">

### Summary of Package Functions
* `detect_outliers_classic(df):` Detect outliers in a time-series dataframe using classic seasonal trend decomposition.
* `detect_outliers_today_classic(df):` Detect outliers for the current date using classic seasonal trend decomposition.
* `detect_outliers_latest_classic(df):` Detect latest outliers using classic seasonal trend decomposition.
* `detect_outliers_stl(df):` Detect outliers using Seasonal-Trend Decomposition using LOESS (STL).
* `detect_outliers_today_stl(df):` Detect outliers for the current date using STL.
* `detect_outliers_latest_stl(df):` Detect latest outliers using STL.
* `detect_outliers_mstl(df):` Detect outliers using Multiple Seasonal-Trend Decomposition using LOESS (MSTL).
* `detect_outliers_today_mstl(df):` Detect outliers for the current date using MSTL.
* `detect_outliers_latest_mstl(df):` Detect latest outliers using MSTL.
* `detect_outliers_iqr(df):` Detect outliers in a time-series dataframe when there's less than 2 years of data.
* `detect_outliers_moving_average(df):` Detect outliers using moving average method.

<hr style="border:1.25px solid gray">

### Summary of Diagnostic Plots
* `build_seasonal_outliers_plot_classic(df):` Show outliers using Classical Seasonal Decomposition algorithm.
* `build_seasonal_plot_classic(df):` Build seasonal plot using classic seasonal trend decomposition.
* `build_outliers_plot_stl(df):` Show outliers using Seasonal-Trend Decomposition using LOESS (STL).
* `build_seasonal_plot_stl(df):` Build seasonal plots using STL for a given dataframe.
* `build_outliers_plot_mstl(df):` Show outliers using Multiple Seasonal-Trend Decomposition using LOESS (MSTL).
* `build_seasonal_plot_mstl(df):` Build multiple seasonal plots using MSTL for a given dataframe.
* `build_moving_average_outliers_plot(df):` Show outliers using Moving Average and Z-score algorithm.
* `build_iqr_plot(df):` Build IQR plot for a given dataframe (for less than 2 years of data).
* `build_monthwise_plot(df):` Build month-wise plot for a given dataframe.
* `build_decomposition_results(df):` Get seasonal decomposition results for a given dataframe.
* `conduct_stationarity_check(df):` Conduct stationarity checks for a feature (dataframe's count column).

<hr style="border:1.25px solid gray">

### Highlights
Unlike many open-source packages for outlier detection, PyCatcher provides several distinctive features:
* **Automatic Model Selection:**
PyCatcher automatically detects whether to use an additive or multiplicative
decomposition model, ensuring the most accurate detection of outliers based on the characteristics of your data.
* **Dynamic Method Selection Based on Data Size:**
PyCatcher seamlessly switches between Seasonal Trend Decomposition (for datasets spanning at least two years) and
Inter Quartile Range (IQR) for shorter time periods, offering flexibility without manual intervention.
* **Wide Time Frequency Support:**
Supports multiple time-series frequencies — including daily, weekly, monthly, and quarterly data—without requiring
users to pre-process or adjust their datasets.
* **Choice of Different Seasonal Trend Algorithms:** Support for outlier detection using various Seasonal Trend
Decomposition algorithms (Classic; STL; MSTL).
* **Integrated Diagnostics:** PyCatcher includes comprehensive diagnostic tools, enabling users to visualize outliers,
trends
and seasonal patterns, evaluate data stationarity, and analyze decomposition results.
* **User Interface:** Availability of a simple user interface for the users to upload file for outlier detection using IQR.
Future versions will include advanced algorithms.

<hr style="border:1.25px solid gray">

### Example Usage

To see an example of how to use the `pycatcher` package for outlier detection in time-series data, check out the [Example Notebook](https://github.com/aseemanand/pycatcher/blob/main/notebooks/Example%20Notebook.ipynb).
Expand Down
12 changes: 12 additions & 0 deletions docs/Diagnostic Functions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
### Summary of Diagnostic Functions
* `build_seasonal_outliers_plot_classic(df):` Show outliers using Classical Seasonal Decomposition algorithm.
* `build_seasonal_plot_classic(df):` Build seasonal plot using classic seasonal trend decomposition.
* `build_outliers_plot_stl(df):` Show outliers using Seasonal-Trend Decomposition using LOESS (STL).
* `build_seasonal_plot_stl(df):` Build seasonal plots using STL for a given dataframe.
* `build_outliers_plot_mstl(df):` Show outliers using Multiple Seasonal-Trend Decomposition using LOESS (MSTL).
* `build_seasonal_plot_mstl(df):` Build multiple seasonal plots using MSTL for a given dataframe.
* `build_moving_average_outliers_plot(df):` Show outliers using Moving Average and Z-score algorithm.
* `build_iqr_plot(df):` Build IQR plot for a given dataframe (for less than 2 years of data).
* `build_monthwise_plot(df):` Build month-wise plot for a given dataframe.
* `build_decomposition_results(df):` Get seasonal decomposition results for a given dataframe.
* `conduct_stationarity_check(df):` Conduct stationarity checks for a feature (dataframe's count column).
17 changes: 17 additions & 0 deletions docs/Highlights.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
### Highlights
Unlike many open-source packages for outlier detection, PyCatcher provides several distinctive features:
* **Automatic Model Selection:**
PyCatcher automatically detects whether to use an additive or multiplicative
decomposition model, ensuring the most accurate detection of outliers based on the characteristics of your data.
* **Dynamic Method Selection Based on Data Size:**
PyCatcher seamlessly switches between Seasonal Trend Decomposition (for datasets spanning at least two years) and
Inter Quartile Range (IQR) for shorter time periods, offering flexibility without manual intervention.
* **Wide Time Frequency Support:**
Supports multiple time-series frequencies — including daily, weekly, monthly, and quarterly data—without requiring
users to pre-process or adjust their datasets.
* **Choice of Different Seasonal Trend Algorithms:** Support for outlier detection using various Seasonal Trend
Decomposition algorithms (Classic; STL; MSTL).
* **Integrated Diagnostics:** PyCatcher includes comprehensive diagnostic tools, enabling users to visualize outliers,
trends
and seasonal patterns, evaluate data stationarity, and analyze decomposition results.
* **User Interface:** Availability of a simple user interface for the users to upload file for outlier detection using IQR.
12 changes: 12 additions & 0 deletions docs/Outlier Detection Functions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
### Summary of Package Functions
* `detect_outliers_classic(df):` Detect outliers in a time-series dataframe using classic seasonal trend decomposition.
* `detect_outliers_today_classic(df):` Detect outliers for the current date using classic seasonal trend decomposition.
* `detect_outliers_latest_classic(df):` Detect latest outliers using classic seasonal trend decomposition.
* `detect_outliers_stl(df):` Detect outliers using Seasonal-Trend Decomposition using LOESS (STL).
* `detect_outliers_today_stl(df):` Detect outliers for the current date using STL.
* `detect_outliers_latest_stl(df):` Detect latest outliers using STL.
* `detect_outliers_mstl(df):` Detect outliers using Multiple Seasonal-Trend Decomposition using LOESS (MSTL).
* `detect_outliers_today_mstl(df):` Detect outliers for the current date using MSTL.
* `detect_outliers_latest_mstl(df):` Detect latest outliers using MSTL.
* `detect_outliers_iqr(df):` Detect outliers in a time-series dataframe when there's less than 2 years of data.
* `detect_outliers_moving_average(df):` Detect outliers using moving average method.
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[tool.poetry]
name = "pycatcher"
version = "0.0.44"
version = "0.0.45"
description = "This package identifies outlier(s) for a given time-series dataset in simple steps. It supports day, week, month and quarter level time-series data."
authors = ["Aseem Anand <[email protected]>"]
maintainers = ["Jagadish Pamarthi <[email protected]>"]
Expand Down
Loading