OK
On Thu, Jan 2, 2020, 10:42 AM Adrin <adrin.jal...@gmail.com> wrote:

> Hi,
>
> liblinear and libsvm use the C `rand()` function which returns number up to
> 32767 on the windows platform. This PR
> <https://github.com/scikit-learn/scikit-learn/pull/13511> proposes the
> following fix:
>
> *Fixed a convergence issue in ``libsvm`` and ``liblinear`` on Windows
> platforms*
> *impacting all related classifiers and regressors. The random number
> generator*
> *used to randomly select coordinates in the coordinate descent algorithm
> was*
> *C ``rand()``, that is only able to generate numbers up to ``32767`` on
> windows*
> *platform. It was replaced with C++11 ``mt19937``, a Mersenne Twister that*
> *correctly generates 31bits/63bits random numbers on all platforms. In
> addition,*
> *the crude "modulo" postprocessor used to get a random number in a bounded*
> *interval was replaced by the tweaked Lemire method as suggested by `this
> blog*
> *post <http://www.pcg-random.org/posts/bounded-rands.html
> <http://www.pcg-random.org/posts/bounded-rands.html>>`*
>
> In order to keep the models consistent across platforms, we'd like to use
> the same (new) rng
> on all platforms, which means after this change the generated models may
> be slightly different
> to what they are now. We'd like to hear any concerns on the matter from
> the community, here
> or on the PR, before merging the fix.
>
> Best,
> Adrin.
> _______________________________________________
> scikit-learn mailing list
> scikit-learn@python.org
> https://mail.python.org/mailman/listinfo/scikit-learn
>
_______________________________________________
scikit-learn mailing list
scikit-learn@python.org
https://mail.python.org/mailman/listinfo/scikit-learn

Reply via email to