Rekursive Feature-Eliminierung

Machine LearningMachine LearningBeginner
Jetzt üben

This tutorial is from open-source community. Access the source code

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab werden wir lernen, wie man die rekursive Feature Elimination (RFE) zur Feature-Selektion einsetzt. Wir werden die Scikit-Learn-Bibliothek in Python verwenden, um diese Aufgabe durchzuführen. Die Feature-Selektion ist ein wichtiger Schritt im maschinellen Lernen, um die Modellleistung zu verbessern, indem irrelevante oder redundante Features entfernt werden.

VM-Tipps

Nachdem die VM gestartet ist, klicken Sie in der oberen linken Ecke, um zur Registerkarte Notebook zu wechseln und Jupyter Notebook für die Übung zu nutzen.

Manchmal müssen Sie einige Sekunden warten, bis Jupyter Notebook vollständig geladen ist. Die Validierung von Vorgängen kann aufgrund der Einschränkungen von Jupyter Notebook nicht automatisiert werden.

Wenn Sie bei der Lernphase Probleme haben, können Sie Labby gerne fragen. Geben Sie nach der Sitzung Feedback, und wir werden das Problem für Sie prompt beheben.

Lade den Datensatz und teile die Daten auf

Zunächst werden wir den Digits-Datensatz mit der Scikit-Learn-Bibliothek laden. Dieser Datensatz besteht aus 8x8-Bildern von Ziffern von 0 bis 9. Jedes Bild wird als Array von 64 Features dargestellt. Wir werden die Daten in Features und Zielvariablen aufteilen.

from sklearn.datasets import load_digits
digits = load_digits()
X = digits.images.reshape((len(digits.images), -1))
y = digits.target

Erstelle das RFE-Objekt und passe die Daten an

Als nächstes werden wir ein Objekt der RFE-Klasse erstellen und die Daten darauf anpassen. Wir werden einen Support Vector Classifier (SVC) mit einem linearen Kernel als Schätzer verwenden. Wir werden jeweils einen Feature auswählen und Schritt für Schritt vorgehen.

from sklearn.svm import SVC
from sklearn.feature_selection import RFE

svc = SVC(kernel="linear", C=1)
rfe = RFE(estimator=svc, n_features_to_select=1, step=1)
rfe.fit(X, y)

Bewerte die Features

Nachdem die Daten an das RFE-Objekt angepasst wurden, können wir die Features nach ihrer Wichtigkeit bewerten. Wir werden das Attribut ranking_ des RFE-Objekts verwenden, um die Feature-Bewertungen zu erhalten. Wir werden auch die Bewertungen umformen, um der Form der ursprünglichen Bilder zu entsprechen.

ranking = rfe.ranking_.reshape(digits.images[0].shape)

Visualisiere die Feature-Bewertungen

Schließlich werden wir die Feature-Bewertungen mit der Matplotlib-Bibliothek darstellen. Wir werden die Funktion matshow() verwenden, um die Bewertungen als Bild anzuzeigen. Wir werden auch eine Farbskala und einen Titel zum Diagramm hinzufügen.

import matplotlib.pyplot as plt

plt.matshow(ranking, cmap=plt.cm.Blues)
plt.colorbar()
plt.title("Ranking of pixels with RFE")
plt.show()

Zusammenfassung

In diesem Lab haben wir gelernt, wie man die rekursive Feature-Eliminierung (RFE) zur Feature-Selektion verwendet. Wir haben die Scikit-Learn-Bibliothek in Python verwendet, um den Digits-Datensatz zu laden, ein RFE-Objekt zu erstellen, die Daten anzupassen, die Features zu bewerten und die Feature-Bewertungen zu visualisieren.