diff options
Diffstat (limited to 'python-anko.spec')
-rw-r--r-- | python-anko.spec | 318 |
1 files changed, 318 insertions, 0 deletions
diff --git a/python-anko.spec b/python-anko.spec new file mode 100644 index 0000000..9ff5b1a --- /dev/null +++ b/python-anko.spec @@ -0,0 +1,318 @@ +%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 + +# 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 + +# 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 + +# 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 <Python_Bot@openeuler.org> - 0.2.8-1 +- Package Spec generated |