Apache License 2.0

项目介绍

dswah/pyGAM 是一个托管在 GitHub 上的开源项目,主要使用 Python 编写,采用 Apache License 2.0 许可证,目前获得 1.0k 个 Star、298 次 Fork。

仓库全名
dswah/pyGAM
开源许可证
Apache License 2.0
Star 数
1.0k
Fork 数
298
未关闭 Issue
238

README 摘要

pyGAM 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 Building interpretable models with Generalized additive models in Python Installation Acceleration Most of pyGAM's computations…

完整内容见 GitHub 原始 README 或本页 。

常见问题

pyGAM 用什么语言开发?

主要使用 Python 编写,采用 Apache License 2.0 许可证,目前有 1.0k 个 Star。

pyGAM 可以免费商用吗?

仓库采用 Apache License 2.0 许可证,可免费使用与修改,商业使用请遵守许可证条款(例如保留版权声明与许可声明)。

如何获取 pyGAM 的源码?

可以直接克隆仓库:git clone https://github.com/dswah/pyGAM.git,默认分支为 main;安装与运行步骤见仓库 README。

pyGAM 最近还在维护吗?

仓库最近一次更新为 4月21日,当前有 238 个未关闭 Issue;Star 数为 1.0k,可作为社区活跃度的参考。

关于

GitHub 原始描述(英文)

[CONTRIBUTORS WELCOME] Generalized Additive Models in Python

描述取自 GitHub 官方 API,保持仓库作者书写的原文。

语言占比

Python
Shell

Release

README

pyGAM

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 Apache 2.0 GC.OS Sponsored
Community !discord !slack
CI/CD github-actions readthedocs
Code !pypi !conda !python-versions !black
Downloads PyPI - Downloads PyPI - Downloads Downloads
Citation !zenodo

Documentation

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 main branch 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

  1. Simon N. Wood, 2006 Generalized Additive Models: an introduction with R

  2. Hastie, Tibshirani, Friedman The Elements of Statistical Learning https://www.sas.upenn.edu/~fdiebold/NoHesitations/BookAdvanced.pdf

  3. 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

  4. 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

  5. Kim Larsen, 2015 GAM: The Predictive Modeling Silver Bullet http://multithreaded.stitchfix.com/assets/files/gam.pdf

  6. 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

  7. Keiding, Niels, 1991 Age-specific incidence and prevalence: a statistical perspective https://academic.oup.com/jrsssa/article-abstract/154/3/371/7106499

评论

暂无评论