%global _empty_manifest_terminate_build 0 Name: python-anko Version: 0.2.8 Release: 1 Summary: Toolkit for performing anomaly detection algorithm on time series. License: MIT URL: https://github.com/tanlin2013/anko Source0: https://mirrors.aliyun.com/pypi/web/packages/67/e0/ee655313e2954e1865a8f1fe6d544d0912e7dc9fd838adcd681786fc3076/anko-0.2.8.tar.gz BuildArch: noarch %description ![](docs/anko_logo.png) # anko Toolkit for performing anomaly detection algorithm on 1D time series based on numpy, scipy. Conventional approaches that based on statistical analysis have been implemented, with mainly two approaches included: 1. Normal Distribution Data samples are presumably been generated by normal distribution, and therefore anomalous data points can be targeted by analysing the standard deviation. 2. Fitting Ansatz Data samples are fitted by several ansatzs, and in accordance with the residual, anomalous data points can be selected. Regarding model selections, models are adopted dynamically by performing normal test and by computing the (Akaike/Bayesian) information criterion. By default, the algorithm will first try to fit in the data into normal distribution, if it passed [normal test](https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.normaltest.html). If this attempt suffers from the loss of convergence or it did not pass [normal test](https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.normaltest.html) from begining, then the algorithm will pass data into the second methods and try to execute all the available fitting ansatzs simultaneously. The best fitting ansatz will be selected by information criterion, and finally the algorithm will pick up anomalous points in accordance with the residual. [click here to see all available methods.](https://tanlin2013.github.io/anko/build/html/anko.html#anko.anomaly_detector.AnomalyDetector.models) Future development will also include methods that are based on deep learning techniques, such as isolation forest, support vector machine, etc. ## Requirements * python >= 3.6.0 * numpy >= 1.16.4 * scipy >= 1.2.1 ## Installation ``` pip install anko ``` For current release version please refer to [PyPI - anko homepage](https://pypi.org/project/anko/). ## Documentation For details about anko API, see the [reference documentation](https://tanlin2013.github.io/anko/index.html). ## Jupyter Notebook Tutorial (in dev) Run **anko_tutorial.ipynb** on your local Jupyter Notebook or host on [google colab](https://colab.research.google.com/github/tanlin2013/anko/blob/master/anko_tutorial.ipynb). ## Basic Usage 1. Call AnomalyDetector ``` from anko.anomaly_detector import AnomalyDetector agent = AnomalyDetector(t, series) ``` 2. Define policies and threshold values (optional) ``` agent.thres_params["linregress_res"] = 1.5 agent.apply_policies["z_normalization"] = True agent.apply_policies["info_criterion"] = 'AIC' ``` for the use of [**AnomalyDetector.thres_params**](https://tanlin2013.github.io/anko/build/html/anko.html#anko.anomaly_detector.AnomalyDetector.thres_params) and [**AnomalyDetector.apply_policies**](https://tanlin2013.github.io/anko/build/html/anko.html#anko.anomaly_detector.AnomalyDetector.apply_policies), please refer to the documentation. 3. Run check ``` check_result = agent.check() ``` The type of output **check_result** is [**CheckResult**](https://tanlin2013.github.io/anko/build/html/anko.html#anko.anomaly_detector.CheckResult), which is basically a dictionary that contains the following attributes: > model: 'increase_step_func' > popt: [220.3243250055105, 249.03846355234577, 74.00000107457113] > perr: [0.4247789247961187, 0.7166253174634686, 0.0] > anomalous_data: [(59, 209)] > residual: [10.050378152592119] > extra_info: ['Info: AnomalyDetector is using z normalization.', 'Info: There are more than 1 discontinuous points detected.'] * model (str): The best fit model been selected by algorithm. * popt (list): Estimated fitting parameters. * perr (list): Corresponding errors of popt. * anomalous_data (list\[tuple(float, float)\]): Return a list of anomalous data points (t, series(t)), or an empty list if all data points are in order. * residual (list): Residual of anomalous data. * extra_info (list): All convergence errors, warnings, informations during the execution are stored here. ## Run Test ``` python -m unittest discover -s test -p '*_test.py' ``` or simply ``` make test ``` %package -n python3-anko Summary: Toolkit for performing anomaly detection algorithm on time series. Provides: python-anko BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-anko ![](docs/anko_logo.png) # anko Toolkit for performing anomaly detection algorithm on 1D time series based on numpy, scipy. Conventional approaches that based on statistical analysis have been implemented, with mainly two approaches included: 1. Normal Distribution Data samples are presumably been generated by normal distribution, and therefore anomalous data points can be targeted by analysing the standard deviation. 2. Fitting Ansatz Data samples are fitted by several ansatzs, and in accordance with the residual, anomalous data points can be selected. Regarding model selections, models are adopted dynamically by performing normal test and by computing the (Akaike/Bayesian) information criterion. By default, the algorithm will first try to fit in the data into normal distribution, if it passed [normal test](https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.normaltest.html). If this attempt suffers from the loss of convergence or it did not pass [normal test](https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.normaltest.html) from begining, then the algorithm will pass data into the second methods and try to execute all the available fitting ansatzs simultaneously. The best fitting ansatz will be selected by information criterion, and finally the algorithm will pick up anomalous points in accordance with the residual. [click here to see all available methods.](https://tanlin2013.github.io/anko/build/html/anko.html#anko.anomaly_detector.AnomalyDetector.models) Future development will also include methods that are based on deep learning techniques, such as isolation forest, support vector machine, etc. ## Requirements * python >= 3.6.0 * numpy >= 1.16.4 * scipy >= 1.2.1 ## Installation ``` pip install anko ``` For current release version please refer to [PyPI - anko homepage](https://pypi.org/project/anko/). ## Documentation For details about anko API, see the [reference documentation](https://tanlin2013.github.io/anko/index.html). ## Jupyter Notebook Tutorial (in dev) Run **anko_tutorial.ipynb** on your local Jupyter Notebook or host on [google colab](https://colab.research.google.com/github/tanlin2013/anko/blob/master/anko_tutorial.ipynb). ## Basic Usage 1. Call AnomalyDetector ``` from anko.anomaly_detector import AnomalyDetector agent = AnomalyDetector(t, series) ``` 2. Define policies and threshold values (optional) ``` agent.thres_params["linregress_res"] = 1.5 agent.apply_policies["z_normalization"] = True agent.apply_policies["info_criterion"] = 'AIC' ``` for the use of [**AnomalyDetector.thres_params**](https://tanlin2013.github.io/anko/build/html/anko.html#anko.anomaly_detector.AnomalyDetector.thres_params) and [**AnomalyDetector.apply_policies**](https://tanlin2013.github.io/anko/build/html/anko.html#anko.anomaly_detector.AnomalyDetector.apply_policies), please refer to the documentation. 3. Run check ``` check_result = agent.check() ``` The type of output **check_result** is [**CheckResult**](https://tanlin2013.github.io/anko/build/html/anko.html#anko.anomaly_detector.CheckResult), which is basically a dictionary that contains the following attributes: > model: 'increase_step_func' > popt: [220.3243250055105, 249.03846355234577, 74.00000107457113] > perr: [0.4247789247961187, 0.7166253174634686, 0.0] > anomalous_data: [(59, 209)] > residual: [10.050378152592119] > extra_info: ['Info: AnomalyDetector is using z normalization.', 'Info: There are more than 1 discontinuous points detected.'] * model (str): The best fit model been selected by algorithm. * popt (list): Estimated fitting parameters. * perr (list): Corresponding errors of popt. * anomalous_data (list\[tuple(float, float)\]): Return a list of anomalous data points (t, series(t)), or an empty list if all data points are in order. * residual (list): Residual of anomalous data. * extra_info (list): All convergence errors, warnings, informations during the execution are stored here. ## Run Test ``` python -m unittest discover -s test -p '*_test.py' ``` or simply ``` make test ``` %package help Summary: Development documents and examples for anko Provides: python3-anko-doc %description help ![](docs/anko_logo.png) # anko Toolkit for performing anomaly detection algorithm on 1D time series based on numpy, scipy. Conventional approaches that based on statistical analysis have been implemented, with mainly two approaches included: 1. Normal Distribution Data samples are presumably been generated by normal distribution, and therefore anomalous data points can be targeted by analysing the standard deviation. 2. Fitting Ansatz Data samples are fitted by several ansatzs, and in accordance with the residual, anomalous data points can be selected. Regarding model selections, models are adopted dynamically by performing normal test and by computing the (Akaike/Bayesian) information criterion. By default, the algorithm will first try to fit in the data into normal distribution, if it passed [normal test](https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.normaltest.html). If this attempt suffers from the loss of convergence or it did not pass [normal test](https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.normaltest.html) from begining, then the algorithm will pass data into the second methods and try to execute all the available fitting ansatzs simultaneously. The best fitting ansatz will be selected by information criterion, and finally the algorithm will pick up anomalous points in accordance with the residual. [click here to see all available methods.](https://tanlin2013.github.io/anko/build/html/anko.html#anko.anomaly_detector.AnomalyDetector.models) Future development will also include methods that are based on deep learning techniques, such as isolation forest, support vector machine, etc. ## Requirements * python >= 3.6.0 * numpy >= 1.16.4 * scipy >= 1.2.1 ## Installation ``` pip install anko ``` For current release version please refer to [PyPI - anko homepage](https://pypi.org/project/anko/). ## Documentation For details about anko API, see the [reference documentation](https://tanlin2013.github.io/anko/index.html). ## Jupyter Notebook Tutorial (in dev) Run **anko_tutorial.ipynb** on your local Jupyter Notebook or host on [google colab](https://colab.research.google.com/github/tanlin2013/anko/blob/master/anko_tutorial.ipynb). ## Basic Usage 1. Call AnomalyDetector ``` from anko.anomaly_detector import AnomalyDetector agent = AnomalyDetector(t, series) ``` 2. Define policies and threshold values (optional) ``` agent.thres_params["linregress_res"] = 1.5 agent.apply_policies["z_normalization"] = True agent.apply_policies["info_criterion"] = 'AIC' ``` for the use of [**AnomalyDetector.thres_params**](https://tanlin2013.github.io/anko/build/html/anko.html#anko.anomaly_detector.AnomalyDetector.thres_params) and [**AnomalyDetector.apply_policies**](https://tanlin2013.github.io/anko/build/html/anko.html#anko.anomaly_detector.AnomalyDetector.apply_policies), please refer to the documentation. 3. Run check ``` check_result = agent.check() ``` The type of output **check_result** is [**CheckResult**](https://tanlin2013.github.io/anko/build/html/anko.html#anko.anomaly_detector.CheckResult), which is basically a dictionary that contains the following attributes: > model: 'increase_step_func' > popt: [220.3243250055105, 249.03846355234577, 74.00000107457113] > perr: [0.4247789247961187, 0.7166253174634686, 0.0] > anomalous_data: [(59, 209)] > residual: [10.050378152592119] > extra_info: ['Info: AnomalyDetector is using z normalization.', 'Info: There are more than 1 discontinuous points detected.'] * model (str): The best fit model been selected by algorithm. * popt (list): Estimated fitting parameters. * perr (list): Corresponding errors of popt. * anomalous_data (list\[tuple(float, float)\]): Return a list of anomalous data points (t, series(t)), or an empty list if all data points are in order. * residual (list): Residual of anomalous data. * extra_info (list): All convergence errors, warnings, informations during the execution are stored here. ## Run Test ``` python -m unittest discover -s test -p '*_test.py' ``` or simply ``` make test ``` %prep %autosetup -n anko-0.2.8 %build %py3_build %install %py3_install install -d -m755 %{buildroot}/%{_pkgdocdir} if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi pushd %{buildroot} if [ -d usr/lib ]; then find usr/lib -type f -printf "\"/%h/%f\"\n" >> filelist.lst fi if [ -d usr/lib64 ]; then find usr/lib64 -type f -printf "\"/%h/%f\"\n" >> filelist.lst fi if [ -d usr/bin ]; then find usr/bin -type f -printf "\"/%h/%f\"\n" >> filelist.lst fi if [ -d usr/sbin ]; then find usr/sbin -type f -printf "\"/%h/%f\"\n" >> filelist.lst fi touch doclist.lst if [ -d usr/share/man ]; then find usr/share/man -type f -printf "\"/%h/%f.gz\"\n" >> doclist.lst fi popd mv %{buildroot}/filelist.lst . mv %{buildroot}/doclist.lst . %files -n python3-anko -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Tue Jun 20 2023 Python_Bot - 0.2.8-1 - Package Spec generated