Building interactive demos for examples

### Describe the issue linked to the documentation

This is not an issue but rather a good-to-have feature for documentation and this issue is more of a discussion.

It would be nice to have links to or embedding interactive demos made with Gradio inside documentation. 
I've built two apps that you might see how it looks like:
- Anomaly detection: https://huggingface.co/spaces/scikit-learn/anomaly-detection
- Classification: https://huggingface.co/spaces/scikit-learn/classification

We can have below demo (but more official version 😅) embedded in your documentation.
<img width="1155" alt="Ekran Resmi 2022-11-10 15 11 41" src="https://user-images.githubusercontent.com/53175384/201114005-5fd13d40-990a-412d-abe6-fdd01d0f87d9.png">

The current workflow for users is to download python code or run binder. This reduces amount of work in this workflow too!
If you think embedded demos is a bit overkill what we could do is to create these demos and host them on [Spaces](https://huggingface.co/spaces) and put link to Space instead (like it is with Keras examples or kornia examples, you can see them [here](https://huggingface.co/keras-io) and [here](https://huggingface.co/kornia), they're linked from their tutorials on both [Keras.io/examples](https://keras.io/examples/) and Kornia docs) We will also host the Spaces in better hardware (8 vCPU 32 GiB RAM) to make sure it's always running and all good. ✨ 

You can see how it's implemented in Kornia for rst docs [here](https://raw.githubusercontent.com/kornia/kornia/627ebcaaab1547c362908fc9ad9a68c6316c5993/docs/source/filters.rst). It looks like [this](https://kornia.readthedocs.io/en/latest/filters.html#interactive-demo) inside Kornia docs.

<img width="1353" alt="Ekran Resmi 2022-11-10 15 15 08" src="https://user-images.githubusercontent.com/53175384/201114865-d44b6af5-0b85-44d1-b490-0450d8ea05aa.png">

As for Keras, we just put a redirection link inside docs since their document generation is more layered.  
<img width="1309" alt="Ekran Resmi 2022-11-10 15 09 57" src="https://user-images.githubusercontent.com/53175384/201113694-a4c5b804-dce4-4e72-b23e-bbe449bbc150.png">

We definitely want to reduce the core maintainers' workflow so what would be cool is that we (team at [Gradio](https://gradio.app/) & community)  will be developing the demos and maintaining them through GitHub actions such that they will not break every time there's a breaking change in sklearn (this happens rarely, though 🙂)

Hoping to see how we could collaborate!

COMMENT:
Thanks for the demos @merveenoyan, they look great and they can really help the reader gain insights about the impact of hyperparameters on model behaviors. However as of now the scikit-learn HTML documentation has no dependency on external online services: it can be generated and browsed locally without any internet connection.

Furthermore any code change in scikit-learn that breaks an example can be detected on our CI when we generate the HTML doc which will not be the case for code hosted and executed on a third party platform. So I am a bit worried about starting to do this.

I would love to have interactive demos directly in the scikit-learn documentation. However I would prefer if we could find a way that does not rely on Python code execution on a remote server (as gradio requires) for the reason I mentioned above. Out of the top of my head, I see the following two options:

- Precomputing the results when executing the example and then rely on something like ipywidgets to display the results interactively in the generated HTML. Integration with sphinx-gallery might be challenging though. According to https://docs.readthedocs.io/en/stable/guides/jupyter.html#rendering-interactive-widgets it might require using the notebook format for the examples which we tried to avoid so far (because of bad interactions between json and git).

- Using pyodide / jupyterlite and co to directly run interactive examples in the browser. However, based on current investigations by @lesteve in https://github.com/lesteve/scikit-learn-tests-pyodide there are still a bunch of low level fatal errors that can happen when using scikit-learn on this platform so maybe it's a bit to early to invest in this.

I would like to probe the opinion of other users, contributors and maintainers. Maybe using the gradio / huggingface space combo is fine compared to the alternatives that have their own limitations at this time.

If maintainers do not want to have to deal with a doc dependency on remotely maintained code demos on huggingface spaces, then at least it would be worth publishing a blog post with those demos included on https://blog.scikit-learn.org (via https://github.com/scikit-learn/blog).

Labels: Documentation, RFC