[Numpy-discussion] Addition of new distributions: Polya-gamma

Stephan Hoyer shoyer at gmail.com
Mon Dec 28 02:51:55 EST 2020


Thanks for putting together this clean implementation!

My concern is that Polya-Gamma is not popular enough to warrant inclusion
in NumPy, which tries very hard to limit scope these days. For example,
Polya-Gamma isn’t implemented in scioy.stats and doesn’t have a Wikipedia
page, both of which are generally much more inclusive than NumPy.

On Sun, Dec 27, 2020 at 3:29 AM Tom Swirly <tom at swirly.com> wrote:

> I'm just a lurker, but I spent a minute or two to look at that commit,
> which looks to be high quality.  While I personally have not used this
> distribution, people I know use it all the time (for ML).
>
>
> A quibble:
>
> #define NPY_PI 3.141592653589793238462643383279502884 /* pi */
>
> and the following defines which appear
> in numpy/random/src/distributions/random_polyagamma.c are already defined
> in numpy/core/include/numpy/npy_math.h
>
> Probably it would be better to include that file instead, if it isn't
> already included.
>
>
> DISCLAIMER: I checked none of the math other than passing my eyes over it.
>
>
>
> On Sun, Dec 27, 2020 at 12:05 PM Zolisa Bleki <BLKZOL001 at myuct.ac.za>
> wrote:
>
>> Hi All,
>>
>> I would like to know if Numpy accepts addition of new distributions since
>> the implementation of the Generator interface. If so, what is the criteria
>> for a particular distribution to be accepted? The reason why i'm asking is
>> because I would like to propose adding the Polya-gamma distribution to
>> numpy, for the following reasons:
>>
>> 1) Polya-gamma random variables are commonly used as auxiliary variables
>> during data augmentation in Bayesian sampling algorithms, which have
>> wide-spread usage in Statistics and recently, Machine learning.
>> 2) Since this distribution is mostly useful for random sampling, it since
>> appropriate to have it in numpy and not projects like scipy [1].
>> 3) The only python/C++ implementation of the sampler available is
>> licensed under GPLv3 which I believe limits copying into packages that
>> choose to use a different license [2].
>> 4) Numpy's random API makes adding the distribution painless.
>>
>> I have done preliminary work on this by implementing the distribution
>> sampler as decribed in [3]; see:
>> https://github.com/numpy/numpy/compare/master...zoj613:polyagamma .
>> There is a more efficient sampling algorithm described in a later paper
>> [4], but I chose not to start with that one unless I know it is worth
>> investing time in.
>>
>> I would appreciate your thoughts on this proposal.
>>
>> Regards,
>> Zolisa
>>
>>
>> Refs:
>> [1] https://github.com/scipy/scipy/issues/11009
>> [2] https://github.com/slinderman/pypolyagamma
>> [3] https://arxiv.org/pdf/1205.0310v1.pdf
>> [4] https://arxiv.org/pdf/1405.0506.pdf
>>
>>
>>
>> Disclaimer - University of Cape Town This email is subject to UCT
>> policies and email disclaimer published on our website at
>> http://www.uct.ac.za/main/email-disclaimer or obtainable from +27 21 650
>> 9111. If this email is not related to the business of UCT, it is sent by
>> the sender in an individual capacity. Please report security incidents or
>> abuse via https://csirt.uct.ac.za/page/report-an-incident.php.
>> _______________________________________________
>> NumPy-Discussion mailing list
>> NumPy-Discussion at python.org
>> https://mail.python.org/mailman/listinfo/numpy-discussion
>>
>
>
> --
>      /t
>
> PGP Key: https://flowcrypt.com/pub/tom.ritchford@gmail.com
> *https://tom.ritchford.com <https://tom.ritchford.com>*
> *https://tom.swirly.com <https://tom.swirly.com>*
>
>
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion at python.org
> https://mail.python.org/mailman/listinfo/numpy-discussion
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.python.org/pipermail/numpy-discussion/attachments/20201227/c468ac93/attachment.html>


More information about the NumPy-Discussion mailing list