Perception Anomaly Detection.
This project contains the prototypical implemenation of the algorithm described in the paper "Anomaly Detection using Principle of Human Perception"
that can be found at: https://arxiv.org/abs/2103.12323
The perception algorithm detects global anomalies in univariate and multivariate data parameter-free! Just give it the standardised data as a numpy array and it will return
the label (normal or anomalous) of each observation. The algorithm also gives each observation a score that can be useful for further analysis and investigation.
Notes on the algorithm:
Returns the anomaly label and associated score of each observation.
The greater the score, above zero, the more anomalous an observation is.
This function specialises to one-dimensional data when the data only has one feature.
The fundamental formula for scoring the unexpectedness of an observation is:
(S choose n) * 1/(W^{n-1})
However, this formula is transformed for computational reasons as detailed in the accompanying paper and code to:
-1/S * (log(S choose n) - (n - 1) * log(W))
In the multi-dimensional case:
We take in scaled data and calculate each observations' distance from the median using a
distance measure, for example Mahalanobis or Euclidean. Then, given the one-dimensional data, we apply the
one-dimensional anomaly detection algorithm as before.
The 'Notebooks' folder contains a getting started guide and tutorial examples that are recommended to be run and examined if new to this project: https://github.com/M-Nassir/perception
Raw data
{
"_id": null,
"home_page": "https://github.com/M-Nassir/perception",
"name": "perception-nassir",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.6",
"maintainer_email": null,
"keywords": null,
"author": "Nassir Mohammad",
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/a9/1e/9d5a48e7277210627418c061ca24aa7db3726638636c9ee7ec51403cd6ae/perception-nassir-0.0.5.tar.gz",
"platform": null,
"description": "Perception Anomaly Detection.\n\nThis project contains the prototypical implemenation of the algorithm described in the paper \"Anomaly Detection using Principle of Human Perception\" \nthat can be found at: https://arxiv.org/abs/2103.12323\n\nThe perception algorithm detects global anomalies in univariate and multivariate data parameter-free! Just give it the standardised data as a numpy array and it will return\nthe label (normal or anomalous) of each observation. The algorithm also gives each observation a score that can be useful for further analysis and investigation.\n\nNotes on the algorithm:\n\n Returns the anomaly label and associated score of each observation.\n\n The greater the score, above zero, the more anomalous an observation is.\n\n This function specialises to one-dimensional data when the data only has one feature.\n\n The fundamental formula for scoring the unexpectedness of an observation is:\n (S choose n) * 1/(W^{n-1})\n\n However, this formula is transformed for computational reasons as detailed in the accompanying paper and code to:\n -1/S * (log(S choose n) - (n - 1) * log(W))\n\nIn the multi-dimensional case:\n\n We take in scaled data and calculate each observations' distance from the median using a\n distance measure, for example Mahalanobis or Euclidean. Then, given the one-dimensional data, we apply the\n one-dimensional anomaly detection algorithm as before.\n\nThe 'Notebooks' folder contains a getting started guide and tutorial examples that are recommended to be run and examined if new to this project: https://github.com/M-Nassir/perception \n",
"bugtrack_url": null,
"license": null,
"summary": "A method for detecting anomalies in univariate and multivariate data",
"version": "0.0.5",
"project_urls": {
"Homepage": "https://github.com/M-Nassir/perception"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "3978c8cd4b8b187848977a039e383de974c8be80aa6bf837e59456c786c4ec84",
"md5": "b52da8033f257a7de4aa7b7894d7f849",
"sha256": "512abf4844b5ae93b2bb3432382d7e80edadf4200af013b075738bc636447997"
},
"downloads": -1,
"filename": "perception_nassir-0.0.5-py3-none-any.whl",
"has_sig": false,
"md5_digest": "b52da8033f257a7de4aa7b7894d7f849",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.6",
"size": 6876,
"upload_time": "2024-08-16T21:45:30",
"upload_time_iso_8601": "2024-08-16T21:45:30.298417Z",
"url": "https://files.pythonhosted.org/packages/39/78/c8cd4b8b187848977a039e383de974c8be80aa6bf837e59456c786c4ec84/perception_nassir-0.0.5-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "a91e9d5a48e7277210627418c061ca24aa7db3726638636c9ee7ec51403cd6ae",
"md5": "ca856eda81e19df9c7e6d948e5ec5197",
"sha256": "e6178e02ae6f69a0507ecccb1b3a8961078b758bb651ceb047a89bfa31de0246"
},
"downloads": -1,
"filename": "perception-nassir-0.0.5.tar.gz",
"has_sig": false,
"md5_digest": "ca856eda81e19df9c7e6d948e5ec5197",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6",
"size": 6925,
"upload_time": "2024-08-16T21:45:31",
"upload_time_iso_8601": "2024-08-16T21:45:31.894100Z",
"url": "https://files.pythonhosted.org/packages/a9/1e/9d5a48e7277210627418c061ca24aa7db3726638636c9ee7ec51403cd6ae/perception-nassir-0.0.5.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-08-16 21:45:31",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "M-Nassir",
"github_project": "perception",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "perception-nassir"
}