Fix notebook-style examples

### Describe the issue linked to the documentation

Many legitimate notebook style examples have been broken, and specifically by the following PR
https://github.com/scikit-learn/scikit-learn/pull/9061


### List of examples to update
**Note for maintainers**: the content between begin/end_auto_generated is updated automatically by a script. If you edit it by hand your changes may be reverted. The script doing the update: https://gist.github.com/lesteve/478d52599d394ec5e7f56dbf0827a5e9

Here are all the examples that use patterns like `# #######` (found by `ag -l '# #####*\s#' examples | sort`, note there may be false positives ... for I removed [examples/impute/plot_missing_values.py](https://github.com/scikit-learn/scikit-learn/blob/main/examples/impute/plot_missing_values.py) which is using `# %%` but also `# ####` as title underlines ...):

begin_auto_generated
- [x] [examples/applications/plot_prediction_latency.py](https://github.com/scikit-learn/scikit-learn/blob/main/examples/applications/plot_prediction_latency.py) #22418
- [x] [examples/applications/plot_stock_market.py](https://github.com/scikit-learn/scikit-learn/blob/main/examples/applications/plot_stock_market.py) #22461
- [x] [examples/applications/wikipedia_principal_eigenvector.py](https://github.com/scikit-learn/scikit-learn/blob/main/examples/applications/wikipedia_principal_eigenvector.py) #22704
- [x] [examples/calibration/plot_calibration.py](https://github.com/scikit-learn/scikit-learn/blob/main/examples/calibration/plot_calibration.py) #22734
- [x] [examples/classification/plot_lda_qda.py](https://github.com/scikit-learn/scikit-learn/blob/main/examples/classification/plot_lda_qda.py) #22528
- [x] [examples/cluster/plot_affinity_propagation.py](https://github.com/scikit-learn/scikit-learn/blob/main/examples/cluster/plot_affinity_propagation.py) #22559
- [x] [examples/cluster/plot_coin_ward_segmentation.py](https://github.com/scikit-learn/scikit-learn/blob/main/examples/cluster/plot_coin_ward_segmentation.py) #23164
- [x] [examples/cluster/plot_dbscan.py](https://github.com/scikit-learn/scikit-learn/blob/main/examples/cluster/plot_dbscan.py) #22568
- [x] [examples/cluster/plot_dict_face_patches.py](https://github.com/scikit-learn/scikit-learn/blob/main/examples/cluster/plot_dict_face_patches.py) #22929
- [x] [examples/cluster/plot_feature_agglomeration_vs_univariate_selection.py](https://github.com/scikit-learn/scikit-learn/blob/main/examples/cluster/plot_feature_agglomeration_vs_univariate_selection.py) #22796
- [x] [examples/cluster/plot_mean_shift.py](https://github.com/scikit-learn/scikit-learn/blob/main/examples/cluster/plot_mean_shift.py) #22713
- [x] [examples/cluster/plot_mini_batch_kmeans.py](https://github.com/scikit-learn/scikit-learn/blob/main/examples/cluster/plot_mini_batch_kmeans.py) #22900
- [x] [examples/cluster/plot_segmentation_toy.py](https://github.com/scikit-learn/scikit-learn/blob/main/examples/cluster/plot_segmentation_toy.py) #23140
- [x] [examples/cluster/plot_ward_structured_vs_unstructured.py](https://github.com/scikit-learn/scikit-learn/blob/main/examples/cluster/plot_ward_structured_vs_unstructured.py) #23228
- [x] [examples/covariance/plot_covariance_estimation.py](https://github.com/scikit-learn/scikit-learn/blob/main/examples/covariance/plot_covariance_estimation.py) #23150
- [x] [examples/covariance/plot_sparse_cov.py](https://github.com/scikit-learn/scikit-learn/blob/main/examples/covariance/plot_sparse_cov.py) #22807
- [x] [examples/cross_decomposition/plot_compare_cross_decomposition.py](https://github.com/scikit-learn/scikit-learn/blob/main/examples/cross_decomposition/plot_compare_cross_decomposition.py) https://github.com/scikit-learn/scikit-learn/pull/23365
- [x] [examples/decomposition/plot_faces_decomposition.py](https://github.com/scikit-learn/scikit-learn/blob/main/examples/decomposition/plot_faces_decomposition.py) #22452
- [x] [examples/decomposition/plot_ica_blind_source_separation.py](https://github.com/scikit-learn/scikit-learn/blob/main/examples/decomposition/plot_ica_blind_source_separation.py) https://github.com/scikit-learn/scikit-learn/pull/23365
- [x] [examples/decomposition/plot_ica_vs_pca.py](https://github.com/scikit-learn/scikit-learn/blob/main/examples/decomposition/plot_ica_vs_pca.py) #23106
- [x] [examples/decomposition/plot_image_denoising.py](https://github.com/scikit-learn/scikit-learn/blob/main/examples/decomposition/plot_image_denoising.py) #22739
- [x] [examples/decomposition/plot_pca_3d.py](https://github.com/scikit-learn/scikit-learn/blob/main/examples/decomposition/plot_pca_3d.py) #23064
- [x] [examples/decomposition/plot_pca_vs_fa_model_selection.py](https://github.com/scikit-learn/scikit-learn/blob/main/examples/decomposition/plot_pca_vs_fa_model_selection.py) #23148
- [x] [examples/exercises/plot_cv_diabetes.py](https://github.com/scikit-learn/scikit-learn/blob/main/examples/exercises/plot_cv_diabetes.py) #22740
- [x] [examples/feature_selection/plot_feature_selection.py](https://github.com/scikit-learn/scikit-learn/blob/main/examples/feature_selection/plot_feature_selection.py) #22437
- [x] [examples/linear_model/plot_ard.py](https://github.com/scikit-learn/scikit-learn/blob/main/examples/linear_model/plot_ard.py) #22481
- [x] [examples/linear_model/plot_bayesian_ridge_curvefit.py](https://github.com/scikit-learn/scikit-learn/blob/main/examples/linear_model/plot_bayesian_ridge_curvefit.py) #22916
- [x] [examples/linear_model/plot_bayesian_ridge.py](https://github.com/scikit-learn/scikit-learn/blob/main/examples/linear_model/plot_bayesian_ridge.py) #22916 #22794
- [x] [examples/linear_model/plot_lasso_and_elasticnet.py](https://github.com/scikit-learn/scikit-learn/blob/main/examples/linear_model/plot_lasso_and_elasticnet.py) #22423
- [x] [examples/linear_model/plot_lasso_dense_vs_sparse_data.py](https://github.com/scikit-learn/scikit-learn/blob/main/examples/linear_model/plot_lasso_dense_vs_sparse_data.py) #22789
- [x] [examples/linear_model/plot_logistic_path.py](https://github.com/scikit-learn/scikit-learn/blob/main/examples/linear_model/plot_logistic_path.py) #22536
- [x] [examples/linear_model/plot_multi_task_lasso_support.py](https://github.com/scikit-learn/scikit-learn/blob/main/examples/linear_model/plot_multi_task_lasso_support.py) https://github.com/scikit-learn/scikit-learn/pull/23365
- [x] [examples/linear_model/plot_ols_3d.py](https://github.com/scikit-learn/scikit-learn/blob/main/examples/linear_model/plot_ols_3d.py) #22547
- [x] [examples/linear_model/plot_ridge_path.py](https://github.com/scikit-learn/scikit-learn/blob/main/examples/linear_model/plot_ridge_path.py) #23209
- [x] [examples/linear_model/plot_theilsen.py](https://github.com/scikit-learn/scikit-learn/blob/main/examples/linear_model/plot_theilsen.py) #23002
- [x] [examples/miscellaneous/plot_kernel_ridge_regression.py](https://github.com/scikit-learn/scikit-learn/blob/main/examples/miscellaneous/plot_kernel_ridge_regression.py) #22804
- [x] [examples/model_selection/grid_search_text_feature_extraction.py](https://github.com/scikit-learn/scikit-learn/blob/main/examples/model_selection/grid_search_text_feature_extraction.py) #22558
- [x] [examples/model_selection/plot_roc_crossval.py](https://github.com/scikit-learn/scikit-learn/blob/main/examples/model_selection/plot_roc_crossval.py) #22799
- [x] [examples/model_selection/plot_train_error_vs_test_error.py](https://github.com/scikit-learn/scikit-learn/blob/main/examples/model_selection/plot_train_error_vs_test_error.py) #22440
- [x] [examples/neighbors/plot_regression.py](https://github.com/scikit-learn/scikit-learn/blob/main/examples/neighbors/plot_regression.py) #22416
- [x] [examples/neural_networks/plot_rbm_logistic_classification.py](https://github.com/scikit-learn/scikit-learn/blob/main/examples/neural_networks/plot_rbm_logistic_classification.py) #23104
- [x] [examples/semi_supervised/plot_label_propagation_digits.py](https://github.com/scikit-learn/scikit-learn/blob/main/examples/semi_supervised/plot_label_propagation_digits.py) #22725
- [x] [examples/semi_supervised/plot_label_propagation_structure.py](https://github.com/scikit-learn/scikit-learn/blob/main/examples/semi_supervised/plot_label_propagation_structure.py) #22726
- [x] [examples/svm/plot_rbf_parameters.py](https://github.com/scikit-learn/scikit-learn/blob/main/examples/svm/plot_rbf_parameters.py) #22724
- [x] [examples/svm/plot_svm_anova.py](https://github.com/scikit-learn/scikit-learn/blob/main/examples/svm/plot_svm_anova.py) #22779
- [x] [examples/svm/plot_svm_regression.py](https://github.com/scikit-learn/scikit-learn/blob/main/examples/svm/plot_svm_regression.py) #22534
- [x] [examples/text/plot_document_clustering.py](https://github.com/scikit-learn/scikit-learn/blob/main/examples/text/plot_document_clustering.py) #22443

end_auto_generated

### Suggest a potential alternative/fix

The examples need to be reviewed on a case by case, to know whether they are "notebook-syle", as in https://sphinx-gallery.github.io/stable/tutorials/plot_parse.html#sphx-glr-tutorials-plot-parse-py or not. In general, we should favor notebook-style examples, which are typically more readable.

We should probably favor the "# %%" syntax to the long line of "###"
https://sphinx-gallery.github.io/stable/syntax.html#embed-rst-in-your-example-python-files

In terms of reviewing workflow, it can be useful to to send different PRs, rather than a big PR which will be harder to review.

### Pieces of advice if you are interested in working on this issue

- pick a file to get started with: e.g. https://github.com/scikit-learn/scikit-learn/blob/main/examples/semi_supervised/plot_label_propagation_digits.py with its [rendered HTML in the doc](https://scikit-learn.org/dev/auto_examples/semi_supervised/plot_label_propagation_digits.html)
- Mention which file you are working in a comment so that different people can work in parallel on different files
- use `# %%` as cell separator where you think it is appropriate. For example in https://github.com/scikit-learn/scikit-learn/blob/main/examples/semi_supervised/plot_label_propagation_digits.py I would say that some comments may not have their own cell like "Pick the top 10 most uncertain labels" whereas some should be turned into a title like "Plot".
- Look at existing notebook-style example for inspiration e.g. https://github.com/scikit-learn/scikit-learn/blob/main/examples/manifold/plot_swissroll.py with its [rendered HTML in the doc](https://scikit-learn.org/dev/auto_examples/manifold/plot_swissroll.html#sphx-glr-auto-examples-manifold-plot-swissroll-py)
- Look at the contributing doc to build the example HTML locally: https://scikit-learn.org/stable/developers/contributing.html in particular using `EXAMPLES_PATTERN=plot_label_propagation_digit make html` will only run the examples with `plot_label_propagation_digit` in their filenames. This makes it quicker to generate the doc for only the example you are working on and look at the HTML rendering locally.
- once you create a PR, check the CircleCI status at the bottom of the page and click on "Details"
![image](https://user-images.githubusercontent.com/1680079/153019748-e8393f78-75c6-45a4-bd53-0474d09d4ff7.png)
- It should bring you to a page like this, click on the name of the example you modify and check that the doc for this example looks right:
![image](https://user-images.githubusercontent.com/1680079/153020119-4d874be8-abff-4973-bcc2-842109be7654.png)

COMMENT:
Working on [plot_image_denoising.py](https://github.com/scikit-learn/scikit-learn/blob/main/examples/decomposition/plot_image_denoising.py)

Labels: Easy, Documentation, good first issue