dswah/pyGAM
dswah/pyGAM has 1,023 GitHub stars and 298 forks. Star changes are not measured yet. Last checked 2026-11-09 12:18 UTC. Last push 2026-04-21.
[CONTRIBUTORS WELCOME] Generalized Additive Models in Python
Measured star growth
- in 24h
- Update delayed
- in 7 days
- Update delayed
- in 15 days
- Update delayed
- in 1 month
- Update delayed
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
README.md
OriginalpyGAM
Generalized Additive Models in Python.
:rocket: Version 0.12.0 out now! See release notes here.
pyGAM is a package for building Generalized Additive Models in Python, with an emphasis on modularity and performance.
The API is designed for users of scikit-learn or scipy.
| Documentation · Tutorials · Medium article | |
|---|---|
| Open Source | |
| Community | |
| CI/CD | |
| Code | |
| Downloads | |
| Citation |
Documentation
- Official pyGAM Documentation: Read the Docs
- Building interpretable models with Generalized additive models in Python
Installation
pip install pygam
Acceleration
Most of pyGAM's computations are linear algebra operations.
To speed up optimization on large models with constraints, it helps to have intel MKL installed.
It is currently a bit tricky to install a Numpy linked to the MKL routines with Conda because you have to be careful with which channel you are using. Pip's Numpy-MKL is outdated.
An alternative is to use a third-party build:
pip install numpy scipy --extra-index-url https://urob.github.io/numpy-mkl
Contributing - HELP REQUESTED
Contributions are most welcome!
You can help pyGAM in many ways including:
- Working on a known bug.
- Trying it out and reporting bugs or what was difficult.
- Helping improve the documentation.
- Writing new distributions, and link functions.
- If you need some ideas, please take a look at the issues.
To start:
- fork the project and cut a new branch
- install
pygam, editable with developer dependencies (in a new python environment)
pip install --upgrade pip
pip install -e ".[dev]"
Make some changes and write a test...
- Test your contribution (eg from the
.../pyGAM):
py.test -s
- When you are happy with your changes, make a pull request into the
mainbranch of the main project.
About
Generalized Additive Models (GAMs) are smooth semi-parametric models of the form:
$$g\left(\mathbb{E}[y|X]\right)=\beta_0+f_1(X_1)+f_2(X_2)+\dots+f_p(X_p)$$
where $X = [X_1, X_2, ..., X_p]$ are independent variables, $y$ is the dependent variable, and $g$ is a link function that relates our predictor variables to the expected value of the dependent variable.
The feature functions $f_i$ are built using penalized B-splines, which allow us to automatically model non-linear relationships without having to manually try out many different transformations on each variable.

GAMs extend generalized linear models by allowing non-linear functions of features while maintaining additivity.
Since GAMs are additive, it is easy to examine the effect of each $X_i$ on $y$ individually while holding all other predictors constant.
As a result, GAMs are a class of very flexible and interpretable models, which also make it is easy to incorporate prior knowledge and control overfitting.
Citing pyGAM
Please consider citing pyGAM if it has helped you in your research or work:
Daniel Servén, & Charlie Brummitt. (2018, March 27). pyGAM: Generalized Additive Models in Python. Zenodo. DOI: 10.5281/zenodo.1208723
BibTex:
@misc{daniel\_serven\_2018_1208723,
author = {Daniel Servén and
Charlie Brummitt},
title = {pyGAM: Generalized Additive Models in Python},
month = mar,
year = 2018,
doi = {10.5281/zenodo.1208723},
url = {https://doi.org/10.5281/zenodo.1208723}
}
References
Simon N. Wood, 2006 Generalized Additive Models: an introduction with R
Hastie, Tibshirani, Friedman The Elements of Statistical Learning https://www.sas.upenn.edu/~fdiebold/NoHesitations/BookAdvanced.pdf
James, Witten, Hastie, Tibshirani, and Taylor An Introduction to Statistical Learning with Applications in Python https://hastie.su.domains/ISLP/ISLP_website.pdf.download.html
Paul Eilers & Brian Marx, 1996 Flexible Smoothing with B-splines and Penalties https://sites.stat.washington.edu/courses/stat527/s14/readings/EilersMarx_StatSci_1996.pdf
Kim Larsen, 2015 GAM: The Predictive Modeling Silver Bullet http://multithreaded.stitchfix.com/assets/files/gam.pdf
Paul Eilers, Brian Marx, and Maria Durbán, 2015 Twenty years of P-splines https://e-archivo.uc3m.es/rest/api/core/bitstreams/4e23bd9f-c90d-4598-893e-deb0a6bf0728/content
Keiding, Niels, 1991 Age-specific incidence and prevalence: a statistical perspective https://academic.oup.com/jrsssa/article-abstract/154/3/371/7106499
Explore related projects
tensorflow/tensorflow
An Open Source Machine Learning Framework for Everyone
201,427 starshuggingface/transformers
🤗 Transformers: the model-definition framework for state-of-the-art machine learning models in text, vision, audio, and multimodal models, for both inference and training.
168,711 starsAUTOMATIC1111/stable-diffusion-webui
Stable Diffusion web UI
165,274 starsComfy-Org/ComfyUI
The most powerful and modular diffusion model GUI, api and backend with a graph/nodes interface. The fastest local inference engine in the world.
146,024 stars