8000 Release 0.20.2 by amueller · Pull Request #12784 · scikit-learn/scikit-learn · GitHub
[go: up one dir, main page]

Skip to content

Release 0.20.2 #12784

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 41 commits into from
Dec 18, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
207b07d
DOC add date for 0.20.0 release
jnothman Nov 22, 2018
3794afa
DOC update news, make 0.20 link to 0.20.0
qinhanmin2014 Nov 22, 2018
4a4a73e
don't set check_pickle on new joblib on python2.7 (#12645)
amueller Nov 22, 2018
677aa51
DOC Add contributors for 0.20.1
qinhanmin2014 Nov 22, 2018
e986630
Doc: minor word change (#12646)
pavopax Nov 22, 2018
df30586
DOC fix minor sphinx issues (#12653)
amueller Nov 23, 2018
eea0a28
DOC: start section for the 0.20.2 bugfix notes (#12664)
jorisvandenbossche Nov 23, 2018
7e306a3
DOC Fix links in anomaly detection example (#12665)
albertcthomas Nov 24, 2018
498e45f
EXA remove unused variables. (#12647)
lesteve Nov 24, 2018
2904920
MNT Unused import
qinhanmin2014 Nov 24, 2018
03ac360
[MRG] Fixed randomness of test_logreg_cv_penalty (#12624)
NicolasHug Nov 25, 2018
a0005da
DOC Updated MLP partial_fit documentation (#12618)
samwaterbury Nov 25, 2018
c24e63e
DOC use twine to upload wheels to pypi (#12661)
ogrisel Nov 26, 2018
039f365
EXA improving examples/mixture/plot_gmm_covariances.py visualisation …
josephsalmon Nov 27, 2018
6c1703f
TST Specify random seed in test_shuffle_kfold_stratifiedkfold_reprodu…
qinhanmin2014 Nov 27, 2018
676bf9b
DOC add joblib to doc-build deps (#12691)
adrinjalali Nov 28, 2018
caf652f
FIX Adapts cdist jaccard to scipy 1.2.0 (#12692)
thomasjpfan Nov 30, 2018
4822a19
DOC Fix joblib URL (#12698)
shivam-kotwalia Nov 30, 2018
dc5359f
MNT Minor code refactoring in utils.testing (#12688)
qinhanmin2014 Nov 30, 2018
e9f0c1d
DOC Update TfidfVectorizer analyzer documentation to match CountVecto…
dstine Dec 3, 2018
b1471d2
FIX Fix error in make_column_transformer when columns is pandas.Index…
qinhanmin2014 Dec 3, 2018
765f3e4
BUG: fix check_array on pandas Series with custom dtype (eg categoric…
jorisvandenbossche Dec 3, 2018
3af7147
DOC regenerate authors.rst after Adrin has joined (#12719)
jnothman Dec 4, 2018
9d9d798
EXA change normed to density in matplotlib calls in examples (#12718)
adrinjalali Dec 6, 2018
fdfba9d
DOC Clarify what the decision function in SVM calculates (#12708)
JanSellner Dec 10, 2018
ea36f6e
DOC change "cumulative density" to "cumulative distribution" (#12754)
albertcthomas Dec 11, 2018
908898b
DOC Added roadmap.rst (#12761)
NicolasHug Dec 13, 2018
d3664b6
Update linear_model.rst (#12735)
hassaanseeker Dec 13, 2018
44a0c80
DOC Explain solver choices for LogisticRegression (#12768)
amueller Dec 14, 2018
c51fd04
MNT flake8 in r2_score examples (#12773)
qinhanmin2014 Dec 14, 2018
9ad9847
EXA Avoiding TypeError when using --all_categories in plot_document_c…
dafeda Dec 14, 2018
cc846b4
DOC Remove what's new entry for unreleased feature
qinhanmin2014 Dec 15, 2018
da99f5c
DOC Hyperlink DOIs to preferred resolver (#12792)
katrinleinweber Dec 15, 2018
bb30e4c
DOC Fix LaTeX text{} block escaping of underscores in doc-modules-mod…
adanhawth Dec 16, 2018
895aeb5
DOC Added description for classes_ in LogisticRegression/LogisticRegr…
Dec 17, 2018
713c164
FIX pairwise distances with 'seuclidean' or 'mahalanobis' metrics (#1…
jeremiedbb Dec 17, 2018
5ab850a
add contributors, update website
amueller Dec 17, 2018
c6b2163
Merge branch '0.20.X' into 0.20.2-actual
amueller Dec 17, 2018
ad8764d
DOC reorder what's new 0.20.2
jnothman Dec 18, 2018
8da0d23
TST np.vstack won't support generator in the future (#12816)
qinhanmin2014 Dec 18, 2018
a941c2e
DOC Update changed models for 0.20.2 (#12810)
qinhanmin2014 Dec 18, 2018
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion build_tools/generate_authors_table.py
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ def key(profile):
contributors = get_contributors()

print(".. raw :: html\n")
print(" <!-- Generated by gen_authors.py -->")
print(" <!-- Generated by generate_authors_table.py -->")
print(" <table>")
print(" <col style='width:%d%%' span='%d'>"
% (int(100 / ROW_SIZE), ROW_SIZE))
Expand Down
26 changes: 16 additions & 10 deletions doc/authors.rst
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
.. raw :: html

<!-- Generated by gen_authors.py -->
<!-- Generated by generate_authors_table.py -->
<table>
<col style='width:14%' span='7'>
<style>
Expand Down Expand Up @@ -70,7 +70,7 @@
<tr>
<td>
<a href='https://github.com/chrisfilo'><img src='https://avatars2.githubusercontent.com/u/238759?v=4' class='avatar' /></a> <br />
<p>Chris Filo Gorgolewski</p>
<p>Chris Gorgolewski</p>
</td>
<td>
<a href='https://github.com/agramfort'><img src='https://avatars2.githubusercontent.com/u/161052?v=4' class='avatar' /></a> <br />
Expand All @@ -93,12 +93,16 @@
<p>Brian Holt</p>
</td>
<td>
<a href='https://github.com/arjoly'><img src='https://avatars0.githubusercontent.com/u/1274722?v=4' class='avatar' /></a> <br />
<p>Arnaud Joly</p>
<a href='https://github.com/adrinjalali'><img src='https://avatars3.githubusercontent.com/u/1663864?v=4' class='avatar' /></a> <br />
<p>Adrin Jalali</p>
</td>
</tr>
<tr>
<td>
<a href='https://github.com/arjoly'><img src='https://avatars0.githubusercontent.com/u/1274722?v=4' class='avatar' /></a> <br />
<p>Arnaud Joly</p>
</td>
<td>
<a href='https://github.com/thouis'><img src='https://avatars1.githubusercontent.com/u/473043?v=4' class='avatar' /></a> <br />
<p>Thouis (Ray) Jones</p>
</td>
Expand All @@ -122,12 +126,12 @@
<a href='https://github.com/weilinear'><img src='https://avatars0.githubusercontent.com/u/2232328?v=4' class='avatar' /></a> <br />
<p>Wei Li</p>
</td>
</tr>
<tr>
<td>
<a href='https://github.com/paolo-losi'><img src='https://avatars1.githubusercontent.com/u/264906?v=4' class='avatar' /></a> <br />
<p>Paolo Losi</p>
</td>
</tr>
<tr>
<td>
<a href='https://github.com/glouppe'><img src='https://avatars3.githubusercontent.com/u/477771?v=4' class='avatar' /></a> <br />
<p>Gilles Louppe</p>
Expand All @@ -152,12 +156,12 @@
<a href='https://github.com/vene'><img src='https://avatars0.githubusercontent.com/u/241745?v=4' class='avatar' /></a> <br />
<p>Vlad Niculae</p>
</td>
</tr>
<tr>
<td>
<a href='https://github.com/jnothman'><img src='https://avatars2.githubusercontent.com/u/78827?v=4' class='avatar' /></a> <br />
<p>Joel Nothman</p>
</td>
</tr>
<tr>
<td>
<a href='https://github.com/alextp'><img src='https://avatars0.githubusercontent.com/u/5061?v=4' class='avatar' /></a> <br />
<p>Alexandre Passos</p>
Expand All @@ -182,12 +186,12 @@
<a href='https://github.com/jmschrei'><img src='https://avatars2.githubusercontent.com/u/3916816?v=4' class='avatar' /></a> <br />
<p>Jacob Schreiber</p>
</td>
</tr>
<tr>
<td>
<a href='https://github.com/bthirion'><img src='https://avatars1.githubusercontent.com/u/234454?v=4' class='avatar' /></a> <br />
<p>Bertrand Thirion</p>
</td>
</tr>
<tr>
<td>
<a href='https://github.com/TomDLT'><img src='https://avatars2.githubusercontent.com/u/11065596?v=4' class='avatar' /></a> <br />
<p>Tom Dupré la Tour</p>
Expand All @@ -212,6 +216,8 @@
<a href='https://github.com/ronw'><img src='https://avatars2.githubusercontent.com/u/113819?v=4' class='avatar' /></a> <br />
<p>Ron Weiss</p>
</td>
</tr>
<tr>
<td>
<a href='https://github.com/rth'><img src='https://avatars0.githubusercontent.com/u/630936?v=4' class='avatar' /></a> <br />
<p>Roman Yurchak</p>
Expand Down
2 changes: 1 addition & 1 deletion doc/developers/contributing.rst
Original file line number Diff line number Diff line change
Expand Up @@ -432,7 +432,7 @@ Building the documentation

Building the documentation requires installing some additional packages::

pip install sphinx sphinx-gallery numpydoc matplotlib Pillow pandas scikit-image
pip install sphinx sphinx-gallery numpydoc matplotlib Pillow pandas scikit-image joblib

To build the documentation, you need to be in the ``doc`` folder::

Expand Down
30 changes: 21 additions & 9 deletions doc/developers/maintainer.rst
Original file line number Diff line number Diff line change
Expand Up @@ -33,21 +33,21 @@ For more information see https://github.com/scikit-learn/scikit-learn/wiki/How-t

$ git push origin --tags

4. create tarballs:
4. create the source tarball:

- Wipe clean your repo::

$ git clean -xfd

- Register and upload on PyPI::
- Generate the tarball::

$ python setup.py sdist register upload
$ python setup.py sdist

The result should be in the `dist/` folder. We will upload it later
with the wheels. Check that you can install it in a new virtualenv and
that the tests pass.

5. Push the documentation to the website. Circle CI should do this
automatically for master and <N>.<N>.X branches.

6. Build binaries using dedicated CI servers by updating the git submodule
5. Build binaries using dedicated CI servers by updating the git submodule
reference to the new scikit-learn tag of the release at:

https://github.com/MacPython/scikit-learn-wheels
Expand All @@ -56,9 +56,21 @@ For more information see https://github.com/scikit-learn/scikit-learn/wiki/How-t
packages and upload them to PyPI by running the following commands in the
scikit-learn source folder (checked out at the release tag)::

$ pip install -U wheelhouse_uploader
$ python setup.py sdist fetch_artifacts upload_all
$ pip install -U wheelhouse_uploader twine
$ python setup.py fetch_artifacts

Check the content of the `dist/` folder: it should contain all the wheels
along with the source tarball ("scikit-learn-XXX.tar.gz").

Make sure that you do not have developer versions or older versions of
the scikit-learn package in that folder.

Upload everything at once to https://pypi.org::

$ twine upload dist/

6. Push the documentation to the website. Circle CI should do this
automatically for master and <N>.<N>.X branches.

7. FOR FINAL RELEASE: Update the release date in What's New

Expand Down
2 changes: 1 addition & 1 deletion doc/developers/performance.rst
Original file line number Diff line number Diff line change
Expand Up @@ -383,7 +383,7 @@ TODO: give a simple teaser example here.

Checkout the official joblib documentation:

- https://pythonhosted.org/joblib
- https://joblib.readthedocs.io


.. _warm-restarts:
Expand Down
7 changes: 6 additions & 1 deletion doc/documentation.rst
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ Documentation of scikit-learn |version|
<h2><a href="tutorial/basic/tutorial.html">Quick Start</a></h2>
<blockquote>A very short introduction into machine learning
problems and how to solve them using scikit-learn.
Introduced basic concepts and conventions.
Presents basic concepts and conventions.
</blockquote>
</div>
<div class="span4 box">
Expand Down Expand Up @@ -101,5 +101,10 @@ Documentation of scikit-learn |version|
scope or not well established enough for scikit-learn.
</blockquote>
</div>
<div class="span4 box">
<h2><a href="roadmap.html">Roadmap</a></h2>
<blockquote>Roadmap of the project.
</blockquote>
</div>

</div>
2 changes: 2 additions & 0 deletions doc/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -209,6 +209,8 @@
</li>
<li><strong>Scikit-learn 0.21 will drop support for Python 2.7 and Python 3.4.</strong>
</li>
<li><em>December 2018.</em> scikit-learn 0.20.2 is available for download (<a href="whats_new.html#version-0-20-2">Changelog</a>).
</li>
<li><em>November 2018.</em> scikit-learn 0.20.1 is available for download (<a href="whats_new.html#version-0-20-1">Changelog</a>).
</li>
<li><em>September 2018.</em> scikit-learn 0.20.0 is available for download (<a href="whats_new.html#version-0-20-0">Changelog</a>).
Expand Down
4 changes: 2 additions & 2 deletions doc/modules/clustering.rst
Original file line number Diff line number Diff line change
Expand Up @@ -1680,12 +1680,12 @@ Drawbacks
"A Cluster Separation Measure"
IEEE Transactions on Pattern Analysis and Machine Intelligence.
PAMI-1 (2): 224-227.
`doi:10.1109/TPAMI.1979.4766909 <http://dx.doi.org/10.1109/TPAMI.1979.4766909>`_.
`doi:10.1109/TPAMI.1979.4766909 <https://doi.org/10.1109/TPAMI.1979.4766909>`_.

* Halkidi, Maria; Batistakis, Yannis; Vazirgiannis, Michalis (2001).
"On Clustering Validation Techniques"
Journal of Intelligent Information Systems, 17(2-3), 107-145.
`doi:10.1023/A:1012801612483 <http://dx.doi.org/10.1023/A:1012801612483>`_.
`doi:10.1023/A:1012801612483 <https://doi.org/10.1023/A:1012801612483>`_.

* `Wikipedia entry for Davies-Bouldin index
<https://en.wikipedia.org/wiki/Davies–Bouldin_index>`_.
Expand Down
20 changes: 15 additions & 5 deletions doc/modules/linear_model.rst
Original file line number Diff line number Diff line change
Expand Up @@ -775,7 +775,12 @@ The "saga" solver [7]_ is a variant of "sag" that also supports the
non-smooth `penalty="l1"` option. This is therefore the solver of choice
for sparse multinomial logistic regression.

In a nutshell, the following table summarizes the penalties supported by each solver:
The "lbfgs" is an optimization algorithm that approximates the
Broyden–Fletcher–Goldfarb–Shanno algorithm [8]_, which belongs to
quasi-Newton methods. The "lbfgs" solver is recommended for use for
small data-sets but for larger datasets its performance suffers. [9]_

The following table summarizes the penalties supported by each solver:

+------------------------------+-----------------+-------------+-----------------+-----------+------------+
| | **Solvers** |
Expand All @@ -799,11 +804,10 @@ In a nutshell, the following table summarizes the penalties supported by each so
| Robust to unscaled datasets | yes | yes | yes | no | no |
+------------------------------+-----------------+-------------+-----------------+-----------+------------+

The "saga" solver is often the best choice but requires scaling. The "liblinear" solver is
used by default for historical reasons.

The "lbfgs" solver is used by default for its robustness. For large datasets
the "saga" solver is usually faster.
For large dataset, you may also consider using :class:`SGDClassifier`
with 'log' loss.
with 'log' loss, which might be even faster but require more tuning.

.. topic:: Examples:

Expand Down Expand Up @@ -855,6 +859,12 @@ loss.

.. [7] Aaron Defazio, Francis Bach, Simon Lacoste-Julien: `SAGA: A Fast Incremental Gradient Method With Support for Non-Strongly Convex Composite Objectives. <https://arxiv.org/abs/1407.0202>`_

.. [8] https://en.wikipedia.org/wiki/Broyden%E2%80%93Fletcher%E2%80%93Goldfarb%E2%80%93Shanno_algorithm

.. [9] `"Performance Evaluation of Lbfgs vs other solvers"
<http://www.fuzihao.org/blog/2016/01/16/Comparison-of-Gradient-Descent-Stochastic-Gradient-Descent-and-L-BFGS/>`_


Stochastic Gradient Descent - SGD
=================================

Expand Down
10 changes: 5 additions & 5 deletions doc/modules/model_evaluation.rst
Original file line number Diff line number Diff line change
Expand Up @@ -440,10 +440,10 @@ the total number of predictions).

In contrast, if the conventional accuracy is above chance only because the
classifier takes advantage of an imbalanced test set, then the balanced
accuracy, as appropriate, will drop to :math:`\frac{1}{\text{n\_classes}}`.
accuracy, as appropriate, will drop to :math:`\frac{1}{n\_classes}`.

The score ranges from 0 to 1, or when ``adjusted=True`` is used, it rescaled to
the range :math:`\frac{1}{1 - \text{n\_classes}}` to 1, inclusive, with
the range :math:`\frac{1}{1 - n\_classes}` to 1, inclusive, with
performance at random scoring 0.

If :math:`y_i` is the true value of the :math:`i`-th sample, and :math:`w_i`
Expand All @@ -463,7 +463,7 @@ defined as:

With ``adjusted=True``, balanced accuracy reports the relative increase from
:math:`\texttt{balanced-accuracy}(y, \mathbf{0}, w) =
\frac{1}{\text{n\_classes}}`. In the binary case, this is also known as
\frac{1}{n\_classes}`. In the binary case, this is also known as
`*Youden's J statistic* <https://en.wikipedia.org/wiki/Youden%27s_J_statistic>`_,
or *informedness*.

Expand Down Expand Up @@ -1433,7 +1433,7 @@ score associated with each label
the ranking loss is defined as

.. math::
\text{ranking\_loss}(y, \hat{f}) = \frac{1}{n_{\text{samples}}}
ranking\_loss(y, \hat{f}) = \frac{1}{n_{\text{samples}}}
\sum_{i=0}^{n_{\text{samples}} - 1} \frac{1}{||y_i||_0(n_\text{labels} - ||y_i||_0)}
\left|\left\{(k, l): \hat{f}_{ik} \leq \hat{f}_{il}, y_{ik} = 1, y_{il} = 0 \right\}\right|

Expand Down Expand Up @@ -1509,7 +1509,7 @@ then the explained variance is estimated as follow:

.. math::

\texttt{explained\_{}variance}(y, \hat{y}) = 1 - \frac{Var\{ y - \hat{y}\}}{Var\{y\}}
explained\_{}variance(y, \hat{y}) = 1 - \frac{Var\{ y - \hat{y}\}}{Var\{y\}}

The best possible score is 1.0, lower values are worse.

Expand Down
Loading
0