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.