Hinweis
Zum Ende springen, um den vollständigen Beispielcode herunterzuladen oder dieses Beispiel über JupyterLite oder Binder in Ihrem Browser auszuführen.
Rekursive Merkmalselimination#
Dieses Beispiel demonstriert, wie die rekursive Merkmalselimination (RFE) verwendet werden kann, um die Bedeutung einzelner Pixel für die Klassifizierung handgeschriebener Ziffern zu bestimmen. RFE entfernt rekursiv die am wenigsten signifikanten Merkmale und weist Ränge basierend auf ihrer Wichtigkeit zu, wobei höhere ranking_ Werte auf eine geringere Wichtigkeit hinweisen. Die Rangfolge wird zur Verdeutlichung sowohl durch Blautöne als auch durch Pixelanmerkungen visualisiert. Wie erwartet sind Pixel in der Mitte des Bildes tendenziell aussagekräftiger als solche in der Nähe der Ränder.
Hinweis
Siehe auch Rekursive Merkmalselimination mit Kreuzvalidierung

# 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()
Gesamtlaufzeit des Skripts: (0 Minuten 2,804 Sekunden)
Verwandte Beispiele