{ "info": { "author": "Masafumi Abeta", "author_email": "ground0state@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8" ], "description": "pyanom\n======\n\n|image0| |image1|\n\nThis library is Python projects for anomaly detection. This contains\nthese techniques.\n\n- Kullback-Leibler desity estimation\n- Singular spectrum analysis\n- Graphical lasso\n- CUMSUM anomaly detection\n- Hoteling T2\n- Directional data anomaly detection\n\nREQUIREMENTS\n------------\n\n- numpy\n- pandas\n- scikit-learn\n- scipy\n\nINSTALLATION\n------------\n\n.. code:: bash\n\n pip install pyanom\n\nUSAGE\n-----\n\nKullback-Leibler desity estimation\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n.. code:: python\n\n import numpy as np\n from pyanom.density_ratio_estimation import KLDensityRatioEstimator\n\n X_normal = np.loadtxt(\"./data/normal_data.csv\", delimiter=\",\")\n X_error = np.loadtxt(\"./data/error_data.csv\", delimiter=\",\")\n\n model = KLDensityRatioEstimator(\n band_width=h, lr=0.001, max_iter=100000)\n model.fit(X_normal, X_error)\n anomaly_score = model.score(X_normal, X_error)\n\nSingular spectrum analysis\n~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n.. code:: python\n\n import numpy as np\n from pyanom.subspace_methods import SSA\n\n y_error = np.loadtxt(\"./data/timeseries_error2.csv\", delimiter=\",\")\n\n model = SSA(window_size=50, trajectory_n=25, trajectory_pattern=3, test_n=25, test_pattern=2, lag=25)\n model.fit(y_error)\n anomaly_score = model.score()\n\nGraphical lasso\n~~~~~~~~~~~~~~~\n\n.. code:: python\n\n import numpy as np\n from pyanom.structure_learning import GraphicalLasso\n\n X_normal = np.loadtxt(\"./data/normal_data.csv\", delimiter=\",\")\n X_error = np.loadtxt(\"./data/error_data.csv\", delimiter=\",\")\n\n model = GraphicalLasso(rho=0.1)\n model.fit(X_normal)\n anomaly_score = model.score(X_error)\n\nDirect learning sparse changes\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n.. code:: python\n\n from pyanom.structure_learning import DirectLearningSparseChanges\n\n model = DirectLearningSparseChanges(\n lambda1=0.1, lambda2=0.3, max_iter=10000)\n model.fit(X_normal, X_error)\n pmatrix_diff = model.get_sparse_changes()\n\nCUSUM anomaly detection\n~~~~~~~~~~~~~~~~~~~~~~~\n\n.. code:: python\n\n import numpy as np\n from pyanom.outlier_detection import CAD\n\n y_normal = np.loadtxt(\n \"./data/timeseries_normal.csv\", delimiter=\",\").reshape(-1, 1)\n y_error = np.loadtxt(\n \"./data/timeseries_error.csv\", delimiter=\",\").reshape(-1, 1)\n\n model = CAD(threshold=1.0)\n model.fit(y_normal)\n anomaly_score = model.score(y_error)\n\nHoteling T2\n~~~~~~~~~~~\n\n.. code:: python\n\n import numpy as np\n from pyanom.outlier_detection import HotelingT2\n\n X_normal = np.loadtxt(\"./data/normal_data.csv\", delimiter=\",\")\n X_error = np.loadtxt(\"./data/error_data.csv\", delimiter=\",\")\n\n model = HotelingT2()\n model.fit(X_normal)\n anomaly_score = model.score(X_error)\n\nDirectional data anomaly DirectionalDataAnomalyDetection\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n.. code:: python\n\n import numpy as np\n from pyanom.outlier_detection import AD3\n\n X_normal = np.loadtxt(\n \"./data/normal_direction_data.csv\", delimiter=\",\")\n X_error = np.loadtxt(\"./data/error_direction_data.csv\", delimiter=\",\")\n\n model = AD3()\n model.fit(X_normal, normalize=True)\n anomaly_score = model.score(X_error)\n\n.. |image0| image:: https://img.shields.io/badge/python-3.6%7C3.7%7C3.8-green?style=plastic\n.. |image1| image:: https://img.shields.io/badge/dynamic/json.svg?label=version&colorB=5f9ea0&query=$.version&uri=https://raw.githubusercontent.com/ground0state/pyanom/master/package.json&style=plastic\n\n\n\n", "description_content_type": "text/x-rst", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/ground0state/pyanom", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "pyanom", "package_url": "https://pypi.org/project/pyanom/", "platform": "", "project_url": "https://pypi.org/project/pyanom/", "project_urls": { "Homepage": "https://github.com/ground0state/pyanom" }, "release_url": "https://pypi.org/project/pyanom/0.0.2b1/", "requires_dist": [ "numpy", "pandas", "scikit-learn", "scipy" ], "requires_python": "", "summary": "Anomaly detection package.", "version": "0.0.2b1", "yanked": false, "yanked_reason": null }, "last_serial": 11383081, "releases": { "0.0.1b1": [ { "comment_text": "", "digests": { "md5": "e1cc4a47e200bd16d1a69779298c2795", "sha256": "e58fd2f247db79e4b923ce41cfe5f5ef83b485c1cdda1d2c23a08a16ee44182e" }, "downloads": -1, "filename": "pyanom-0.0.1b1-py3-none-any.whl", "has_sig": false, "md5_digest": "e1cc4a47e200bd16d1a69779298c2795", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8666, "upload_time": "2019-10-28T15:43:57", "upload_time_iso_8601": "2019-10-28T15:43:57.014974Z", "url": "https://files.pythonhosted.org/packages/23/c7/76885c816be8d65ca08a111eafcbfe7f322fb36eaa54413bad6cc5e64d26/pyanom-0.0.1b1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "bed354cf5433fe66d9ed20fba868ef8f", "sha256": "8c4393a205e44e576db203317d53404816b9307cc273947fd20937fc99dd8ac0" }, "downloads": -1, "filename": "pyanom-0.0.1b1.tar.gz", "has_sig": false, "md5_digest": "bed354cf5433fe66d9ed20fba868ef8f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8087, "upload_time": "2019-10-28T15:43:59", "upload_time_iso_8601": "2019-10-28T15:43:59.677480Z", "url": "https://files.pythonhosted.org/packages/c3/64/94c86f1f38f3a532c57d85878a199ef5ab2f854a962d0eb9cc9e892fffcf/pyanom-0.0.1b1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.2b1": [ { "comment_text": "", "digests": { "md5": "56ca344a84335cb60dd0e0027aefbdd8", "sha256": "0dc0801fe0528e4c4d306e33692a96eea9ff070a44fc2ffc6ec00200004c8298" }, "downloads": -1, "filename": "pyanom-0.0.2b1-py3-none-any.whl", "has_sig": false, "md5_digest": "56ca344a84335cb60dd0e0027aefbdd8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 12353, "upload_time": "2021-09-07T08:19:34", "upload_time_iso_8601": "2021-09-07T08:19:34.947506Z", "url": "https://files.pythonhosted.org/packages/ff/fb/7f145a626a433d66d97784b7a07e0e24678346810ede26852549a34ba5e8/pyanom-0.0.2b1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "c2fdfbabc02375ccdc71a38fcf845fb1", "sha256": "f4c476040f1a72f83742933bd49db2c833ac58f88f48e76f3db97729bdf2546c" }, "downloads": -1, "filename": "pyanom-0.0.2b1.tar.gz", "has_sig": false, "md5_digest": "c2fdfbabc02375ccdc71a38fcf845fb1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10376, "upload_time": "2021-09-07T08:19:36", "upload_time_iso_8601": "2021-09-07T08:19:36.525371Z", "url": "https://files.pythonhosted.org/packages/a5/f8/e422d15cb2812b94125523472dc40a9aa00564722bcebe8b7ac4042c9c02/pyanom-0.0.2b1.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "56ca344a84335cb60dd0e0027aefbdd8", "sha256": "0dc0801fe0528e4c4d306e33692a96eea9ff070a44fc2ffc6ec00200004c8298" }, "downloads": -1, "filename": "pyanom-0.0.2b1-py3-none-any.whl", "has_sig": false, "md5_digest": "56ca344a84335cb60dd0e0027aefbdd8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 12353, "upload_time": "2021-09-07T08:19:34", "upload_time_iso_8601": "2021-09-07T08:19:34.947506Z", "url": "https://files.pythonhosted.org/packages/ff/fb/7f145a626a433d66d97784b7a07e0e24678346810ede26852549a34ba5e8/pyanom-0.0.2b1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "c2fdfbabc02375ccdc71a38fcf845fb1", "sha256": "f4c476040f1a72f83742933bd49db2c833ac58f88f48e76f3db97729bdf2546c" }, "downloads": -1, "filename": "pyanom-0.0.2b1.tar.gz", "has_sig": false, "md5_digest": "c2fdfbabc02375ccdc71a38fcf845fb1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10376, "upload_time": "2021-09-07T08:19:36", "upload_time_iso_8601": "2021-09-07T08:19:36.525371Z", "url": "https://files.pythonhosted.org/packages/a5/f8/e422d15cb2812b94125523472dc40a9aa00564722bcebe8b7ac4042c9c02/pyanom-0.0.2b1.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }