diff options
| author | CoprDistGit <infra@openeuler.org> | 2023-05-05 12:47:25 +0000 |
|---|---|---|
| committer | CoprDistGit <infra@openeuler.org> | 2023-05-05 12:47:25 +0000 |
| commit | 1cbed2bec166b495bc4a0429fb08f7530f049c37 (patch) | |
| tree | 658712fb0518d279f129eb07b295c60ddbdf0fbd | |
| parent | 133c33978b9270a1e381064ef14c514e1a1105fa (diff) | |
automatic import of python-pyglmnetopeneuler20.03
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | python-pyglmnet.spec | 402 | ||||
| -rw-r--r-- | sources | 1 |
3 files changed, 404 insertions, 0 deletions
@@ -0,0 +1 @@ +/pyglmnet-1.1.tar.gz diff --git a/python-pyglmnet.spec b/python-pyglmnet.spec new file mode 100644 index 0000000..9c1fe62 --- /dev/null +++ b/python-pyglmnet.spec @@ -0,0 +1,402 @@ +%global _empty_manifest_terminate_build 0 +Name: python-pyglmnet +Version: 1.1 +Release: 1 +Summary: Elastic-net regularized generalized linear models. +License: MIT +URL: http://glm-tools.github.io/pyglmnet/ +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/b3/b4/862550f7a6289752abd9c5ceb534259530c57a930371485c0704944ec1d4/pyglmnet-1.1.tar.gz +BuildArch: noarch + + +%description +A python implementation of elastic-net regularized generalized linear models +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +|License| |Travis| |Codecov| |Circle| |Gitter| |DOI| +`[Documentation (stable version)]`_ `[Documentation (development version)]`_ +`Generalized linear +models <https://en.wikipedia.org/wiki/Generalized_linear_model>`__ are +well-established tools for regression and classification and are widely +applied across the sciences, economics, business, and finance. They are +uniquely identifiable due to their convex loss and easy to interpret due +to their point-wise non-linearities and well-defined noise models. +In the era of exploratory data analyses with a large number of predictor +variables, it is important to regularize. Regularization prevents +overfitting by penalizing the negative log likelihood and can be used to +articulate prior knowledge about the parameters in a structured form. +Despite the attractiveness of regularized GLMs, the available tools in +the Python data science eco-system are highly fragmented. More +specifically, +- `statsmodels <http://statsmodels.sourceforge.net/devel/glm.html>`__ + provides a wide range of link functions but no regularization. +- `scikit-learn <http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.ElasticNet.html>`__ + provides elastic net regularization but only for linear models. +- `lightning <https://github.com/scikit-learn-contrib/lightning>`__ + provides elastic net and group lasso regularization, but only for + linear and logistic regression. +**Pyglmnet** is a response to this fragmentation. It runs on Python 3.5+, +and here are some of the highlights. +- Pyglmnet provides a wide range of noise models (and paired canonical + link functions): ``'gaussian'``, ``'binomial'``, ``'probit'``, + ``'gamma'``, '``poisson``', and ``'softplus'``. +- It supports a wide range of regularizers: ridge, lasso, elastic net, + `group + lasso <https://en.wikipedia.org/wiki/Proximal_gradient_methods_for_learning#Group_lasso>`__, + and `Tikhonov + regularization <https://en.wikipedia.org/wiki/Tikhonov_regularization>`__. +- Pyglmnet's API is designed to be compatible with scikit-learn, so you + can deploy ``Pipeline`` tools such as ``GridSearchCV()`` and + ``cross_val_score()``. +- We follow the same approach and notations as in `Friedman, J., + Hastie, T., & Tibshirani, R. + (2010) <https://core.ac.uk/download/files/153/6287975.pdf>`__ and the + accompanying widely popular `R + package <https://web.stanford.edu/~hastie/glmnet/glmnet_alpha.html>`__. +- We have implemented a cyclical coordinate descent optimizer with + Newton update, active sets, update caching, and warm restarts. This + optimization approach is identical to the one used in R package. +- A number of Python wrappers exist for the R glmnet package (e.g. + `here <https://github.com/civisanalytics/python-glmnet>`__ and + `here <https://github.com/dwf/glmnet-python>`__) but in contrast to + these, Pyglmnet is a pure python implementation. Therefore, it is + easy to modify and introduce additional noise models and regularizers + in the future. +Installation +~~~~~~~~~~~~ +Install the stable PyPI version with ``pip`` + $ pip install pyglmnet +For the bleeding edge development version: +Clone the repository. + $ pip install https://api.github.com/repos/glm-tools/pyglmnet/zipball/master +Getting Started +~~~~~~~~~~~~~~~ +Here is an example on how to use the ``GLM`` estimator. + import numpy as np + import scipy.sparse as sps + from pyglmnet import GLM, simulate_glm + n_samples, n_features = 1000, 100 + distr = 'poisson' + # sample a sparse model + beta0 = np.random.rand() + beta = np.random.random(n_features) + beta[beta < 0.9] = 0 + # simulate data + Xtrain = np.random.normal(0.0, 1.0, [n_samples, n_features]) + ytrain = simulate_glm('poisson', beta0, beta, Xtrain) + Xtest = np.random.normal(0.0, 1.0, [n_samples, n_features]) + ytest = simulate_glm('poisson', beta0, beta, Xtest) + # create an instance of the GLM class + glm = GLM(distr='poisson', score_metric='deviance') + # fit the model on the training data + glm.fit(Xtrain, ytrain) + # predict using fitted model on the test data + yhat = glm.predict(Xtest) + # score the model on test data + deviance = glm.score(Xtest, ytest) +`More pyglmnet examples and use +cases <http://glm-tools.github.io/pyglmnet/auto_examples/index.html>`__. +Tutorial +~~~~~~~~ +Here is an `extensive +tutorial <http://glm-tools.github.io/pyglmnet/tutorial.html>`__ on GLMs, +optimization and pseudo-code. +Here are +`slides <https://pavanramkumar.github.io/pydata-chicago-2016>`__ from a +talk at `PyData Chicago +2016 <http://pydata.org/chicago2016/schedule/presentation/15/>`__, +corresponding `tutorial +notebooks <http://github.com/pavanramkumar/pydata-chicago-2016>`__ and a +`video <https://www.youtube.com/watch?v=zXec96KD1uA>`__. +How to contribute? +~~~~~~~~~~~~~~~~~~ +We welcome pull requests. Please see our `developer documentation +page <http://glm-tools.github.io/pyglmnet/developers.html>`__ for more +details. +Acknowledgments +~~~~~~~~~~~~~~~ +- `Konrad Kording <http://kordinglab.com>`__ for funding and support +- `Sara + Solla <http://www.physics.northwestern.edu/people/joint-faculty/sara-solla.html>`__ + for masterful GLM lectures +License +~~~~~~~ +MIT License Copyright (c) 2016-2019 Pavan Ramkumar + +%package -n python3-pyglmnet +Summary: Elastic-net regularized generalized linear models. +Provides: python-pyglmnet +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-pyglmnet +A python implementation of elastic-net regularized generalized linear models +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +|License| |Travis| |Codecov| |Circle| |Gitter| |DOI| +`[Documentation (stable version)]`_ `[Documentation (development version)]`_ +`Generalized linear +models <https://en.wikipedia.org/wiki/Generalized_linear_model>`__ are +well-established tools for regression and classification and are widely +applied across the sciences, economics, business, and finance. They are +uniquely identifiable due to their convex loss and easy to interpret due +to their point-wise non-linearities and well-defined noise models. +In the era of exploratory data analyses with a large number of predictor +variables, it is important to regularize. Regularization prevents +overfitting by penalizing the negative log likelihood and can be used to +articulate prior knowledge about the parameters in a structured form. +Despite the attractiveness of regularized GLMs, the available tools in +the Python data science eco-system are highly fragmented. More +specifically, +- `statsmodels <http://statsmodels.sourceforge.net/devel/glm.html>`__ + provides a wide range of link functions but no regularization. +- `scikit-learn <http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.ElasticNet.html>`__ + provides elastic net regularization but only for linear models. +- `lightning <https://github.com/scikit-learn-contrib/lightning>`__ + provides elastic net and group lasso regularization, but only for + linear and logistic regression. +**Pyglmnet** is a response to this fragmentation. It runs on Python 3.5+, +and here are some of the highlights. +- Pyglmnet provides a wide range of noise models (and paired canonical + link functions): ``'gaussian'``, ``'binomial'``, ``'probit'``, + ``'gamma'``, '``poisson``', and ``'softplus'``. +- It supports a wide range of regularizers: ridge, lasso, elastic net, + `group + lasso <https://en.wikipedia.org/wiki/Proximal_gradient_methods_for_learning#Group_lasso>`__, + and `Tikhonov + regularization <https://en.wikipedia.org/wiki/Tikhonov_regularization>`__. +- Pyglmnet's API is designed to be compatible with scikit-learn, so you + can deploy ``Pipeline`` tools such as ``GridSearchCV()`` and + ``cross_val_score()``. +- We follow the same approach and notations as in `Friedman, J., + Hastie, T., & Tibshirani, R. + (2010) <https://core.ac.uk/download/files/153/6287975.pdf>`__ and the + accompanying widely popular `R + package <https://web.stanford.edu/~hastie/glmnet/glmnet_alpha.html>`__. +- We have implemented a cyclical coordinate descent optimizer with + Newton update, active sets, update caching, and warm restarts. This + optimization approach is identical to the one used in R package. +- A number of Python wrappers exist for the R glmnet package (e.g. + `here <https://github.com/civisanalytics/python-glmnet>`__ and + `here <https://github.com/dwf/glmnet-python>`__) but in contrast to + these, Pyglmnet is a pure python implementation. Therefore, it is + easy to modify and introduce additional noise models and regularizers + in the future. +Installation +~~~~~~~~~~~~ +Install the stable PyPI version with ``pip`` + $ pip install pyglmnet +For the bleeding edge development version: +Clone the repository. + $ pip install https://api.github.com/repos/glm-tools/pyglmnet/zipball/master +Getting Started +~~~~~~~~~~~~~~~ +Here is an example on how to use the ``GLM`` estimator. + import numpy as np + import scipy.sparse as sps + from pyglmnet import GLM, simulate_glm + n_samples, n_features = 1000, 100 + distr = 'poisson' + # sample a sparse model + beta0 = np.random.rand() + beta = np.random.random(n_features) + beta[beta < 0.9] = 0 + # simulate data + Xtrain = np.random.normal(0.0, 1.0, [n_samples, n_features]) + ytrain = simulate_glm('poisson', beta0, beta, Xtrain) + Xtest = np.random.normal(0.0, 1.0, [n_samples, n_features]) + ytest = simulate_glm('poisson', beta0, beta, Xtest) + # create an instance of the GLM class + glm = GLM(distr='poisson', score_metric='deviance') + # fit the model on the training data + glm.fit(Xtrain, ytrain) + # predict using fitted model on the test data + yhat = glm.predict(Xtest) + # score the model on test data + deviance = glm.score(Xtest, ytest) +`More pyglmnet examples and use +cases <http://glm-tools.github.io/pyglmnet/auto_examples/index.html>`__. +Tutorial +~~~~~~~~ +Here is an `extensive +tutorial <http://glm-tools.github.io/pyglmnet/tutorial.html>`__ on GLMs, +optimization and pseudo-code. +Here are +`slides <https://pavanramkumar.github.io/pydata-chicago-2016>`__ from a +talk at `PyData Chicago +2016 <http://pydata.org/chicago2016/schedule/presentation/15/>`__, +corresponding `tutorial +notebooks <http://github.com/pavanramkumar/pydata-chicago-2016>`__ and a +`video <https://www.youtube.com/watch?v=zXec96KD1uA>`__. +How to contribute? +~~~~~~~~~~~~~~~~~~ +We welcome pull requests. Please see our `developer documentation +page <http://glm-tools.github.io/pyglmnet/developers.html>`__ for more +details. +Acknowledgments +~~~~~~~~~~~~~~~ +- `Konrad Kording <http://kordinglab.com>`__ for funding and support +- `Sara + Solla <http://www.physics.northwestern.edu/people/joint-faculty/sara-solla.html>`__ + for masterful GLM lectures +License +~~~~~~~ +MIT License Copyright (c) 2016-2019 Pavan Ramkumar + +%package help +Summary: Development documents and examples for pyglmnet +Provides: python3-pyglmnet-doc +%description help +A python implementation of elastic-net regularized generalized linear models +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +|License| |Travis| |Codecov| |Circle| |Gitter| |DOI| +`[Documentation (stable version)]`_ `[Documentation (development version)]`_ +`Generalized linear +models <https://en.wikipedia.org/wiki/Generalized_linear_model>`__ are +well-established tools for regression and classification and are widely +applied across the sciences, economics, business, and finance. They are +uniquely identifiable due to their convex loss and easy to interpret due +to their point-wise non-linearities and well-defined noise models. +In the era of exploratory data analyses with a large number of predictor +variables, it is important to regularize. Regularization prevents +overfitting by penalizing the negative log likelihood and can be used to +articulate prior knowledge about the parameters in a structured form. +Despite the attractiveness of regularized GLMs, the available tools in +the Python data science eco-system are highly fragmented. More +specifically, +- `statsmodels <http://statsmodels.sourceforge.net/devel/glm.html>`__ + provides a wide range of link functions but no regularization. +- `scikit-learn <http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.ElasticNet.html>`__ + provides elastic net regularization but only for linear models. +- `lightning <https://github.com/scikit-learn-contrib/lightning>`__ + provides elastic net and group lasso regularization, but only for + linear and logistic regression. +**Pyglmnet** is a response to this fragmentation. It runs on Python 3.5+, +and here are some of the highlights. +- Pyglmnet provides a wide range of noise models (and paired canonical + link functions): ``'gaussian'``, ``'binomial'``, ``'probit'``, + ``'gamma'``, '``poisson``', and ``'softplus'``. +- It supports a wide range of regularizers: ridge, lasso, elastic net, + `group + lasso <https://en.wikipedia.org/wiki/Proximal_gradient_methods_for_learning#Group_lasso>`__, + and `Tikhonov + regularization <https://en.wikipedia.org/wiki/Tikhonov_regularization>`__. +- Pyglmnet's API is designed to be compatible with scikit-learn, so you + can deploy ``Pipeline`` tools such as ``GridSearchCV()`` and + ``cross_val_score()``. +- We follow the same approach and notations as in `Friedman, J., + Hastie, T., & Tibshirani, R. + (2010) <https://core.ac.uk/download/files/153/6287975.pdf>`__ and the + accompanying widely popular `R + package <https://web.stanford.edu/~hastie/glmnet/glmnet_alpha.html>`__. +- We have implemented a cyclical coordinate descent optimizer with + Newton update, active sets, update caching, and warm restarts. This + optimization approach is identical to the one used in R package. +- A number of Python wrappers exist for the R glmnet package (e.g. + `here <https://github.com/civisanalytics/python-glmnet>`__ and + `here <https://github.com/dwf/glmnet-python>`__) but in contrast to + these, Pyglmnet is a pure python implementation. Therefore, it is + easy to modify and introduce additional noise models and regularizers + in the future. +Installation +~~~~~~~~~~~~ +Install the stable PyPI version with ``pip`` + $ pip install pyglmnet +For the bleeding edge development version: +Clone the repository. + $ pip install https://api.github.com/repos/glm-tools/pyglmnet/zipball/master +Getting Started +~~~~~~~~~~~~~~~ +Here is an example on how to use the ``GLM`` estimator. + import numpy as np + import scipy.sparse as sps + from pyglmnet import GLM, simulate_glm + n_samples, n_features = 1000, 100 + distr = 'poisson' + # sample a sparse model + beta0 = np.random.rand() + beta = np.random.random(n_features) + beta[beta < 0.9] = 0 + # simulate data + Xtrain = np.random.normal(0.0, 1.0, [n_samples, n_features]) + ytrain = simulate_glm('poisson', beta0, beta, Xtrain) + Xtest = np.random.normal(0.0, 1.0, [n_samples, n_features]) + ytest = simulate_glm('poisson', beta0, beta, Xtest) + # create an instance of the GLM class + glm = GLM(distr='poisson', score_metric='deviance') + # fit the model on the training data + glm.fit(Xtrain, ytrain) + # predict using fitted model on the test data + yhat = glm.predict(Xtest) + # score the model on test data + deviance = glm.score(Xtest, ytest) +`More pyglmnet examples and use +cases <http://glm-tools.github.io/pyglmnet/auto_examples/index.html>`__. +Tutorial +~~~~~~~~ +Here is an `extensive +tutorial <http://glm-tools.github.io/pyglmnet/tutorial.html>`__ on GLMs, +optimization and pseudo-code. +Here are +`slides <https://pavanramkumar.github.io/pydata-chicago-2016>`__ from a +talk at `PyData Chicago +2016 <http://pydata.org/chicago2016/schedule/presentation/15/>`__, +corresponding `tutorial +notebooks <http://github.com/pavanramkumar/pydata-chicago-2016>`__ and a +`video <https://www.youtube.com/watch?v=zXec96KD1uA>`__. +How to contribute? +~~~~~~~~~~~~~~~~~~ +We welcome pull requests. Please see our `developer documentation +page <http://glm-tools.github.io/pyglmnet/developers.html>`__ for more +details. +Acknowledgments +~~~~~~~~~~~~~~~ +- `Konrad Kording <http://kordinglab.com>`__ for funding and support +- `Sara + Solla <http://www.physics.northwestern.edu/people/joint-faculty/sara-solla.html>`__ + for masterful GLM lectures +License +~~~~~~~ +MIT License Copyright (c) 2016-2019 Pavan Ramkumar + +%prep +%autosetup -n pyglmnet-1.1 + +%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-pyglmnet -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Fri May 05 2023 Python_Bot <Python_Bot@openeuler.org> - 1.1-1 +- Package Spec generated @@ -0,0 +1 @@ +e7a90f472d7613162ad1deb372087b09 pyglmnet-1.1.tar.gz |
