Skip to content
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

DOC Add JupyterLite button in example gallery #25887

Merged
merged 19 commits into from
Apr 19, 2023

Conversation

lesteve
Copy link
Member

@lesteve lesteve commented Mar 17, 2023

This is a draft PR to use sphinx-gallery Jupyterlite integration sphinx-gallery/sphinx-gallery#977 and detect possible issues.

Unfortunately CircleCI does not allow JupyterLite to work in artifacts, so for now I will manually run make html-noplot locally and make the output accessible at http://lesteve.github.io/scikit-learn.

See sphinx-gallery/sphinx-gallery#977 (comment) for more details about the CircleCI limitation.

@lesteve lesteve marked this pull request as draft March 17, 2023 07:40
@thomasjpfan
Copy link
Member

Is this PR blocked by sphinx-gallery/sphinx-gallery#1100 and resolving the tests failures in https://github.com/lesteve/scikit-learn-tests-pyodide?

I can see there is some ongoing work to get SciPy + OpenBLAS to work: pyodide/pyodide#3331 aiming to resolve some of the WASM tests failures in scikit-learn.

@lesteve
Copy link
Member Author

lesteve commented Mar 17, 2023

Is this PR blocked by sphinx-gallery/sphinx-gallery#1100 and resolving the tests failures in lesteve/scikit-learn-tests-pyodide?

I would hope not 😉. In my opinion, there are a few ways towards this PR getting merged even without the Scipy and scikit-learn tests passing on Pyodide (this could take a while to get them to pass if I am being honest):

  • manage user expectation e.g. by:
    • adding a cell with a big warning at the beginning of each notebook (only in JupyterLite of course) saying that this is beta and may break. We could also try to indicate this beta status already near the JupyterLite button, suggestions more than welcome!
    • black-listing some examples that we know don't work and find a way to indicate (maybe with a greyed out button) that it is not meant to work. The problem is that it is not so easy to know which examples are not meant to work and some failures are not deterministic e.g. see Fatal error with snippet using np.random and scipy.linalg pyodide/pyodide#3203. In principle you can run all the examples in a similar fashion I am running the scipy and scikit-learn test suite but this will probably take even longer than on CPython. This could be based on user feed-back too.
  • the missing dependency example is something I have some ideas about how to deal with, for example by adding cells at the beginning of the notebook with %pip install, stay tuned for this! It may be enough for the scikit-learn doc although probably not enough for the generic case. Using the xeus-python kernel with emscripten-forge may be what is needed for the generic case.

I can see there is some ongoing work to get SciPy + OpenBLAS to work: pyodide/pyodide#3331 aiming to resolve some of the WASM tests failures in scikit-learn.

Yes this too will take a while. There is some hope that it may fix some of the weird issues we see, but it is hard to tell without doing the (hard and long) work ...

@lesteve
Copy link
Member Author

lesteve commented Mar 20, 2023

To work around the CircleCI limitation, I made the output of a local run make html-noplot at http://lesteve.github.io/scikit-learn. I am planning to update that manually for now.

Here is one particular example, if you want to play with it: http://lesteve.github.io/scikit-learn/stable/auto_examples/release_highlights/plot_release_highlights_1_2_0.html

@thomasjpfan
Copy link
Member

@lesteve
Copy link
Member Author

lesteve commented Mar 20, 2023

Indeed the bug is fixed in sphinx-gallery development version, the right URL is http://lesteve.github.io/scikit-learn/stable/lite/lab/?path=auto_examples/release_highlights/plot_release_highlights_1_2_0.ipynb

@betatim
Copy link
Member

betatim commented Mar 21, 2023

Having a "beta" label on the button would be a good start I think (easier than blacklisting examples). If it leads to a huge number of complaints (instead of constructive issues) it is easy enough to remove the button again from the docs. So I think we should do what Loic suggested and not wait for all things to be resolved.

@thomasjpfan
Copy link
Member

adding a cell with a big warning at the beginning of each notebook (only in JupyterLite of course) saying that this is beta and may break.

Once the dependency issue is resolved, I'm okay with the big warning option at the beginning of each notebook that only appears in JupyterLite.

@lesteve
Copy link
Member Author

lesteve commented Apr 3, 2023

So right now I have added warnings at the top of each notebook like this:

image

There is also a cell for JupyterLite-specific code that should cover most of the use-cases:

  • installing packages like seaborn or plotly with %pip install + some more code e.g. in the plotly case
  • using pyodide_http.patch_all() to patch HTTP requests and make things like sklearn.datasets.fetch_* work

I put a red warning for the one notebook that uses Plotly because I think Plotly has issues in JupyterLite (although the notebook seems to be working for some reason)
image

I think the main thing that would be needed to get this merged is a sphinx-gallery release. At the same time it is good to stress-test sphinx-gallery a bit more before doing a release ...

What else do you think is needed to get this merged?

  • Is a beta near the Jupyter logo a must? I could probably hack something that does not need a sphinx-gallery modification
  • is the "open JupyterLite in a new tab" a must? Not sure whether it can be hacked without modifying sphinx-gallery (maybe with some Javascript that adds on the fly "target=_blank". Not sure I want to make sphinx-gallery more complicated with an additional option since it seems like a JupyterLite bug that may be fixed one day (although maybe not super soon).
  • Tweak the wording of the warning and maybe add a link to the scikit-learn issues in case they noticed issues. I don't think this will generate a lot of traffic but I may be wrong
  • Something else?

Reminder: you can look at an example here (CircleCI limitation prevents JupyterLite to work inside the CircleCI artifacts):
https://lesteve.github.io/scikit-learn/stable/auto_examples/release_highlights/plot_release_highlights_1_2_0.html#sphx-glr-auto-examples-release-highlights-plot-release-highlights-1-2-0-py

@adrinjalali
Copy link
Member

I just tried the linked example, running the cells, it says pandas is missing from the environment, and !pip install pandas fails too.

Copy link
Member

@thomasjpfan thomasjpfan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for the update. This is looking good!

Is a beta near the Jupyter logo a must?

I think the banner in the notebook is enough.

open JupyterLite in a new tab

I think the current behavior is okay. The binder link does not open in a new tab either. (I'll prefer to open in another tab, but it's not a blocker.)

As for the example: lesteve.github.io/scikit-learn/stable/auto_examples/release_highlights/plot_release_highlights_1_2_0.html#sphx-glr-auto-examples-release-highlights-plot-release-highlights-1-2-0-py, I'm getting a BadStatusLine: HTTP/1.1 0 error running fetch_openml:

fetch_openml(
    "titanic", version=1, as_frame=True, return_X_y=True, parser="pandas"
)

@lesteve lesteve mentioned this pull request Apr 3, 2023
@lesteve
Copy link
Member Author

lesteve commented Apr 3, 2023

Thanks a lot for your feed-back:

  • the pandas one should be not too hard to fix (add import pandas in the relevant notebooks). %pip install pandas is the way to go for JupyterLite and probably other notebook interfaces too.
  • the fetch_openml one may be down to a CORS issue, I asked OpenML in CORS policy openml/OpenML#1135 (comment) if the right headers can be added to the server response.

doc/conf.py Outdated
'parser="pandas"' in notebook_content_str
or "as_frame=True" in notebook_content_str
):
code_lines.extend("import pandas")
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does JupyterLite require an "import pandas" before a library can use it?

In any case, I am okay with running "import pandas" all the time to prevent any pandas related issues.

Copy link
Member Author

@lesteve lesteve Apr 13, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My understanding is that there is a bit of magic in Pyodide that if it you type import matplotlib in the Pyodide console (or in JupyterLite with a Pyodide kernel in our case) it will "just work". This is the case for all packages that are included inside Pyodide, including pandas.

On the other hand if you are calling a function that does an import inside it it will not work. Examples where this happens:

  • from sklearn.utils import check_matplotlib_support; check_matplotlib_support('test')
  • %matplotlib inline

A work-around is to do the import before calling the function.

The kind of error you get:

ModuleNotFoundError: The module 'matplotlib' is included in the Pyodide distribution, but it is not installed.
You can install it by calling:
  await micropip.install("matplotlib") in Python, or
  await pyodide.loadPackage("matplotlib") in JavaScript
See https://pyodide.org/en/stable/usage/loading-packages.html for more details.

I am not sure how much hope there is too fix it in Pyodide. I would agree that this is indeed suprising.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wow, I see. In that case, can we work around these issues by always importing packages that is commonly use in the examples, such as matplotlib, pandas, etc.?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess that would be another option indeed, I was trying to add some code only in the notebooks where it was needed but maybe this is not worth the effort ...

Also I opened pyodide/pyodide#3771 to get some feeling whether the underlying issue is fixable.

doc/conf.py Outdated
code_lines.extend(
[
"from sklearn.datasets import _openml",
"_openml._OPENML_PREFIX = 'https://api.openml.org/'",
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

With #26171 merged, is this patch required?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes for now until the OpenML header thing is fixed.

Note that the scikit-learn version we are using is the version available in Pyodide, namely 1.2.2 at the time of writing and #26171 only is in main.

I have some medium-term plan to add a CI build for the scikit-learn development version, which potentially could be published similarly to our scikit-learn development wheel and installed in JupyterLite but it will take a bit of time.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To check my understanding: if there was a Pyodide build that includes #26171, can this OpenML work-around be removed without waiting for openml/OpenML#1135 to be resolved?

Copy link
Member Author

@lesteve lesteve Apr 17, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, although my favourite way out would be that the OpenML CORS issue can be fixed in the not too distant future and this temporary work-around can be removed.

@lesteve lesteve marked this pull request as ready for review April 17, 2023 18:51
@lesteve
Copy link
Member Author

lesteve commented Apr 17, 2023

I think this is in a good enough state to be reviewed, I have updated https://lesteve.github.io/scikit-learn, the 1.2 release highlight example runs fine.

Feel free to run other examples from the gallery and find other issues 😉!

@adrinjalali
Copy link
Member

I tried a few examples, they all ran nicely, except that for some of them they'd get stuck in a cell (not necessarily the import one), and after a kernel restart, they run fine. This is NICE!

@lesteve
Copy link
Member Author

lesteve commented Apr 18, 2023

I tried a few examples, they all ran nicely, except that for some of them they'd get stuck in a cell (not necessarily the import one), and after a kernel restart, they run fine.

Interesting, if you remember the particular notebooks that get stuck, I can have a closer look. Now that using OpenBLAS pyodide/pyodide#3331 has been merged, the full scikit-learn pass (except a few xfailed tests) with the Pyodide development version see https://github.com/lesteve/scikit-learn-tests-pyodide for more details, so I am hoping this kind of intermittent issues will be a thing of the past.

This is NICE!

Thanks 😉!

@adrinjalali
Copy link
Member

if you remember the particular notebooks that get stuck, I can have a closer look

It's not something I can reproduce, so I'm happy to have this merged and have a broader testing audience and take it from there.

Copy link
Member

@adrinjalali adrinjalali left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Otherwise LGTM.

doc/conf.py Outdated Show resolved Hide resolved
@thomasjpfan
Copy link
Member

I'm trying to see how this alters our release process. At a high level, I see this process:

  1. Cut a release with scikit-learn v1.3
  2. Update Pyodide to build scikit-learn v1.3 (hopefully with no additional patches)
  3. Wait for Pyodide to release so that it includes scikit-learn v1.3

Is this correct? If so, my concern is the wait for Pyodide to release. There will be a time period where our examples were updated to v1.3, but not run on the version packaged by Pyodide.

@adrinjalali
Copy link
Member

Is this correct? If so, my concern is the wait for Pyodide to release. There will be a time period where our examples were updated to v1.3, but not run on the version packaged by Pyodide.

Would there be a way for the examples to specify exact version of scikit-learn they want installed, and fail if it's not released, with a nice message that users need to wait for that, and in the meantime they can download the notebooks for themselves or use mybinder?

@lesteve
Copy link
Member Author

lesteve commented Apr 18, 2023

Is this correct? If so, my concern is the wait for Pyodide to release. There will be a time period where our examples were updated to v1.3, but not run on the version packaged by Pyodide.

Good point indeed! I can envision a future where we build a Pyodide wheel in our CI and we upload it somewhere (TBD) and then we could add %pip install <the-right-incantation-goes-here> in the notebooks to make sure you install the right version on scikit-learn rather than relying on the one from Pyodide.

Full disclosure, I have not done it so I may be oversimplifying the situation ... it seems like pydantic-core has wasm wheels in its github release https://github.com/pydantic/pydantic-core/releases/tag/v0.25.0 but for now PyPI does not support wasm wheels e.g. https://discuss.python.org/t/support-wasm-wheels-on-pypi/21924.

cc @rth in case I am oversimplifying the situation too much on the Pyodide wheel packaging and installing part.

Before this future happens, the process you mention seems to describe accurately what would happen. There is an additional thing that I am not sure about, is how JupyterLite controls the Pyodide version. Right now it seems like JupyterLite has Pyodide 0.23.0 although Pyodide 0.23.1 has been released a few days ago.

Would there be a way for the examples to specify exact version of scikit-learn they want installed, and fail if it's not released, with a nice message that users need to wait for that, and in the meantime they can download the notebooks for themselves or use mybinder?

I guess we could add a cell that checks the version at the beginning with a nice error message if the scikit-learn version is not recent enough. You would still need to figure out (and maintain) which version is needed by each example but maybe this is worth it.

@adrinjalali
Copy link
Member

I'm a bit confused, can we not have a specific version installed in that environment? Let's say two releases down the line, what happens if the user looks at an example from an older version, and clicks on the button, do they get an environment with the most recent version instead of the one corresponding to the example?

@lesteve
Copy link
Member Author

lesteve commented Apr 19, 2023

I'm a bit confused, can we not have a specific version installed in that environment?

Right now, JupyterLite has a fixed Pyodide version, and Pyodide has a fixed version of scikit-learn (1.2.2 for Pyodide 0.23.0 for example). As I was trying to say we could build ourselves a scikit-learn wasm wheel, make it accessible somewhere so that it can be installed in the notebook via %pip install <the-right-thing-goes-here>.

Let's say two releases down the line, what happens if the user looks at an example from an older version, and clicks on the button, do they get an environment with the most recent version instead of the one corresponding to the example?

I am not too sure how that would work, but at first sight it seems non trivial to support the older version use case with JupyterLite. I would guess this use case is very rarely used. In an ideal world I agree we would support at the very least stable vs dev though.

Checking the Binder link behavior, you actually get a scikit-learn development version, even from the stable doc (and even from older versions). Nobody seems to have complained about it yet 😉.

@betatim
Copy link
Member

betatim commented Apr 19, 2023

Is it feasible to build pyodide (or JupyterLite? or both?) with the specific version of scikit-learn that the docs were built with? Then we could ship everything needed, new versions would work and old ones would keep working as well because everything is hosted in the build output of the docs page.

@lesteve
Copy link
Member Author

lesteve commented Apr 19, 2023

I guess my preference would be for this PR to be merged in its current state and then to iterate in further PRs to make it more robust. I feel like merging this PR would be useful to gather wider feed-back and it is unlikely to be too disruptive since it is only on the dev website. I am quite hopeful that there is a way forward to make it more robust and that it will work by the time the next scikit-learn release comes around.

I would totally understand if cautiousness is preferred though and that the consensus is making it more robust before merging this PR.

Right now I think the best way forward looks like this:

  • build a development wheel in our CI. This needs to use the right emscripten version to match the Pyodide one use below.
  • upload it somewhere where it can be used inside JupyterLite via %pip install, I think that means github right now because you need a CORS proxy and cnd.jsdelivr.net/gh gives us one for github files.
  • set the Pyodide version in JupyterLite to match the right emscripten version (there must be a way to do this although I still need to figure out how)

Copy link
Member

@thomasjpfan thomasjpfan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the big warning box is good enough to show that jupyterlite integration is experimental.

I'm happy with merging this now and iterate. LGTM

@thomasjpfan thomasjpfan merged commit c504f7a into scikit-learn:main Apr 19, 2023
26 checks passed
@lesteve
Copy link
Member Author

lesteve commented Apr 19, 2023

Great thanks a lot!

@lesteve lesteve deleted the jupyterlite-in-examples branch April 19, 2023 14:39
@ogrisel
Copy link
Member

ogrisel commented Apr 19, 2023

This is a really great achievement. Thanks so much to anyone involved and @lesteve in particular!

@rth
Copy link
Member

rth commented Apr 20, 2023

As I was trying to say we could build ourselves a scikit-learn wasm wheel, make it accessible somewhere so that it can be installed in the notebook via %pip install .

Yes, that should mostly work already now. The work needed is to integrate that setup nicely with sphinx-gallery and Jupyterlite, as that's not a typical workflow.

MohitBurkule added a commit to MohitBurkule/scikit-learn that referenced this pull request May 7, 2023
* MAINT Clean deprecated losses in (hist) gradient boosting for 1.3 (scikit-learn#25834)

* MAINT Clean deprecation of normalize in calibration_curve for 1.3 (scikit-learn#25833)

* BLD Clean command removes generated from cython templates (scikit-learn#25839)

* PERF Implement `PairwiseDistancesReduction` backend for `KNeighbors.predict_proba` (scikit-learn#24076)

Signed-off-by: Julien Jerphanion <git@jjerphan.xyz>
Co-authored-by: Julien Jerphanion <git@jjerphan.xyz>
Co-authored-by: Olivier Grisel <olivier.grisel@ensta.org>

* MAINT Added Parameter Validation for datasets.make_circles (scikit-learn#25848)

Co-authored-by: jeremiedbb <jeremiedbb@yahoo.fr>

* MNT use a single job by default with sphinx build (scikit-learn#25836)

* BLD Generate warning automatically for templated cython files (scikit-learn#25842)

* MAINT parameter validation for sklearn.datasets.fetch_lfw_people (scikit-learn#25820)

Co-authored-by: jeremiedbb <jeremiedbb@yahoo.fr>

* MAINT Parameters validation for metrics.fbeta_score (scikit-learn#25841)

* TST add global_random_seed fixture to sklearn/covariance/tests/test_robust_covariance.py (scikit-learn#25821)

* MAINT Parameter validation for linear_model.orthogonal_mp (scikit-learn#25817)

* TST activate common tests for TSNE (scikit-learn#25374)

* CI Update lock files (scikit-learn#25849)

* MAINT Added Parameter Validation for metrics.mean_gamma_deviance (scikit-learn#25853)

* MAINT Parameters validation for feature_selection.mutual_info_regression (scikit-learn#25850)

* MAINT parameter validation metrics.class_likelihood_ratios (scikit-learn#25863)

Co-authored-by: Jérémie du Boisberranger <34657725+jeremiedbb@users.noreply.github.com>

* MAINT Ensure disjoint interval constraints (scikit-learn#25797)

* MAINT Parameters validation for utils.gen_batches (scikit-learn#25864)

* TST use global_random_seed in test_dict_vectorizer.py (scikit-learn#24533)

* TST use global_random_seed in test_pls.py (scikit-learn#24526)

Co-authored-by: jeremiedbb <jeremiedbb@yahoo.fr>

* TST use global_random_seed in test_gpc.py (scikit-learn#24600)

Co-authored-by: jeremiedbb <jeremiedbb@yahoo.fr>

* DOC Fix overlapping plot axis in bench_sample_without_replacement.py (scikit-learn#25870)

* MAINT Use contiguous memoryviews in _random.pyx (scikit-learn#25871)

* MAINT parameter validation sklearn.datasets.fetch_lfw_pair (scikit-learn#25857)

* MAINT Parameters validation for metrics.classification_report (scikit-learn#25868)

* Empty commit

* DOC fix docstring dtype parameter in OrdinalEncoder (scikit-learn#25877)

* MAINT Clean up depreacted "log" loss of SGDClassifier for 1.3 (scikit-learn#25865)

* ENH Adds TargetEncoder (scikit-learn#25334)

Co-authored-by: Andreas Mueller <t3kcit@gmail.com>
Co-authored-by: Olivier Grisel <olivier.grisel@ensta.org>
Co-authored-by: Jovan Stojanovic <62058944+jovan-stojanovic@users.noreply.github.com>
Co-authored-by: Guillaume Lemaitre <g.lemaitre58@gmail.com>

* CI make it possible to cancel running Azure jobs (scikit-learn#25876)

* MAINT Clean-up deprecated if_delegate_has_method for 1.3 (scikit-learn#25879)

* MAINT Parameter validation for tree.export_text (scikit-learn#25867)

* DOC impact of `tol` for solvers in RidgeClassifier (scikit-learn#25530)

* MAINT Parameters validation for metrics.hinge_loss (scikit-learn#25880)

Co-authored-by: Jérémie du Boisberranger <34657725+jeremiedbb@users.noreply.github.com>

* MAINT Parameters validation for metrics.ndcg_score (scikit-learn#25885)

* ENH KMeans initialization account for sample weights (scikit-learn#25752)

Co-authored-by: jeremiedbb <jeremiedbb@yahoo.fr>
Co-authored-by: Guillaume Lemaitre <g.lemaitre58@gmail.com>
Co-authored-by: Jérémie du Boisberranger <34657725+jeremiedbb@users.noreply.github.com>

* TST use global_random_seed in sklearn/tests/test_dummy.py (scikit-learn#25884)

* DOC improve calibration user guide (scikit-learn#25687)

* ENH Support for sparse matrices added to `sklearn.metrics.silhouette_samples` (scikit-learn#24677)

Co-authored-by: Sahil Gupta <sahil@Sahils-MBP.lan>
Co-authored-by: Thomas J. Fan <thomasjpfan@gmail.com>
Co-authored-by: Guillaume Lemaitre <g.lemaitre58@gmail.com>

* MAINT validate_params for plot_tree (scikit-learn#25882)

Co-authored-by: Itay <itayvegh@gmail.com>

* MAINT add missing space in error message in SVM (scikit-learn#25913)

* FIX Adds requires_y tag to TargetEncoder (scikit-learn#25917)

* MAINT Consistent cython types continued (scikit-learn#25810)

* TST Speed-up common tests of DictionaryLearning (scikit-learn#25892)

* TST Speed-up test_dbscan_optics_parity (scikit-learn#25893)

* ENH add np.nan option for zero_division in precision/recall/f-score (scikit-learn#25531)

Co-authored-by: Guillaume Lemaitre <g.lemaitre58@gmail.com>

* MAINT Parameters validation for datasets.make_low_rank_matrix (scikit-learn#25901)

* MAINT Parameter validation for metrics.cluster.adjusted_mutual_info_score (scikit-learn#25898)

Co-authored-by: Jérémie du Boisberranger <34657725+jeremiedbb@users.noreply.github.com>

* TST Speed-up test_partial_dependence.test_output_shape (scikit-learn#25895)

Co-authored-by: Thomas J. Fan <thomasjpfan@gmail.com>

* MAINT Parameters validation for datasets.make_regression (scikit-learn#25899)

Co-authored-by: Jérémie du Boisberranger <34657725+jeremiedbb@users.noreply.github.com>

* MAINT Parameters validation for metrics.mean_squared_log_error (scikit-learn#25924)

* TST Use global_random_seed in tests/test_naive_bayes.py (scikit-learn#25890)

* TST add global_random_seed fixture to sklearn/datasets/tests/test_covtype.py (scikit-learn#25904)

Co-authored-by: Jérémie du Boisberranger <34657725+jeremiedbb@users.noreply.github.com>
Co-authored-by: jeremiedbb <jeremiedbb@yahoo.fr>

* MAINT Parameters validation for datasets.make_multilabel_classification (scikit-learn#25920)

* Fixed feature mapping typo (scikit-learn#25934)

* MAINT switch to newer codecov uploader (scikit-learn#25919)

Co-authored-by: Loïc Estève <loic.esteve@ymail.com>

* TST Speed-up test suite when using pytest-xdist (scikit-learn#25918)

* DOC update license year to 2023 (scikit-learn#25936)

* FIX Remove spurious feature names warning in IsolationForest (scikit-learn#25931)

* TST fix unstable test_newrand_set_seed (scikit-learn#25940)

Co-authored-by: Jérémie du Boisberranger <34657725+jeremiedbb@users.noreply.github.com>

* MAINT Clean-up deprecated max_features="auto" in trees/forests/gb (scikit-learn#25941)

* MAINT LogisticRegression informative error msg when penaly=elasticnet and l1_ratio is None (scikit-learn#25925)

Co-authored-by: jeremiedbb <jeremiedbb@yahoo.fr>

* MAINT Clean-up remaining SGDClassifier(loss="log") (scikit-learn#25938)

* FIX Fixes pandas extension arrays in check_array (scikit-learn#25813)

* FIX Fixes pandas extension arrays with objects in check_array (scikit-learn#25814)

* CI Disable pytest-xdist in pylatest_pip_openblas_pandas build (scikit-learn#25943)

* MAINT remove deprecated call to resources.content (scikit-learn#25951)

* DOC note on calibration impact on ranking (scikit-learn#25900)

* Remove loguniform fix, use scipy.stats instead (scikit-learn#24665)

Co-authored-by: Olivier Grisel <olivier.grisel@ensta.org>

* MAINT Fix broken links in cluster.dbscan module (scikit-learn#25958)

* DOC Fix lars Xy shape (scikit-learn#25952)

* ENH Add drop_intermediate parameter to metrics.precision_recall_curve (scikit-learn#24668)

Co-authored-by: Guillaume Lemaitre <g.lemaitre58@gmail.com>

* FIX improve error message when computing NDCG with a single document (scikit-learn#25672)

Co-authored-by: Guillaume Lemaitre <g.lemaitre58@gmail.com>

* MAINT introduce _get_response_values and _check_response_methods (scikit-learn#23073)

Co-authored-by: Thomas J. Fan <thomasjpfan@gmail.com>
Co-authored-by: Jérémie du Boisberranger <34657725+jeremiedbb@users.noreply.github.com>

* MAINT Extend message for large sparse matrices support (scikit-learn#25961)

Co-authored-by: Meekail Zain <34613774+Micky774@users.noreply.github.com>

* MAINT Parameters validation for datasets.make_gaussian_quantiles (scikit-learn#25959)

Co-authored-by: Jérémie du Boisberranger <34657725+jeremiedbb@users.noreply.github.com>

* MAINT Parameters validation for sklearn.metrics.d2_tweedie_score (scikit-learn#25975)

* MAINT Parameters validation for datasets.make_hastie_10_2 (scikit-learn#25967)

* MAINT Parameters validation for preprocessing.minmax_scale (scikit-learn#25962)

Co-authored-by: Jérémie du Boisberranger <34657725+jeremiedbb@users.noreply.github.com>

* MAINT Parameters validation for datasets.make_checkerboard (scikit-learn#25955)

* MAINT Parameters validation for datasets.make_biclusters (scikit-learn#25945)

* MAINT Parameters validation for datasets.make_moons (scikit-learn#25971)

* DOC replace deviance by loss in docstring of GradientBoosting (scikit-learn#25968)

* MAINT Fix broken link in feature_selection/_univariate_selection.py (scikit-learn#25984)

* DOC Update model_persistence.rst to fix skops example (scikit-learn#25993)

Co-authored-by: adrinjalali <adrin.jalali@gmail.com>

* DOC Specified meaning for max_patches=None in extract_patches_2d  (scikit-learn#25996)

* DOC document that last step is never cached in pipeline (scikit-learn#25995)

Co-authored-by: Guillaume Lemaitre <g.lemaitre58@gmail.com>

* FIX SequentialFeatureSelector throws IndexError when cv is a generator (scikit-learn#25973)

* ENH Adds infrequent categories support to OrdinalEncoder (scikit-learn#25677)

Co-authored-by: Tim Head <betatim@gmail.com>
Co-authored-by: Olivier Grisel <olivier.grisel@ensta.org>
Co-authored-by: Andreas Mueller <t3kcit@gmail.com>

* MAINT make plot_digits_denoising deterministic by fixing random state (scikit-learn#26004)

* DOC improve example of PatchExtractor (scikit-learn#26002)

* MAINT Parameters validation for datasets.make_friedman2 (scikit-learn#25986)

* MAINT Parameters validation for datasets.make_friedman3 (scikit-learn#25989)

* MAINT Parameters validation for datasets.make_sparse_uncorrelated (scikit-learn#26001)

* MAINT Parameters validation for datasets.make_spd_matrix (scikit-learn#26003)

* MAINT Parameters validation for datasets.make_sparse_spd_matrix (scikit-learn#26009)

* DOC Added the meanings of default=None for PatchExtractor parameters (scikit-learn#26005)

* MAINT remove unecessary check covered by parameter validation framework (scikit-learn#26014)

* MAINT Consistent cython types from _typedefs (scikit-learn#25942)

Co-authored-by: Julien Jerphanion <git@jjerphan.xyz>

* MAINT Parameters validation for datasets.make_swiss_roll (scikit-learn#26020)

* MAINT Parameters validation for datasets.make_s_curve (scikit-learn#26022)

* MAINT Parameters validation for datasets.make_blobs (scikit-learn#25983)

Co-authored-by: Guillaume Lemaitre <g.lemaitre58@gmail.com>

* DOC fix SplineTransformer include_bias docstring (scikit-learn#26018)

* ENH RocCurveDisplay add option to plot chance level (scikit-learn#25987)

* DOC show from_estimator and from_predictions for Displays (scikit-learn#25994)

* EXA Fix rst in plot_partial_dependence (scikit-learn#26028)

* CI Adds coverage to docker jobs on Azure (scikit-learn#26027)

Co-authored-by: Julien Jerphanion <git@jjerphan.xyz>
Co-authored-by: Olivier Grisel <olivier.grisel@ensta.org>

* API Replace `n_iter` in `Bayesian Ridge` and `ARDRegression` (scikit-learn#25697)

Co-authored-by: Guillaume Lemaitre <g.lemaitre58@gmail.com>

* CLN Make _NumPyAPIWrapper naming consistent to _ArrayAPIWrapper (scikit-learn#26039)

* CI disable coverage on Windows to keep CI times reasonable (scikit-learn#26052)

* DOC Use Scientific Python Plausible instance for analytics (scikit-learn#25547)

* MAINT Parameters validation for sklearn.preprocessing.scale (scikit-learn#26036)

* MAINT Parameters validation for sklearn.metrics.pairwise.haversine_distances (scikit-learn#26047)

* MAINT Parameters validation for sklearn.metrics.pairwise.laplacian_kernel (scikit-learn#26048)

* MAINT Parameters validation for sklearn.metrics.pairwise.linear_kernel (scikit-learn#26049)

* MAINT Parameters validation for sklearn.metrics.silhouette_samples (scikit-learn#26053)

* MAINT Parameters validation for sklearn.preprocessing.add_dummy_feature (scikit-learn#26058)

* Added Parameter Validation for metrics.cluster.normalized_mutual_info_score() (scikit-learn#26060)

* DOC Typos in HistGradientBoosting documentation (scikit-learn#26057)

* TST add global_random_seed fixture to sklearn/datasets/tests/test_rcv1.py (scikit-learn#26043)

* MAINT Parameters validation for sklearn.metrics.pairwise.cosine_similarity (scikit-learn#26006)

Co-authored-by: Jérémie du Boisberranger <34657725+jeremiedbb@users.noreply.github.com>

* ENH Adds isdtype to Array API wrapper (scikit-learn#26029)

* MAINT Parameters validation for sklearn.metrics.silhouette_score (scikit-learn#26054)

Co-authored-by: Jérémie du Boisberranger <34657725+jeremiedbb@users.noreply.github.com>

* FIX fix spelling mistake in _NumPyAPIWrapper (scikit-learn#26064)

* CI ignore more non-library Python files in codecov (scikit-learn#26059)

* MAINT Parameters validation for sklearn.metrics.pairwise.cosine_distances (scikit-learn#26046)

Co-authored-by: Jérémie du Boisberranger <34657725+jeremiedbb@users.noreply.github.com>

* MAINT Introduce BinaryClassifierCurveDisplayMixin (scikit-learn#25969)

Co-authored-by: Jérémie du Boisberranger <34657725+jeremiedbb@users.noreply.github.com>

* ENH Forces shape to be tuple when using Array API's reshape (scikit-learn#26030)

Co-authored-by: Olivier Grisel <olivier.grisel@ensta.org>
Co-authored-by: Tim Head <betatim@gmail.com>

* MAINT Parameters validation for sklearn.metrics.pairwise.paired_euclidean_distances (scikit-learn#26073)

* MAINT Parameters validation for sklearn.metrics.pairwise.paired_manhattan_distances (scikit-learn#26074)

* MAINT Parameters validation for sklearn.metrics.pairwise.paired_cosine_distances (scikit-learn#26075)

* MAINT Parameters validation for sklearn.preprocessing.binarize (scikit-learn#26076)

* MAINT Parameters validation for metrics.explained_variance_score (scikit-learn#26079)

* DOC use correct template name for displays (scikit-learn#26081)

* MAINT Parameters validation for sklearn.preprocessing.maxabs_scale (scikit-learn#26077)

Co-authored-by: Jérémie du Boisberranger <34657725+jeremiedbb@users.noreply.github.com>

* MAINT Parameters validation for sklearn.preprocessing.label_binarize (scikit-learn#26078)

Co-authored-by: Jérémie du Boisberranger <34657725+jeremiedbb@users.noreply.github.com>

* MAINT parameter validation for d2_absolute_error_score (scikit-learn#26066)

Co-authored-by: jeremiedbb <jeremiedbb@yahoo.fr>

* MAINT Parameter validation for roc_auc_score (scikit-learn#26007)

Co-authored-by: jeremiedbb <jeremiedbb@yahoo.fr>

* MAINT Parameters validation for sklearn.preprocessing.normalize (scikit-learn#26069)

Co-authored-by: jeremiedbb <jeremiedbb@yahoo.fr>

* MAINT Parameter validation for metrics.cluster.fowlkes_mallows_score (scikit-learn#26080)

Co-authored-by: jeremiedbb <jeremiedbb@yahoo.fr>

* MAINT Parameters validation for compose.make_column_transformer (scikit-learn#25897)

Co-authored-by: jeremiedbb <jeremiedbb@yahoo.fr>

* MAINT Parameters validation for sklearn.metrics.pairwise.polynomial_kernel (scikit-learn#26070)

Co-authored-by: Jérémie du Boisberranger <34657725+jeremiedbb@users.noreply.github.com>

* MAINT Parameters validation for sklearn.metrics.pairwise.rbf_kernel (scikit-learn#26071)

Co-authored-by: Jérémie du Boisberranger <34657725+jeremiedbb@users.noreply.github.com>

* MAINT Parameters validation for sklearn.metrics.pairwise.sigmoid_kernel (scikit-learn#26072)

Co-authored-by: Jérémie du Boisberranger <34657725+jeremiedbb@users.noreply.github.com>

* MAINT Param validation: constraint for numeric missing values (scikit-learn#26085)

* FIX Adds support for negative values in categorical features in gradient boosting (scikit-learn#25629)

Co-authored-by: Julien Jerphanion <git@jjerphan.xyz>
Co-authored-by: Tim Head <betatim@gmail.com>

* MAINT Fix C warning in Cython module splitting.pyx (scikit-learn#26051)

* MNT Updates _isotonic.pyx to use memoryviews instead of `cnp.ndarray` (scikit-learn#26068)

* FIX Fixes memory regression for inspecting extension arrays (scikit-learn#26106)

* PERF set openmp to use only physical cores by default (scikit-learn#26082)

* MNT Update black to 23.3.0 (scikit-learn#26110)

* MNT Adds black commit to git-blame-ignore-revs (scikit-learn#26111)

* MAINT Parameters validation for sklearn.metrics.pair_confusion_matrix (scikit-learn#26107)

* MAINT Parameters validation for sklearn.metrics.mean_poisson_deviance (scikit-learn#26104)

* DOC Use notebook style in plot_lof_outlier_detection.py (scikit-learn#26017)

Co-authored-by: Jérémie du Boisberranger <34657725+jeremiedbb@users.noreply.github.com>
Co-authored-by: Guillaume Lemaitre <g.lemaitre58@gmail.com>

* MAINT utils._fast_dict uses types from utils._typedefs (scikit-learn#26025)

* DOC remove sparse-matrix for `y` in ElasticNet (scikit-learn#26127)

* ENH add exponential loss (scikit-learn#25965)

* MAINT Parameters validation for sklearn.preprocessing.robust_scale (scikit-learn#26086)

* MAINT Parameters validation for sklearn.datasets.fetch_rcv1 (scikit-learn#26126)

* MAINT Parameters validation for sklearn.metrics.adjusted_rand_score (scikit-learn#26134)

Co-authored-by: Jérémie du Boisberranger <34657725+jeremiedbb@users.noreply.github.com>

* MAINT Parameters validation for sklearn.metrics.calinski_harabasz_score  (scikit-learn#26135)

* MAINT Parameters validation for sklearn.metrics.davies_bouldin_score  (scikit-learn#26136)

* MAINT: remove `from numpy.math cimport` statements (scikit-learn#26143)

* MAINT Parameters validation for sklearn.inspection.permutation_importance (scikit-learn#26145)

Co-authored-by: Jérémie du Boisberranger <34657725+jeremiedbb@users.noreply.github.com>

* MAINT Parameters validation for sklearn.metrics.cluster.homogeneity_completeness_v_measure (scikit-learn#26137)

Co-authored-by: Jérémie du Boisberranger <34657725+jeremiedbb@users.noreply.github.com>

* MAINT Parameters validation for sklearn.metrics.rand_score (scikit-learn#26138)

Co-authored-by: Jérémie du Boisberranger <34657725+jeremiedbb@users.noreply.github.com>

* DOC update comment in metrics/tests/test_classification.py (scikit-learn#26150)

* CI small cleanup of Cirrus CI test script (scikit-learn#26168)

* MAINT remove deprecated is_categorical_dtype (scikit-learn#26156)

* DOC Add skforecast to related projects page (scikit-learn#26133)

Co-authored-by: Thomas J. Fan <thomasjpfan@gmail.com>

* FIX Keeps namedtuple's class when transform returns a tuple (scikit-learn#26121)

* DOC corrected letter case for better readability in sklearn/metrics/_classification.py / (scikit-learn#26169)

* MAINT Parameters validation for sklearn.preprocessing.power_transform (scikit-learn#26142)

* FIX `roc_auc_score` now uses `y_prob` instead of `y_pred` (scikit-learn#26155)

* MAINT Parameters validation for sklearn.datasets.load_iris (scikit-learn#26177)

* MAINT Parameters validation for sklearn.datasets.load_diabetes (scikit-learn#26166)

Co-authored-by: Jérémie du Boisberranger <34657725+jeremiedbb@users.noreply.github.com>

* MAINT Parameters validation for sklearn.datasets.load_breast_cancer (scikit-learn#26165)

Co-authored-by: Jérémie du Boisberranger <34657725+jeremiedbb@users.noreply.github.com>

* MAINT Parameters validation for sklearn.metrics.cluster.entropy (scikit-learn#26162)

* MAINT Parameters validation for sklearn.datasets.fetch_species_distributions (scikit-learn#26161)

Co-authored-by: Jérémie du Boisberranger <34657725+jeremiedbb@users.noreply.github.com>

* ASV Fix tol in SGDRegressorBenchmark (scikit-learn#26146)

Co-authored-by: jeremie du boisberranger <jeremiedbb@yahoo.fr>

* MNT use api.openml.org URLs for fetch_openml (scikit-learn#26171)

* MAINT Parameters validation for sklearn.utils.resample (scikit-learn#26139)

* MAINT make it explicit that additive_chi2_kernel does not accept sparse matrix (scikit-learn#26178)

* MNT fix circleci link in README.rst (scikit-learn#26183)

* CI Fix circleci artifact redirector action (scikit-learn#26181)

* GOV introduce rights for groups as discussed in SLEP019 (scikit-learn#25753)

Co-authored-by: Julien <git@jjerphan.xyz>
Co-authored-by: Thomas J. Fan <thomasjpfan@gmail.com>

* MAINT Parameters validation for sklearn.neighbors.sort_graph_by_row_values (scikit-learn#26173)

Co-authored-by: Jérémie du Boisberranger <34657725+jeremiedbb@users.noreply.github.com>

* FIX improve convergence criterion for LogisticRegression(penalty="l1", solver='liblinear') (scikit-learn#25214)

Co-authored-by: Thomas J. Fan <thomasjpfan@gmail.com>
Co-authored-by: Olivier Grisel <olivier.grisel@ensta.org>

* MAINT Fix several typos in src and doc files (scikit-learn#26187)

* PERF fix overhead of _rescale_data in LinearRegression (scikit-learn#26207)

* ENH add Huber loss (scikit-learn#25966)

* MAINT Refactor GraphicalLasso and graphical_lasso (scikit-learn#26033)

Co-authored-by: Guillaume Lemaitre <g.lemaitre58@gmail.com>
Co-authored-by: Jérémie du Boisberranger <34657725+jeremiedbb@users.noreply.github.com>

* MAINT Cython linting (scikit-learn#25861)

* DOC Add JupyterLite button in example gallery (scikit-learn#25887)

* MAINT Parameters validation for sklearn.covariance.ledoit_wolf_shrinkage (scikit-learn#26200)

* MAINT Parameters validation for sklearn.datasets.load_linnerud (scikit-learn#26199)

* MAINT Parameters validation for sklearn.datasets.load_wine (scikit-learn#26196)

* DOC Added redirect to Provost paper + minor refactor (scikit-learn#26223)

* MAINT Parameter Validation for `covariance.graphical_lasso` (scikit-learn#25053)

Co-authored-by: Guillaume Lemaitre <g.lemaitre58@gmail.com>
Co-authored-by: Jérémie du Boisberranger <34657725+jeremiedbb@users.noreply.github.com>

* MAINT Parameters validation for sklearn.datasets.load_digits (scikit-learn#26195)

Co-authored-by: Jérémie du Boisberranger <34657725+jeremiedbb@users.noreply.github.com>

* MAINT Parameters validation for sklearn.preprocessing.quantile_transform (scikit-learn#26144)

Co-authored-by: Jérémie du Boisberranger <34657725+jeremiedbb@users.noreply.github.com>

* MAINT Parameters validation for sklearn.model_selection.cross_validate (scikit-learn#26129)

Co-authored-by: jeremiedbb <jeremiedbb@yahoo.fr>

* DOC Adds TargetEncoder example explaining the internal CV (scikit-learn#26185)

Co-authored-by: Tim Head <betatim@gmail.com>

* spelling mistake corrected in documentation for script `plot_document_clustering.py` (scikit-learn#26228)

Co-authored-by: Olivier Grisel <olivier.grisel@ensta.org>

* FIX possible UnboundLocalError in fetch_openml (scikit-learn#26236)

* ENH Adds PyTorch support to LinearDiscriminantAnalysis (scikit-learn#25956)

Co-authored-by: Olivier Grisel <olivier.grisel@ensta.org>
Co-authored-by: Tim Head <betatim@gmail.com>

* MNT Use fixed version of Pyodide (scikit-learn#26247)

* MNT Reset transform_output default in example to fix doc build build (scikit-learn#26269)

* DOC Update example plot_nearest_centroid.py (scikit-learn#26263)

* MNT reduce JupyterLite build size (scikit-learn#26246)

* DOC term -> meth in GradientBoosting (scikit-learn#26225)

* MNT speed-up html-noplot build (scikit-learn#26245)

Co-authored-by: Thomas J. Fan <thomasjpfan@gmail.com>

* MNT Use copy=False when creating DataFrames (scikit-learn#26272)

* MAINT Parameters validation for sklearn.model_selection.permutation_test_score (scikit-learn#26230)

* MAINT Parameters validation for sklearn.datasets.clear_data_home (scikit-learn#26259)

Co-authored-by: Jérémie du Boisberranger <34657725+jeremiedbb@users.noreply.github.com>

* MAINT Parameters validation for sklearn.datasets.load_files (scikit-learn#26203)

Co-authored-by: Jérémie du Boisberranger <34657725+jeremiedbb@users.noreply.github.com>

* MAINT Parameters validation for sklearn.datasets.get_data_home (scikit-learn#26260)

Co-authored-by: Jérémie du Boisberranger <34657725+jeremiedbb@users.noreply.github.com>

* DOC Fix y-axis plot labels in permutation test score example (scikit-learn#26240)

* MAINT cython-lint ignores asv_benchmarks (scikit-learn#26282)

* MAINT Parameter validation for metrics.cluster._supervised (scikit-learn#26258)

Co-authored-by: Jérémie du Boisberranger <34657725+jeremiedbb@users.noreply.github.com>

* DOC Improve docstring for tol in SequentialFeatureSelector (scikit-learn#26271)

* MAINT Parameters validation for  sklearn.datasets.load_sample_image (scikit-learn#26226)

Co-authored-by: Jérémie du Boisberranger <34657725+jeremiedbb@users.noreply.github.com>

* DOC Consistent param type for pos_label (scikit-learn#26237)

* DOC Minor grammar fix to imputation docs (scikit-learn#26283)

* MAINT Parameters validation for sklearn.calibration.calibration_curve (scikit-learn#26198)

Co-authored-by: jeremie du boisberranger <jeremiedbb@yahoo.fr>

* MAINT Parameters validation for sklearn.inspection.partial_dependence (scikit-learn#26209)

Co-authored-by: jeremie du boisberranger <jeremiedbb@yahoo.fr>

* MAINT Parameters validation for sklearn.model_selection.validation_curve (scikit-learn#26229)

Co-authored-by: Jérémie du Boisberranger <34657725+jeremiedbb@users.noreply.github.com>

* MAINT Parameters validation for sklearn.model_selection.learning_curve (scikit-learn#26227)

Co-authored-by: jeremie du boisberranger <jeremiedbb@yahoo.fr>

* MNT Remove deprecated pandas.api.types.is_sparse (scikit-learn#26287)

* CI Use Trusted Publishers for uploading wheels to PyPI (scikit-learn#26249)

* MAINT Parameters validation for sklearn.metrics.pairwise.manhattan_distances (scikit-learn#26122)

* PERF revert openmp use in csr_row_norms (scikit-learn#26275)

* MAINT Parameters validation for metrics.check_scoring (scikit-learn#26041)

Co-authored-by: Jérémie du Boisberranger <34657725+jeremiedbb@users.noreply.github.com>

* MNT Improve error message when checking classification target is of a non-regression type (scikit-learn#26281)

Co-authored-by: Adrin Jalali <adrin.jalali@gmail.com>
Co-authored-by: Thomas J. Fan <thomasjpfan@gmail.com>

* DOC fix link to User Guide encoder_infrequent_categories (scikit-learn#26309)

* MNT remove unused args in _predict_regression_tree_inplace_fast_dense (scikit-learn#26314)

* ENH Adds missing value support for trees (scikit-learn#23595)

Co-authored-by: Tim Head <betatim@gmail.com>
Co-authored-by: Julien Jerphanion <git@jjerphan.xyz>

* CLN Clean up logic in validate_data and cast_to_ndarray (scikit-learn#26300)

* MAINT refactor scorer using _get_response_values (scikit-learn#26037)

Co-authored-by: Jérémie du Boisberranger <34657725+jeremiedbb@users.noreply.github.com>
Co-authored-by: Adrin Jalali <adrin.jalali@gmail.com>

* DOC Add HGBDT to "see also" section of random forests (scikit-learn#26319)

Co-authored-by: ArturoAmorQ <arturo.amor-quiroz@polytechnique.edu>
Co-authored-by: Tim Head <betatim@gmail.com>

* MNT Bump Github Action labeler version to use newer Node (scikit-learn#26302)

* FIX thresholds should not exceed 1.0 with probabilities in `roc_curve`  (scikit-learn#26194)

Co-authored-by: Olivier Grisel <olivier.grisel@ensta.org>

* ENH Allow for appropriate dtype us in `preprocessing.PolynomialFeatures` for sparse matrices (scikit-learn#23731)

Co-authored-by: Aleksandr Kokhaniukov <alexander.kohanyukov@gmail.com>
Co-authored-by: Olivier Grisel <olivier.grisel@ensta.org>
Co-authored-by: Julien Jerphanion <git@jjerphan.xyz>
Co-authored-by: Thomas J. Fan <thomasjpfan@gmail.com>

* DOC Fix minor typo (scikit-learn#26327)

* MAINT bump minimum version for pytest (scikit-learn#26184)

Co-authored-by: Loïc Estève <loic.esteve@ymail.com>
Co-authored-by: Adrin Jalali <adrin.jalali@gmail.com>
Co-authored-by: Olivier Grisel <olivier.grisel@ensta.org>

* DOC fix return type in isotonic_regression (scikit-learn#26332)

* FIX fix available_if for MultiOutputRegressor.partial_fit (scikit-learn#26333)

Co-authored-by: Guillaume Lemaitre <g.lemaitre58@gmail.com>

* FIX make pipeline pass check_estimator (scikit-learn#26325)

* FEA Add multiclass support to `average_precision_score` (scikit-learn#24769)

Co-authored-by: Geoffrey <geoffrey.bolmier@gmail.com>
Co-authored-by: gbolmier <geoffrey.bolmier@volvocars.com>
Co-authored-by: Guillaume Lemaitre <g.lemaitre58@gmail.com>
Co-authored-by: Thomas J. Fan <thomasjpfan@gmail.com>

---------

Signed-off-by: Julien Jerphanion <git@jjerphan.xyz>
Co-authored-by: Jérémie du Boisberranger <34657725+jeremiedbb@users.noreply.github.com>
Co-authored-by: Meekail Zain <34613774+Micky774@users.noreply.github.com>
Co-authored-by: Julien Jerphanion <git@jjerphan.xyz>
Co-authored-by: Olivier Grisel <olivier.grisel@ensta.org>
Co-authored-by: zeeshan lone <56621467+still-learning-ev@users.noreply.github.com>
Co-authored-by: jeremiedbb <jeremiedbb@yahoo.fr>
Co-authored-by: Adrin Jalali <adrin.jalali@gmail.com>
Co-authored-by: Shiva chauhan <103742975+Shivachauhan17@users.noreply.github.com>
Co-authored-by: AymericBasset <45051041+AymericBasset@users.noreply.github.com>
Co-authored-by: Maren Westermann <maren.westermann@gmail.com>
Co-authored-by: Nishu Choudhary <51842539+choudharynishu@users.noreply.github.com>
Co-authored-by: Guillaume Lemaitre <g.lemaitre58@gmail.com>
Co-authored-by: Loïc Estève <loic.esteve@ymail.com>
Co-authored-by: Benedek Harsanyi <80836204+hbenedek@users.noreply.github.com>
Co-authored-by: Pooja Subramaniam <poojas2086@gmail.com>
Co-authored-by: Rushil Desai <rushildesai01@gmail.com>
Co-authored-by: Xiao Yuan <yuanx749@gmail.com>
Co-authored-by: Omar Salman <omar.salman@arbisoft.com>
Co-authored-by: 2357juan <29247195+2357juan@users.noreply.github.com>
Co-authored-by: Théophile Baranger <39696928+tbaranger@users.noreply.github.com>
Co-authored-by: Thomas J. Fan <thomasjpfan@gmail.com>
Co-authored-by: Andreas Mueller <t3kcit@gmail.com>
Co-authored-by: Jovan Stojanovic <62058944+jovan-stojanovic@users.noreply.github.com>
Co-authored-by: Rahil Parikh <75483881+rprkh@users.noreply.github.com>
Co-authored-by: Bharat Raghunathan <bharatraghunthan9767@gmail.com>
Co-authored-by: Sortofamudkip <wishyutp0328@gmail.com>
Co-authored-by: Gleb Levitski <36483986+glevv@users.noreply.github.com>
Co-authored-by: Christian Lorentzen <lorentzen.ch@gmail.com>
Co-authored-by: Ashwin Mathur <97467100+awinml@users.noreply.github.com>
Co-authored-by: Sahil Gupta <sahil@Sahils-MBP.lan>
Co-authored-by: Veghit <itay.vegh@gmail.com>
Co-authored-by: Itay <itayvegh@gmail.com>
Co-authored-by: precondition <57645186+precondition@users.noreply.github.com>
Co-authored-by: Marc Torrellas Socastro <marc.torsoc@gmail.com>
Co-authored-by: Dominic Fox <dominicjfox2@gmail.com>
Co-authored-by: futurewarning <36329275+futurewarning@users.noreply.github.com>
Co-authored-by: Yao Xiao <108576690+Charlie-XIAO@users.noreply.github.com>
Co-authored-by: Joey Ortiz <orangesherbet0@gmail.com>
Co-authored-by: Tim Head <betatim@gmail.com>
Co-authored-by: Christian Veenhuis <veenhuis@gmail.com>
Co-authored-by: adienes <51664769+adienes@users.noreply.github.com>
Co-authored-by: Dave Berenbaum <dave.berenbaum@gmail.com>
Co-authored-by: Lene Preuss <lene.preuss@gmail.com>
Co-authored-by: A.H.Mansouri <83764851+A-H-Mansoury@users.noreply.github.com>
Co-authored-by: Boris Feld <lothiraldan@gmail.com>
Co-authored-by: Carla J <ca.jancik@gmail.com>
Co-authored-by: windiana42 <61181806+windiana42@users.noreply.github.com>
Co-authored-by: mdarii <dariimaxim@gmail.com>
Co-authored-by: murezzda <47388020+murezzda@users.noreply.github.com>
Co-authored-by: Peter Piontek <piontek0@gmail.com>
Co-authored-by: John Pangas <swiftyxswaggy@outlook.com>
Co-authored-by: Dmitry Nesterov <76070534+dmitrylala@users.noreply.github.com>
Co-authored-by: Yuchen Zhou <72342196+ROMEEZHOU@users.noreply.github.com>
Co-authored-by: Ekaterina Butyugina <102963496+ekaterinabutyugina@users.noreply.github.com>
Co-authored-by: Jiawei Zhang <jiawei.zhang@nyu.edu>
Co-authored-by: Ansam Zedan <86729068+ansamz@users.noreply.github.com>
Co-authored-by: genvalen <genvalen@protonmail.com>
Co-authored-by: farhan khan <86480450+BabaYaga1221@users.noreply.github.com>
Co-authored-by: Arturo Amor <86408019+ArturoAmorQ@users.noreply.github.com>
Co-authored-by: Jiawei Zhang <jz4721@nyu.edu>
Co-authored-by: Ralf Gommers <ralf.gommers@gmail.com>
Co-authored-by: Jessicakk0711 <106110789+Jessicakk0711@users.noreply.github.com>
Co-authored-by: Ankur Singh <singankur28@gmail.com>
Co-authored-by: Seoeun(Sun☀️) Hong <75988952+seoeunHong@users.noreply.github.com>
Co-authored-by: Nightwalkx <74856680+xi-jiajun@users.noreply.github.com>
Co-authored-by: VIGNESH D <35656793+dvignesh1995@users.noreply.github.com>
Co-authored-by: Vincent-violet <130581473+Vincent-violet@users.noreply.github.com>
Co-authored-by: Elabonga Atuo <elabongaatuo@gmail.com>
Co-authored-by: Tom Dupré la Tour <tom.dupre-la-tour@m4x.org>
Co-authored-by: André Pedersen <andrped94@gmail.com>
Co-authored-by: Ashish Dutt <ashish.dutt8@gmail.com>
Co-authored-by: Phil <philsupertramp@users.noreply.github.com>
Co-authored-by: Stanislav (Stanley) Modrak <44023416+smith558@users.noreply.github.com>
Co-authored-by: hujiahong726 <52920842+hujiahong726@users.noreply.github.com>
Co-authored-by: James Dean <24254612+AcylSilane@users.noreply.github.com>
Co-authored-by: ArturoAmorQ <arturo.amor-quiroz@polytechnique.edu>
Co-authored-by: Aleksandr Kokhaniukov <alexander.kohanyukov@gmail.com>
Co-authored-by: c-git <43485962+c-git@users.noreply.github.com>
Co-authored-by: annegnx <64203599+annegnx@users.noreply.github.com>
Co-authored-by: Geoffrey <geoffrey.bolmier@gmail.com>
Co-authored-by: gbolmier <geoffrey.bolmier@volvocars.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

6 participants