Klassifizierung mit nächstem Zentrum

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 führen wir Sie durch die Implementierung der Klassifizierung mit dem nächsten Zentrum (Nearest Centroid Classification) mithilfe von Scikit-learn. Die Klassifizierung mit dem nächsten Zentrum ist eine einfache Klassifizierungsmethode, die funktioniert, indem der Schwerpunkt (Centroid) für jede Klasse berechnet wird und dann neue Datenpunkte basierend darauf klassifiziert werden, welchem Schwerpunkt sie am nächsten sind.

Tipps für die VM

Nachdem der Start der VM abgeschlossen 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 von Einschränkungen in 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.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL sklearn(("Sklearn")) -.-> sklearn/ModelSelectionandEvaluationGroup(["Model Selection and Evaluation"]) ml(("Machine Learning")) -.-> ml/FrameworkandSoftwareGroup(["Framework and Software"]) sklearn(("Sklearn")) -.-> sklearn/CoreModelsandAlgorithmsGroup(["Core Models and Algorithms"]) sklearn/CoreModelsandAlgorithmsGroup -.-> sklearn/neighbors("Nearest Neighbors") sklearn/ModelSelectionandEvaluationGroup -.-> sklearn/inspection("Inspection") ml/FrameworkandSoftwareGroup -.-> ml/sklearn("scikit-learn") subgraph Lab Skills sklearn/neighbors -.-> lab-49226{{"Klassifizierung mit nächstem Zentrum"}} sklearn/inspection -.-> lab-49226{{"Klassifizierung mit nächstem Zentrum"}} ml/sklearn -.-> lab-49226{{"Klassifizierung mit nächstem Zentrum"}} end

Importieren der erforderlichen Bibliotheken

Zunächst müssen wir die erforderlichen Bibliotheken importieren, die Numpy, Matplotlib, Scikit-learn-Datenmengen, NearestCentroid und DecisionBoundaryDisplay umfassen.

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.colors import ListedColormap
from sklearn import datasets
from sklearn.neighbors import NearestCentroid
from sklearn.inspection import DecisionBoundaryDisplay

Laden der Daten

Als nächstes laden wir den Iris-Datensatz aus Scikit-learn und wählen nur die ersten beiden Merkmale für die Visualisierung aus.

iris = datasets.load_iris()
X = iris.data[:, :2]
y = iris.target

Erstellen von Farbverläufen

Wir erstellen zwei Farbverläufe für die Visualisierung mit der Funktion ListedColormap aus Matplotlib.

cmap_light = ListedColormap(["orange", "cyan", "cornflowerblue"])
cmap_bold = ListedColormap(["darkorange", "c", "darkblue"])

Erstellen und Anpassen des Klassifiziers

Wir erstellen eine Instanz des Klassifiziers mit nächstem Zentrum (Nearest Centroid Classifier) mit einem Schrumpfwert (shrinkage value) von 0,2 und passen die Daten an.

clf = NearestCentroid(shrink_threshold=0.2)
clf.fit(X, y)

Vorhersagen und Genauigkeit messen

Wir prognostizieren die Klassenbezeichnungen für die Eingabedaten und messen die Genauigkeit des Klassifiziers.

y_pred = clf.predict(X)
print("Accuracy: ", np.mean(y == y_pred))

Visualisiere die Entscheidungsgrenzen

Wir visualisieren die Entscheidungsgrenzen für den Klassifizierer mit der DecisionBoundaryDisplay-Funktion aus Scikit-learn.

_, ax = plt.subplots()
DecisionBoundaryDisplay.from_estimator(
    clf, X, cmap=cmap_light, ax=ax, response_method="predict"
)

Zeichne die Datenpunkte

Wir zeichnen die Eingabedatenpunkte mit der scatter-Funktion aus Matplotlib.

plt.scatter(X[:, 0], X[:, 1], c=y, cmap=cmap_bold, edgecolor="k", s=20)

Füge Titel und Achsenbeschriftungen hinzu

Wir fügen einen Titel und Achsenbeschriftungen zum Diagramm hinzu, indem wir die Funktionen title, xlabel und ylabel aus Matplotlib verwenden.

plt.title("Nearest Centroid Classification")
plt.xlabel("Sepal length")
plt.ylabel("Sepal width")

Zeige das Diagramm an

Wir zeigen das Diagramm an, indem wir die show-Funktion aus Matplotlib verwenden.

plt.show()

Zusammenfassung

In diesem Lab haben wir gelernt, wie man die Klassifizierung mit dem nächsten Zentrum (Nearest Centroid Classification) mit Scikit-learn implementiert. Wir haben den Iris-Datensatz geladen, einen Klassifizierer erstellt, Klassifizierungsbezeichnungen vorhergesagt, die Genauigkeit gemessen und die Entscheidungsgrenzen und die Eingabedatenpunkte visualisiert.