.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "auto_examples/feature_selection/plot_rfe_digits.py" .. LINE NUMBERS ARE GIVEN BELOW. .. only:: html .. note:: :class: sphx-glr-download-link-note :ref:`Go to the end ` to download the full example code. or to run this example in your browser via JupyterLite or Binder .. rst-class:: sphx-glr-example-title .. _sphx_glr_auto_examples_feature_selection_plot_rfe_digits.py: ============================= Recursive feature elimination ============================= This example demonstrates how Recursive Feature Elimination (:class:`~sklearn.feature_selection.RFE`) can be used to determine the importance of individual pixels for classifying handwritten digits. :class:`~sklearn.feature_selection.RFE` recursively removes the least significant features, assigning ranks based on their importance, where higher `ranking_` values denote lower importance. The ranking is visualized using both shades of blue and pixel annotations for clarity. As expected, pixels positioned at the center of the image tend to be more predictive than those near the edges. .. note:: See also :ref:`sphx_glr_auto_examples_feature_selection_plot_rfe_with_cross_validation.py` .. GENERATED FROM PYTHON SOURCE LINES 20-58 .. image-sg:: /auto_examples/feature_selection/images/sphx_glr_plot_rfe_digits_001.png :alt: Ranking of pixels with RFE (Logistic Regression) :srcset: /auto_examples/feature_selection/images/sphx_glr_plot_rfe_digits_001.png :class: sphx-glr-single-img .. code-block:: Python # Authors: The scikit-learn developers # SPDX-License-Identifier: BSD-3-Clause import matplotlib.pyplot as plt from sklearn.datasets import load_digits from sklearn.feature_selection import RFE from sklearn.linear_model import LogisticRegression from sklearn.pipeline import Pipeline from sklearn.preprocessing import MinMaxScaler # Load the digits dataset digits = load_digits() X = digits.images.reshape((len(digits.images), -1)) y = digits.target pipe = Pipeline( [ ("scaler", MinMaxScaler()), ("rfe", RFE(estimator=LogisticRegression(), n_features_to_select=1, step=1)), ] ) pipe.fit(X, y) ranking = pipe.named_steps["rfe"].ranking_.reshape(digits.images[0].shape) # Plot pixel ranking plt.matshow(ranking, cmap=plt.cm.Blues) # Add annotations for pixel numbers for i in range(ranking.shape[0]): for j in range(ranking.shape[1]): plt.text(j, i, str(ranking[i, j]), ha="center", va="center", color="black") plt.colorbar() plt.title("Ranking of pixels with RFE\n(Logistic Regression)") plt.show() .. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 3.407 seconds) .. _sphx_glr_download_auto_examples_feature_selection_plot_rfe_digits.py: .. only:: html .. container:: sphx-glr-footer sphx-glr-footer-example .. container:: binder-badge .. image:: images/binder_badge_logo.svg :target: https://mybinder.org/v2/gh/scikit-learn/scikit-learn/main?urlpath=lab/tree/notebooks/auto_examples/feature_selection/plot_rfe_digits.ipynb :alt: Launch binder :width: 150 px .. container:: lite-badge .. image:: images/jupyterlite_badge_logo.svg :target: ../../lite/lab/index.html?path=auto_examples/feature_selection/plot_rfe_digits.ipynb :alt: Launch JupyterLite :width: 150 px .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: plot_rfe_digits.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: plot_rfe_digits.py ` .. container:: sphx-glr-download sphx-glr-download-zip :download:`Download zipped: plot_rfe_digits.zip ` .. include:: plot_rfe_digits.recommendations .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_