Einführung
In diesem Lab werden wir den K-Means-Clustering-Algorithmus und seine Implementierung in Python mithilfe der scikit-learn-Bibliothek untersuchen. Clustering ist eine Art unüberwachtes Lernen, das darin besteht, Datenpunkte aufgrund ihrer Ähnlichkeiten in Cluster zu gruppieren. K-Means-Clustering ist ein populärer Algorithmus für das Clustering und wird in verschiedenen Bereichen wie der Bildverarbeitung, der Bioinformatik und der Marketingforschung weit verbreitet eingesetzt.
Tipps für die VM
Nachdem der VM-Start 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 der 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.
Bibliotheken importieren
Zunächst müssen wir die erforderlichen Bibliotheken für dieses Lab importieren. Wir werden NumPy, Matplotlib und scikit-learn verwenden.
import numpy as np
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
from sklearn import datasets
Daten laden
Als nächstes laden wir den Iris-Datensatz, ein populärer Datensatz in der Maschinellen Lernung. Dieser Datensatz enthält Informationen über die Merkmale verschiedener Arten von Iris-Blumen. Wir werden diesen Datensatz verwenden, um den K-Means-Clustering-Algorithmus zu demonstrieren.
iris = datasets.load_iris()
X = iris.data
y = iris.target
Daten visualisieren
Bevor wir den K-Means-Clustering-Algorithmus anwenden, lassen Sie uns zunächst die Daten visualisieren, um eine bessere Vorstellung davon zu bekommen. Wir werden einen 3D-Streuplot verwenden, um die Daten zu visualisieren.
fig = plt.figure(figsize=(10, 8))
ax = fig.add_subplot(111, projection="3d")
ax.scatter(X[:, 0], X[:, 1], X[:, 2])
ax.set_xlabel("Sepal length")
ax.set_ylabel("Sepal width")
ax.set_zlabel("Petal length")
plt.show()
K-Means-Clustering anwenden
Jetzt werden wir den K-Means-Clustering-Algorithmus auf unsere Daten anwenden. Wir werden den Algorithmus mit 3 Clustern initialisieren und ihn auf unsere Daten anpassen.
kmeans = KMeans(n_clusters=3)
kmeans.fit(X)
Cluster visualisieren
Nachdem wir den K-Means-Clustering-Algorithmus angewendet haben, lassen Sie uns die gebildeten Cluster visualisieren. Wir werden einen 3D-Streuplot verwenden, um die Datenpunkte und ihre jeweiligen Cluster zu visualisieren.
fig = plt.figure(figsize=(10, 8))
ax = fig.add_subplot(111, projection="3d")
ax.scatter(X[:, 0], X[:, 1], X[:, 2], c=kmeans.labels_)
ax.set_xlabel("Sepal length")
ax.set_ylabel("Sepal width")
ax.set_zlabel("Petal length")
plt.show()
Clustering bewerten
Um die Leistung des K-Means-Clustering-Algorithmus zu bewerten, können wir die Trägheit (Inertia)-Score berechnen. Der Trägheit-Score misst die Summe der Entfernungen zwischen jedem Datenpunkt und seinem zugewiesenen Clusterzentrum. Ein niedrigerer Trägheit-Score zeigt ein besseres Clustering an.
print("Inertia Score:", kmeans.inertia_)
Zusammenfassung
In diesem Lab haben wir uns mit dem K-Means-Clustering-Algorithmus und seiner Implementierung in Python mithilfe der scikit-learn-Bibliothek beschäftigt. Wir haben den Iris-Datensatz geladen, die Daten visualisiert, den K-Means-Clustering-Algorithmus angewendet und seine Leistung bewertet. Clustering ist eine leistungsstarke Technik für die Datenanalyse und kann in einer Vielzahl von Anwendungen eingesetzt werden.