You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CONTRIBUTING.rst
+7-14Lines changed: 7 additions & 14 deletions
Original file line number
Diff line number
Diff line change
@@ -1,18 +1,19 @@
1
-
Thank you for considering contributing to ``pymc-learn``! This project is intended to be a space where anyone can share models they've built.
1
+
Thank you for considering contributing to ``pymc-learn``!
2
2
3
-
Please read these guidelines before submitting anything to the project. As of the first release, I'm the only person working on this project so respecting these guidelines will help me get back to you more quickly.
3
+
Please read these guidelines before submitting anything to the project.
4
4
5
5
Some ways to contribute:
6
6
7
7
- Open an issue on the `Github Issue Tracker <https://github.com/pymc-learn/pymc-learn/issues>`__. (Please check that it has not already been reported or addressed in a PR.)
8
8
- Improve the docs!
9
9
- Add a new machine-learning model. Please follow the guidelines below.
10
10
- Add/change existing functionality in the base function classes for ML.
11
-
- Something I haven't thought of?
11
+
- Something else.
12
12
13
13
Pull/Merge Requests
14
14
---------------------
15
-
To create a Pull Request against this library, please fork the project and work from there.
15
+
To create a Pull Request against this library,
16
+
please fork the project and work from there.
16
17
17
18
Steps
18
19
................
@@ -34,7 +35,8 @@ Steps
34
35
35
36
git checkout -b my-new-feature-branch
36
37
37
-
Always use a ``feature`` branch. It's good practice to never routinely work on the ``master`` branch.
38
+
Always use a ``feature`` branch. It's good practice to never routinely work on
39
+
the ``master`` branch.
38
40
39
41
4. Install requirements (probably in a virtual environment)
40
42
@@ -108,12 +110,3 @@ Notes:
108
110
- Docstrings should be written as numpy docstrings
109
111
- Your code should be Python 3 compatible
110
112
- When in doubt, follow the style of the existing code
111
-
112
-
Transitioning from PyMC3 to PyMC4
113
-
-----------------------------------
114
-
115
-
.. raw:: html
116
-
117
-
<embed>
118
-
<blockquoteclass="twitter-tweet"data-lang="en"><plang="en"dir="ltr">.<ahref="https://twitter.com/pymc_learn?ref_src=twsrc%5Etfw">@pymc_learn</a> has been following closely the development of <ahref="https://twitter.com/hashtag/PyMC4?src=hash&ref_src=twsrc%5Etfw">#PyMC4</a> with the aim of switching its backend from <ahref="https://twitter.com/hashtag/PyMC3?src=hash&ref_src=twsrc%5Etfw">#PyMC3</a> to PyMC4 as the latter grows to maturity. Core devs are invited. Here's the tentative roadmap for PyMC4: <ahref="https://t.co/Kwjkykqzup">https://t.co/Kwjkykqzup</a> cc <ahref="https://twitter.com/pymc_devs?ref_src=twsrc%5Etfw">@pymc_devs</a> <ahref="https://t.co/Ze0tyPsIGH">https://t.co/Ze0tyPsIGH</a></p>— pymc-learn (@pymc_learn) <ahref="https://twitter.com/pymc_learn/status/1059474316801249280?ref_src=twsrc%5Etfw">November 5, 2018</a></blockquote> <scriptasyncsrc="https://platform.twitter.com/widgets.js"charset="utf-8"></script>
<blockquoteclass="twitter-tweet"data-lang="en"><plang="en"dir="ltr">.<ahref="https://twitter.com/pymc_learn?ref_src=twsrc%5Etfw">@pymc_learn</a> has been following closely the development of <ahref="https://twitter.com/hashtag/PyMC4?src=hash&ref_src=twsrc%5Etfw">#PyMC4</a> with the aim of switching its backend from <ahref="https://twitter.com/hashtag/PyMC3?src=hash&ref_src=twsrc%5Etfw">#PyMC3</a> to PyMC4 as the latter grows to maturity. Core devs are invited. Here's the tentative roadmap for PyMC4: <ahref="https://t.co/Kwjkykqzup">https://t.co/Kwjkykqzup</a> cc <ahref="https://twitter.com/pymc_devs?ref_src=twsrc%5Etfw">@pymc_devs</a> <ahref="https://t.co/Ze0tyPsIGH">https://t.co/Ze0tyPsIGH</a></p>— pymc-learn (@pymc_learn) <ahref="https://twitter.com/pymc_learn/status/1059474316801249280?ref_src=twsrc%5Etfw">November 5, 2018</a></blockquote> <scriptasyncsrc="https://platform.twitter.com/widgets.js"charset="utf-8"></script>
57
-
</embed>
58
-
59
45
----
60
46
61
47
Familiar user interface
@@ -100,8 +86,8 @@ Or from source as follows:
100
86
Dependencies
101
87
................
102
88
103
-
``pymc-learn`` is tested on Python 2.7, 3.5 & 3.6 and depends on Theano,
104
-
PyMC3, Scikit-learn, NumPy, SciPy, and Matplotlib (see ``requirements.txt``
89
+
``pymc-learn`` is tested on Python 2.7, 3.5 & 3.6 and depends on TensorFlow,
90
+
PyMC4, Scikit-learn, NumPy, SciPy, and Matplotlib (see ``requirements.txt``
105
91
for version information).
106
92
107
93
----
@@ -142,7 +128,7 @@ Differentation Variational Inference (ADVI) is illustrated in the code below.
142
128
143
129
Instead of drawing samples from the posterior, these algorithms fit
144
130
a distribution (e.g. normal) to the posterior turning a sampling problem into
145
-
an optimization problem. ADVI is provided PyMC3.
131
+
an optimization problem. ADVI is provided PyMC4.
146
132
147
133
----
148
134
@@ -165,24 +151,6 @@ Or using BibTex as follows:
165
151
year={2018}
166
152
}
167
153
168
-
If you want to cite ``pymc-learn`` for its API, you may also want to consider
169
-
this reference::
170
-
171
-
Carlson, Nicole (2018). Custom PyMC3 models built on top of the scikit-learn
Copy file name to clipboardExpand all lines: docs/develop.rst
+5-14Lines changed: 5 additions & 14 deletions
Original file line number
Diff line number
Diff line change
@@ -1,17 +1,17 @@
1
1
Contributing
2
2
=============
3
3
4
-
Thank you for considering contributing to ``pymc-learn``! This project is intended to be a space where anyone can share models they've built.
4
+
Thank you for considering contributing to ``pymc-learn``!
5
5
6
-
Please read these guidelines before submitting anything to the project. As of the first release, I'm the only person working on this project so respecting these guidelines will help me get back to you more quickly.
6
+
Please read these guidelines before submitting anything to the project.
7
7
8
8
Some ways to contribute:
9
9
10
10
- Open an issue on the `Github Issue Tracker <https://github.com/pymc-learn/pymc-learn/issues>`__. (Please check that it has not already been reported or addressed in a PR.)
11
11
- Improve the docs!
12
12
- Add a new machine-learning model. Please follow the guidelines below.
13
13
- Add/change existing functionality in the base function classes for ML.
14
-
- Something I haven't thought of?
14
+
- Something else.
15
15
16
16
Pull/Merge Requests
17
17
---------------------
@@ -107,7 +107,7 @@ For the most part, this library follows PEP8 with a couple of exceptions.
107
107
Notes:
108
108
109
109
- Indent with 4 spaces
110
-
- Lines can be 120 characters long
110
+
- Lines can be 80 characters long
111
111
- Docstrings should be written as numpy docstrings
112
112
- Your code should be Python 3 compatible
113
113
- When in doubt, follow the style of the existing code
@@ -117,13 +117,4 @@ Contact
117
117
118
118
To report an issue with ``pymc-learn`` please use the `issue tracker <https://github.com/pymc-learn/pymc-learn/issues>`__.
119
119
120
-
Finally, if you need to get in touch for information about the project, `send us an e-mail <devs@pymc-learn.org>`__.
121
-
122
-
Transitioning from PyMC3 to PyMC4
123
-
-----------------------------------
124
-
125
-
.. raw:: html
126
-
127
-
<embed>
128
-
<blockquoteclass="twitter-tweet"data-lang="en"><plang="en"dir="ltr">.<ahref="https://twitter.com/pymc_learn?ref_src=twsrc%5Etfw">@pymc_learn</a> has been following closely the development of <ahref="https://twitter.com/hashtag/PyMC4?src=hash&ref_src=twsrc%5Etfw">#PyMC4</a> with the aim of switching its backend from <ahref="https://twitter.com/hashtag/PyMC3?src=hash&ref_src=twsrc%5Etfw">#PyMC3</a> to PyMC4 as the latter grows to maturity. Core devs are invited. Here's the tentative roadmap for PyMC4: <ahref="https://t.co/Kwjkykqzup">https://t.co/Kwjkykqzup</a> cc <ahref="https://twitter.com/pymc_devs?ref_src=twsrc%5Etfw">@pymc_devs</a> <ahref="https://t.co/Ze0tyPsIGH">https://t.co/Ze0tyPsIGH</a></p>— pymc-learn (@pymc_learn) <ahref="https://twitter.com/pymc_learn/status/1059474316801249280?ref_src=twsrc%5Etfw">November 5, 2018</a></blockquote> <scriptasyncsrc="https://platform.twitter.com/widgets.js"charset="utf-8"></script>
129
-
</embed>
120
+
Finally, if you need to get in touch for information about the project, `send us an e-mail <devs@pymc-learn.org>`__.
Copy file name to clipboardExpand all lines: docs/install.rst
+3-11Lines changed: 3 additions & 11 deletions
Original file line number
Diff line number
Diff line change
@@ -26,15 +26,7 @@ Or from source as follows:
26
26
``pymc-learn`` is under heavy development.
27
27
28
28
29
-
This also installs required dependencies including Theano.
30
-
For alternative Theano installations (e.g., gpu), please see the
31
-
instructions on the main `Theano webpage <http://deeplearning.net/software/theano/>`_.
29
+
This also installs required dependencies including TensorFlow.
30
+
For alternative TensorFlow installations (e.g., gpu), please see the
31
+
instructions on the main `TensorFlow webpage <https://www.tensorflow.org/>`_.
32
32
33
-
Transitioning from PyMC3 to PyMC4
34
-
..................................
35
-
36
-
.. raw:: html
37
-
38
-
<embed>
39
-
<blockquoteclass="twitter-tweet"data-lang="en"><plang="en"dir="ltr">.<ahref="https://twitter.com/pymc_learn?ref_src=twsrc%5Etfw">@pymc_learn</a> has been following closely the development of <ahref="https://twitter.com/hashtag/PyMC4?src=hash&ref_src=twsrc%5Etfw">#PyMC4</a> with the aim of switching its backend from <ahref="https://twitter.com/hashtag/PyMC3?src=hash&ref_src=twsrc%5Etfw">#PyMC3</a> to PyMC4 as the latter grows to maturity. Core devs are invited. Here's the tentative roadmap for PyMC4: <ahref="https://t.co/Kwjkykqzup">https://t.co/Kwjkykqzup</a> cc <ahref="https://twitter.com/pymc_devs?ref_src=twsrc%5Etfw">@pymc_devs</a> <ahref="https://t.co/Ze0tyPsIGH">https://t.co/Ze0tyPsIGH</a></p>— pymc-learn (@pymc_learn) <ahref="https://twitter.com/pymc_learn/status/1059474316801249280?ref_src=twsrc%5Etfw">November 5, 2018</a></blockquote> <scriptasyncsrc="https://platform.twitter.com/widgets.js"charset="utf-8"></script>
Copy file name to clipboardExpand all lines: docs/why.rst
+12-31Lines changed: 12 additions & 31 deletions
Original file line number
Diff line number
Diff line change
@@ -27,9 +27,9 @@ pymc-learn prioritizes user experience
27
27
lr = LinearRegression() lr = LinearRegression()
28
28
lr.fit(X, y) lr.fit(X, y)
29
29
30
-
- *Flexibility*: This ease of use does not come at the cost of reduced flexibility. Given that ``pymc-learn`` integrates with `PyMC3<https://docs.pymc.io>`_, it enables you to implement anything you could have built in the base language.
30
+
- *Flexibility*: This ease of use does not come at the cost of reduced flexibility. Given that ``pymc-learn`` integrates with `PyMC4<https://docs.pymc.io>`_, it enables you to implement anything you could have built in the base language.
31
31
32
-
- *Performance*. The primary inference algorithm is gradient-based automatic differentiation variational inference (ADVI) (Kucukelbir et al., 2017), which estimates a divergence measure between approximate and true posterior distributions. Pymc-learn scales to complex, high-dimensional models thanks to GPU-accelerated tensor math and reverse-mode automatic differentiation via Theano (Theano Development Team, 2016), and it scales to large datasets thanks to estimates computed over mini-batches of data in ADVI.
32
+
- *Performance*. The primary inference algorithm is gradient-based automatic differentiation variational inference (ADVI) (Kucukelbir et al., 2017), which estimates a divergence measure between approximate and true posterior distributions. Pymc-learn scales to complex, high-dimensional models thanks to GPU-accelerated tensor math and reverse-mode automatic differentiation via TensorFlow (TensorFlow Development Team, 2016), and it scales to large datasets thanks to estimates computed over mini-batches of data in ADVI.
33
33
34
34
----
35
35
@@ -75,18 +75,9 @@ on:
75
75
76
76
(6) an API consistent with scikit-learn.
77
77
78
-
The underlying probabilistic models are built using pymc3 (Salvatier et al., 2016).
78
+
The underlying probabilistic models are built using pymc4 (Salvatier et al., 2019).
79
79
80
80
81
-
Transitioning from PyMC3 to PyMC4
82
-
..................................
83
-
84
-
.. raw:: html
85
-
86
-
<embed>
87
-
<blockquoteclass="twitter-tweet"data-lang="en"><plang="en"dir="ltr">.<ahref="https://twitter.com/pymc_learn?ref_src=twsrc%5Etfw">@pymc_learn</a> has been following closely the development of <ahref="https://twitter.com/hashtag/PyMC4?src=hash&ref_src=twsrc%5Etfw">#PyMC4</a> with the aim of switching its backend from <ahref="https://twitter.com/hashtag/PyMC3?src=hash&ref_src=twsrc%5Etfw">#PyMC3</a> to PyMC4 as the latter grows to maturity. Core devs are invited. Here's the tentative roadmap for PyMC4: <ahref="https://t.co/Kwjkykqzup">https://t.co/Kwjkykqzup</a> cc <ahref="https://twitter.com/pymc_devs?ref_src=twsrc%5Etfw">@pymc_devs</a> <ahref="https://t.co/Ze0tyPsIGH">https://t.co/Ze0tyPsIGH</a></p>— pymc-learn (@pymc_learn) <ahref="https://twitter.com/pymc_learn/status/1059474316801249280?ref_src=twsrc%5Etfw">November 5, 2018</a></blockquote> <scriptasyncsrc="https://platform.twitter.com/widgets.js"charset="utf-8"></script>
88
-
</embed>
89
-
90
81
Python is the lingua franca of Data Science
91
82
--------------------------------------------
92
83
@@ -112,27 +103,17 @@ notebooks, collaboration, and so forth.
112
103
113
104
----
114
105
115
-
Why scikit-learn and PyMC3
106
+
Why scikit-learn and PyMC4
116
107
---------------------------
117
-
PyMC3 is a Python package for probabilistic machine learning that enables users
108
+
PyMC4 is a Python package for probabilistic machine learning that enables users
118
109
to build bespoke models for their specific problems using a probabilistic
119
-
modeling framework. However, PyMC3 lacks the steps between creating a model and
120
-
reusing it with new data in production. The missing steps include: scoring a
121
-
model, saving a model for later use, and loading the model in production
122
-
systems.
110
+
modeling framework.
123
111
124
-
In contrast, *scikit-learn* which has become the standard
112
+
*scikit-learn* which has become the standard
125
113
library for machine learning provides a simple API that makes it very easy for
126
-
users to train, score, save and load models in production. However,
127
-
*scikit-learn* may not have the model for a user's specific problem.
128
-
These limitations have led to the development of the open
129
-
source *pymc3-models* library which provides a template to build bespoke
130
-
PyMC3 models on top of the *scikit-learn* API and reuse them in
131
-
production. This enables users to easily and quickly train, score, save and
132
-
load their bespoke models just like in *scikit-learn*.
133
-
134
-
The ``pymc-learn`` project adopted and extended the template in *pymc3-models*
135
-
to develop probabilistic versions of the estimators in *scikit-learn*.
114
+
users to train, score, save and load models in production.
115
+
116
+
The ``pymc-learn`` project developed probabilistic versions of the estimators in *scikit-learn*.
136
117
This provides users with probabilistic models in a simple workflow that mimics
137
118
the scikit-learn API.
138
119
@@ -190,10 +171,10 @@ References
190
171
191
172
4. Barber, D. (2012). Bayesian reasoning and machine learning. Cambridge University Press.
192
173
193
-
5. Salvatier, J., Wiecki, T. V., & Fonnesbeck, C. (2016). Probabilistic programming in Python using PyMC3. PeerJ Computer Science, 2, e55.
174
+
5. PyMC4.
194
175
195
176
6. Alp Kucukelbir, Dustin Tran, Rajesh Ranganath, Andrew Gelman, and David M Blei. Automatic differentiation variational inference. The Journal of Machine Learning Research, 18(1):430{474, 2017.
196
177
197
178
7. Fabian Pedregosa, Gael Varoquaux, Alexandre Gramfort, Vincent Michel, Bertrand Thirion, Olivier Grisel, Mathieu Blondel, Peter Prettenhofer, Ron Weiss, Vincent Dubourg, et al. Scikit-learn: Machine learning in python. Journal of machine learning research, 12(Oct): 2825-2830, 2011.
198
179
199
-
8. Theano Development Team. Theano: A Python framework for fast computation of mathematical expressions. arXiv e-prints, abs/1605.02688, May 2016. URL http://arxiv.org/abs/1605.02688.
0 commit comments