From 10d499b34419f943603afacad03a25eaf8f148fd Mon Sep 17 00:00:00 2001 From: CoprDistGit Date: Thu, 9 Mar 2023 16:53:19 +0000 Subject: automatic import of python-sklearn-nature-inspired-algorithms --- .gitignore | 1 + python-sklearn-nature-inspired-algorithms.spec | 386 +++++++++++++++++++++++++ sources | 1 + 3 files changed, 388 insertions(+) create mode 100644 python-sklearn-nature-inspired-algorithms.spec create mode 100644 sources diff --git a/.gitignore b/.gitignore index e69de29..a956af8 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1 @@ +/sklearn_nature_inspired_algorithms-0.11.0.tar.gz diff --git a/python-sklearn-nature-inspired-algorithms.spec b/python-sklearn-nature-inspired-algorithms.spec new file mode 100644 index 0000000..e973ec7 --- /dev/null +++ b/python-sklearn-nature-inspired-algorithms.spec @@ -0,0 +1,386 @@ +%global _empty_manifest_terminate_build 0 +Name: python-sklearn-nature-inspired-algorithms +Version: 0.11.0 +Release: 1 +Summary: Search using nature inspired algorithms over specified parameter values for an sklearn estimator. +License: MIT +URL: https://github.com/timzatko/Sklearn-Nature-Inspired-Algorithms +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/b8/a5/2f6b9c53291274b4247226728d230b482db2e31caee0ed201d32d7e9c20f/sklearn_nature_inspired_algorithms-0.11.0.tar.gz +BuildArch: noarch + +Requires: python3-toml +Requires: python3-scikit-learn +Requires: python3-numpy +Requires: python3-matplotlib +Requires: python3-seaborn +Requires: python3-pandas +Requires: python3-niapy +Requires: python3-scipy + +%description +# Nature-Inspired Algorithms for scikit-learn + +[![CI](https://github.com/timzatko/Sklearn-Nature-Inspired-Algorithms/workflows/CI/badge.svg?branch=master)](https://github.com/timzatko/Sklearn-Nature-Inspired-Algorithms/actions?query=workflow:CI+branch:master) +[![Maintainability](https://api.codeclimate.com/v1/badges/ed99e5c765bf5c95d716/maintainability)](https://codeclimate.com/github/timzatko/Sklearn-Nature-Inspired-Algorithms/maintainability) +![PyPI - Python Version](https://img.shields.io/pypi/pyversions/sklearn-nature-inspired-algorithms) +[![PyPI version](https://badge.fury.io/py/sklearn-nature-inspired-algorithms.svg)](https://pypi.org/project/sklearn-nature-inspired-algorithms/) +[![PyPI downloads](https://img.shields.io/pypi/dm/sklearn-nature-inspired-algorithms)](https://pypi.org/project/sklearn-nature-inspired-algorithms/) +[![Fedora package](https://img.shields.io/fedora/v/python3-sklearn-nature-inspired-algorithms?color=blue&label=Fedora%20Linux&logo=fedora)](https://src.fedoraproject.org/rpms/python-sklearn-nature-inspired-algorithms) + +Nature-inspired algorithms for hyper-parameter tuning of [scikit-learn](https://github.com/scikit-learn/scikit-learn) models. This package uses algorithms implementation from [NiaPy](https://github.com/NiaOrg/NiaPy). + +## Installation + +```shell script +$ pip install sklearn-nature-inspired-algorithms +``` + +To install this package on Fedora, run: + +```sh +$ dnf install python3-sklearn-nature-inspired-algorithms +``` + +## Usage + +The usage is similar to using sklearn's `GridSearchCV`. Refer to the [documentation](https://sklearn-nature-inspired-algorithms.readthedocs.io/en/stable/) for more detailed guides and more examples. + +```python +from sklearn_nature_inspired_algorithms.model_selection import NatureInspiredSearchCV +from sklearn.ensemble import RandomForestClassifier + +param_grid = { + 'n_estimators': range(20, 100, 20), + 'max_depth': range(2, 40, 2), + 'min_samples_split': range(2, 20, 2), + 'max_features': ["auto", "sqrt", "log2"], +} + +clf = RandomForestClassifier(random_state=42) + +nia_search = NatureInspiredSearchCV( + clf, + param_grid, + algorithm='hba', # hybrid bat algorithm + population_size=50, + max_n_gen=100, + max_stagnating_gen=10, + runs=3, + random_state=None, # or any number if you want same results on each run +) + +nia_search.fit(X_train, y_train) + +# the best params are stored in nia_search.best_params_ +# finally you can train your model with best params from nia search +new_clf = RandomForestClassifier(**nia_search.best_params_, random_state=42) +``` + +Also you plot the search process with _line plot_ or _violin plot_. + +```python +from sklearn_nature_inspired_algorithms.helpers import score_by_generation_lineplot, score_by_generation_violinplot + +# line plot will plot all of the runs, you can specify the metric to be plotted ('min', 'max', 'median', 'mean') +score_by_generation_lineplot(nia_search, metric='max') + +# in violin plot you need to specify the run to be plotted +score_by_generation_violinplot(nia_search, run=0) +``` + +Jupyter notebooks with full examples are available in [here](examples/notebooks). + +### Using a Custom Nature-Inspired Algorithm + +If you do not want to use any of the pre-defined algorithm configurations, you can use any algorithm from the [NiaPy](https://github.com/NiaOrg/NiaPy) collection. +This will allow you to have more control of the algorithm behavior. +Refer to their [documentation](https://niapy.readthedocs.io/en/latest/) and [examples](https://github.com/NiaOrg/NiaPy/tree/master/examples) for the usage. + +__Note:__ Use version >2.x.x of NiaPy package + +```python +from niapy.algorithms.basic import GeneticAlgorithm + +algorithm = GeneticAlgorithm() # when custom algorithm is provided random_state is ignored +algorithm.set_parameters(NP=50, Ts=5, Mr=0.25) + +nia_search = NatureInspiredSearchCV( + clf, + param_grid, + algorithm=algorithm, + population_size=50, + max_n_gen=100, + max_stagnating_gen=20, + runs=3, +) + +nia_search.fit(X_train, y_train) +``` + +## Contributing + +Detailed information on the contribution guidelines are in the [CONTRIBUTING.md](./CONTRIBUTING.md). + + +%package -n python3-sklearn-nature-inspired-algorithms +Summary: Search using nature inspired algorithms over specified parameter values for an sklearn estimator. +Provides: python-sklearn-nature-inspired-algorithms +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-sklearn-nature-inspired-algorithms +# Nature-Inspired Algorithms for scikit-learn + +[![CI](https://github.com/timzatko/Sklearn-Nature-Inspired-Algorithms/workflows/CI/badge.svg?branch=master)](https://github.com/timzatko/Sklearn-Nature-Inspired-Algorithms/actions?query=workflow:CI+branch:master) +[![Maintainability](https://api.codeclimate.com/v1/badges/ed99e5c765bf5c95d716/maintainability)](https://codeclimate.com/github/timzatko/Sklearn-Nature-Inspired-Algorithms/maintainability) +![PyPI - Python Version](https://img.shields.io/pypi/pyversions/sklearn-nature-inspired-algorithms) +[![PyPI version](https://badge.fury.io/py/sklearn-nature-inspired-algorithms.svg)](https://pypi.org/project/sklearn-nature-inspired-algorithms/) +[![PyPI downloads](https://img.shields.io/pypi/dm/sklearn-nature-inspired-algorithms)](https://pypi.org/project/sklearn-nature-inspired-algorithms/) +[![Fedora package](https://img.shields.io/fedora/v/python3-sklearn-nature-inspired-algorithms?color=blue&label=Fedora%20Linux&logo=fedora)](https://src.fedoraproject.org/rpms/python-sklearn-nature-inspired-algorithms) + +Nature-inspired algorithms for hyper-parameter tuning of [scikit-learn](https://github.com/scikit-learn/scikit-learn) models. This package uses algorithms implementation from [NiaPy](https://github.com/NiaOrg/NiaPy). + +## Installation + +```shell script +$ pip install sklearn-nature-inspired-algorithms +``` + +To install this package on Fedora, run: + +```sh +$ dnf install python3-sklearn-nature-inspired-algorithms +``` + +## Usage + +The usage is similar to using sklearn's `GridSearchCV`. Refer to the [documentation](https://sklearn-nature-inspired-algorithms.readthedocs.io/en/stable/) for more detailed guides and more examples. + +```python +from sklearn_nature_inspired_algorithms.model_selection import NatureInspiredSearchCV +from sklearn.ensemble import RandomForestClassifier + +param_grid = { + 'n_estimators': range(20, 100, 20), + 'max_depth': range(2, 40, 2), + 'min_samples_split': range(2, 20, 2), + 'max_features': ["auto", "sqrt", "log2"], +} + +clf = RandomForestClassifier(random_state=42) + +nia_search = NatureInspiredSearchCV( + clf, + param_grid, + algorithm='hba', # hybrid bat algorithm + population_size=50, + max_n_gen=100, + max_stagnating_gen=10, + runs=3, + random_state=None, # or any number if you want same results on each run +) + +nia_search.fit(X_train, y_train) + +# the best params are stored in nia_search.best_params_ +# finally you can train your model with best params from nia search +new_clf = RandomForestClassifier(**nia_search.best_params_, random_state=42) +``` + +Also you plot the search process with _line plot_ or _violin plot_. + +```python +from sklearn_nature_inspired_algorithms.helpers import score_by_generation_lineplot, score_by_generation_violinplot + +# line plot will plot all of the runs, you can specify the metric to be plotted ('min', 'max', 'median', 'mean') +score_by_generation_lineplot(nia_search, metric='max') + +# in violin plot you need to specify the run to be plotted +score_by_generation_violinplot(nia_search, run=0) +``` + +Jupyter notebooks with full examples are available in [here](examples/notebooks). + +### Using a Custom Nature-Inspired Algorithm + +If you do not want to use any of the pre-defined algorithm configurations, you can use any algorithm from the [NiaPy](https://github.com/NiaOrg/NiaPy) collection. +This will allow you to have more control of the algorithm behavior. +Refer to their [documentation](https://niapy.readthedocs.io/en/latest/) and [examples](https://github.com/NiaOrg/NiaPy/tree/master/examples) for the usage. + +__Note:__ Use version >2.x.x of NiaPy package + +```python +from niapy.algorithms.basic import GeneticAlgorithm + +algorithm = GeneticAlgorithm() # when custom algorithm is provided random_state is ignored +algorithm.set_parameters(NP=50, Ts=5, Mr=0.25) + +nia_search = NatureInspiredSearchCV( + clf, + param_grid, + algorithm=algorithm, + population_size=50, + max_n_gen=100, + max_stagnating_gen=20, + runs=3, +) + +nia_search.fit(X_train, y_train) +``` + +## Contributing + +Detailed information on the contribution guidelines are in the [CONTRIBUTING.md](./CONTRIBUTING.md). + + +%package help +Summary: Development documents and examples for sklearn-nature-inspired-algorithms +Provides: python3-sklearn-nature-inspired-algorithms-doc +%description help +# Nature-Inspired Algorithms for scikit-learn + +[![CI](https://github.com/timzatko/Sklearn-Nature-Inspired-Algorithms/workflows/CI/badge.svg?branch=master)](https://github.com/timzatko/Sklearn-Nature-Inspired-Algorithms/actions?query=workflow:CI+branch:master) +[![Maintainability](https://api.codeclimate.com/v1/badges/ed99e5c765bf5c95d716/maintainability)](https://codeclimate.com/github/timzatko/Sklearn-Nature-Inspired-Algorithms/maintainability) +![PyPI - Python Version](https://img.shields.io/pypi/pyversions/sklearn-nature-inspired-algorithms) +[![PyPI version](https://badge.fury.io/py/sklearn-nature-inspired-algorithms.svg)](https://pypi.org/project/sklearn-nature-inspired-algorithms/) +[![PyPI downloads](https://img.shields.io/pypi/dm/sklearn-nature-inspired-algorithms)](https://pypi.org/project/sklearn-nature-inspired-algorithms/) +[![Fedora package](https://img.shields.io/fedora/v/python3-sklearn-nature-inspired-algorithms?color=blue&label=Fedora%20Linux&logo=fedora)](https://src.fedoraproject.org/rpms/python-sklearn-nature-inspired-algorithms) + +Nature-inspired algorithms for hyper-parameter tuning of [scikit-learn](https://github.com/scikit-learn/scikit-learn) models. This package uses algorithms implementation from [NiaPy](https://github.com/NiaOrg/NiaPy). + +## Installation + +```shell script +$ pip install sklearn-nature-inspired-algorithms +``` + +To install this package on Fedora, run: + +```sh +$ dnf install python3-sklearn-nature-inspired-algorithms +``` + +## Usage + +The usage is similar to using sklearn's `GridSearchCV`. Refer to the [documentation](https://sklearn-nature-inspired-algorithms.readthedocs.io/en/stable/) for more detailed guides and more examples. + +```python +from sklearn_nature_inspired_algorithms.model_selection import NatureInspiredSearchCV +from sklearn.ensemble import RandomForestClassifier + +param_grid = { + 'n_estimators': range(20, 100, 20), + 'max_depth': range(2, 40, 2), + 'min_samples_split': range(2, 20, 2), + 'max_features': ["auto", "sqrt", "log2"], +} + +clf = RandomForestClassifier(random_state=42) + +nia_search = NatureInspiredSearchCV( + clf, + param_grid, + algorithm='hba', # hybrid bat algorithm + population_size=50, + max_n_gen=100, + max_stagnating_gen=10, + runs=3, + random_state=None, # or any number if you want same results on each run +) + +nia_search.fit(X_train, y_train) + +# the best params are stored in nia_search.best_params_ +# finally you can train your model with best params from nia search +new_clf = RandomForestClassifier(**nia_search.best_params_, random_state=42) +``` + +Also you plot the search process with _line plot_ or _violin plot_. + +```python +from sklearn_nature_inspired_algorithms.helpers import score_by_generation_lineplot, score_by_generation_violinplot + +# line plot will plot all of the runs, you can specify the metric to be plotted ('min', 'max', 'median', 'mean') +score_by_generation_lineplot(nia_search, metric='max') + +# in violin plot you need to specify the run to be plotted +score_by_generation_violinplot(nia_search, run=0) +``` + +Jupyter notebooks with full examples are available in [here](examples/notebooks). + +### Using a Custom Nature-Inspired Algorithm + +If you do not want to use any of the pre-defined algorithm configurations, you can use any algorithm from the [NiaPy](https://github.com/NiaOrg/NiaPy) collection. +This will allow you to have more control of the algorithm behavior. +Refer to their [documentation](https://niapy.readthedocs.io/en/latest/) and [examples](https://github.com/NiaOrg/NiaPy/tree/master/examples) for the usage. + +__Note:__ Use version >2.x.x of NiaPy package + +```python +from niapy.algorithms.basic import GeneticAlgorithm + +algorithm = GeneticAlgorithm() # when custom algorithm is provided random_state is ignored +algorithm.set_parameters(NP=50, Ts=5, Mr=0.25) + +nia_search = NatureInspiredSearchCV( + clf, + param_grid, + algorithm=algorithm, + population_size=50, + max_n_gen=100, + max_stagnating_gen=20, + runs=3, +) + +nia_search.fit(X_train, y_train) +``` + +## Contributing + +Detailed information on the contribution guidelines are in the [CONTRIBUTING.md](./CONTRIBUTING.md). + + +%prep +%autosetup -n sklearn-nature-inspired-algorithms-0.11.0 + +%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-sklearn-nature-inspired-algorithms -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Thu Mar 09 2023 Python_Bot - 0.11.0-1 +- Package Spec generated diff --git a/sources b/sources new file mode 100644 index 0000000..86237e8 --- /dev/null +++ b/sources @@ -0,0 +1 @@ +ffb0040fd72426306ac03b555b989714 sklearn_nature_inspired_algorithms-0.11.0.tar.gz -- cgit v1.2.3