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: docs/why.rst
+55-5Lines changed: 55 additions & 5 deletions
Original file line number
Diff line number
Diff line change
@@ -14,11 +14,11 @@ you may be compelled to use ``pymc-learn``.
14
14
pymc-learn prioritizes user experience
15
15
---------------------------------------
16
16
17
-
- ``pymc-learn`` mimics the syntax of `scikit-learn <https://scikit-learn.org>`_ -- a popular Python library for machine learning -- which has a consistent & simple API, and is very user friendly.
17
+
- *Familiarity*: ``pymc-learn`` mimics the syntax of `scikit-learn <https://scikit-learn.org>`_ -- a popular Python library for machine learning -- which has a consistent & simple API, and is very user friendly.
18
18
19
-
- This makes ``pymc-learn`` easy to learn and use for first-time users.
19
+
- *Ease of use*: This makes ``pymc-learn`` easy to learn and use for first-time users.
20
20
21
-
- For scikit-learn users, you don't have to completely rewrite your code. Your code looks almost the same. You are more productive, allowing you to try more ideas faster.
21
+
- *Productivity*: For scikit-learn users, you don't have to completely rewrite your code. Your code looks almost the same. You are more productive, allowing you to try more ideas faster.
22
22
23
23
.. code-block:: python
24
24
@@ -27,12 +27,56 @@ pymc-learn prioritizes user experience
27
27
lr = LinearRegression() lr = LinearRegression()
28
28
lr.fit(X, y) lr.fit(X, y)
29
29
30
-
- This ease of use does not come at the cost of reduced flexibility: because ``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 `PyMC3 <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
33
33
34
----
34
35
35
36
37
+
Why do we need pymc-learn?
38
+
--------------------------
39
+
Currently, there is a growing need for principled machine learning approaches by
40
+
non-specialists in many fields including the pure sciences (e.g. biology, physics,
41
+
chemistry), the applied sciences (e.g. political science, biostatistics),
42
+
engineering (e.g. transportation, mechanical), medicine (e.g. medical imaging),
43
+
the arts (e.g visual art), and software industries.
44
+
45
+
This has lead to increased adoption of probabilistic modeling. This trend is
46
+
attributed in part to three major factors:
47
+
48
+
(1) the need for transparent models with calibrated quantities of uncertainty, i.e. "models should know when they don't know",
49
+
50
+
(2) the ever-increasing number of promising results achieved on a variety of fundamental problems in AI (Ghahramani, 2015), and
51
+
52
+
(3) the emergency of probabilistic programming languages (PPLs) that provide a fexible framework to build richly structured probabilistic models that incorporate domain knowledge.
53
+
54
+
However, usage of PPLs requires a specialized understanding of probability
55
+
theory, probabilistic graphical modeling, and probabilistic inference. Some PPLs
56
+
also require a good command of software coding. These requirements make it
57
+
difficult for non-specialists to adopt and apply probabilistic machine learning
58
+
to their domain problems.
59
+
60
+
``Pymc-learn`` seeks to address these challenges by providing state-of-the art
61
+
implementations of several popular probabilistic machine learning models.
62
+
**It is inspired by scikit-learn** (Pedregosa et al., 2011) **and focuses on
63
+
bringing probabilistic machine learning to non-specialists**. It puts emphasis
64
+
on:
65
+
66
+
(1) ease of use,
67
+
68
+
(2) productivity,
69
+
70
+
(3) fexibility,
71
+
72
+
(4) performance,
73
+
74
+
(5) documentation, and
75
+
76
+
(6) an API consistent with scikit-learn.
77
+
78
+
The underlying probabilistic models are built using pymc3 (Salvatier et al., 2016).
79
+
36
80
37
81
Python is the lingua franca of Data Science
38
82
--------------------------------------------
@@ -137,4 +181,10 @@ References
137
181
138
182
4. Barber, D. (2012). Bayesian reasoning and machine learning. Cambridge University Press.
139
183
140
-
5. Salvatier, J., Wiecki, T. V., & Fonnesbeck, C. (2016). Probabilistic programming in Python using PyMC3. PeerJ Computer Science, 2, e55.
184
+
5. Salvatier, J., Wiecki, T. V., & Fonnesbeck, C. (2016). Probabilistic programming in Python using PyMC3. PeerJ Computer Science, 2, e55.
185
+
186
+
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.
187
+
188
+
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.
189
+
190
+
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