Zum Hauptinhalt springen

Wie man Clustering und Klassifizierung mit SciPy durchführt.

Hier ist eine schrittweise Anleitung, wie man Clustering und Klassifizierung mit SciPy durchführt.

Einführung in Clustering und Klassifizierung

Clustering und Klassifizierung sind zwei gängige Techniken im maschinellen Lernen, um ähnliche Datenpunkte zu gruppieren und Vorhersagen zu treffen. Clustering beinhaltet die Aufteilung eines Datensatzes in Gruppen oder Cluster basierend auf der Ähnlichkeit der Datenpunkte, während Klassifizierung die Zuweisung von Labels oder Kategorien zu Datenpunkten basierend auf ihren Merkmalen beinhaltet.

Schritt 1: Erforderliche Bibliotheken importieren

Um Clustering und Klassifizierung mit SciPy durchzuführen, müssen wir die erforderlichen Bibliotheken importieren. Die Hauptbibliotheken, die wir verwenden werden, sind numpy, scipy und sklearn.

import numpy as np
from scipy.cluster import hierarchy
from scipy.spatial import distance
from sklearn.cluster import KMeans
from sklearn.datasets import make_blobs
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier

Schritt 2: Generieren von Daten

Um Clustering und Klassifizierung zu demonstrieren, generieren wir einen Beispieldatensatz mit der Funktion make_blobs aus sklearn.datasets. Diese Funktion erstellt eine bestimmte Anzahl von Clustern, von denen jeder eine bestimmte Anzahl von Datenpunkten enthält.

# Beispieldaten generieren
X, y = make_blobs(n_samples=100, centers=3, random_state=0)

Schritt 3: Clustering mit agglomerativer hierarchischer Clusteranalyse

Die agglomerative hierarchische Clusteranalyse ist eine beliebte Clustering-Methode, die ähnliche Cluster rekursiv zusammenführt, bis ein Abbruchkriterium erreicht ist. Wir können die agglomerative hierarchische Clusteranalyse mit den Funktionen linkage und dendrogram aus scipy.cluster.hierarchy durchführen.

# Die paarweise Distanzmatrix berechnen
dist_matrix = distance.pdist(X)

# Agglomerative hierarchische Clusteranalyse durchführen
linkage_matrix = hierarchy.linkage(dist_matrix, method='complete')

# Das Dendrogramm zeichnen
dendrogram = hierarchy.dendrogram(linkage_matrix)

Schritt 4: K-Means-Clustering

Das K-Means-Clustering ist ein weiterer beliebter Clustering-Algorithmus, der die Daten in eine festgelegte Anzahl von Clustern aufteilt. Wir können das K-Means-Clustering mit der Klasse KMeans aus sklearn.cluster durchführen.

# K-Means-Clustering durchführen
kmeans = KMeans(n_clusters=3, random_state=0)
labels = kmeans.fit_predict(X)

# Die Cluster zeichnen
plt.scatter(X[:, 0], X[:, 1], c=labels)

Schritt 5: Datenklassifizierung mit K-Nearest Neighbors

K-Nearest Neighbors (KNN) ist ein einfacher Klassifikationsalgorithmus, der Datenpunkten basierend auf der Mehrheitsentscheidung ihrer nächsten Nachbarn Labels zuweist. Wir können die KNN-Klassifizierung mit der Klasse KNeighborsClassifier aus sklearn.neighbors durchführen.

# Die Daten in Trainings- und Testsets aufteilen
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)

# KNN-Klassifizierung durchführen
knn = KNeighborsClassifier(n_neighbors=3)
knn.fit(X_train, y_train)

# Vorhersagen auf dem Testset machen
y_pred = knn.predict(X_test)

Fazit

In diesem Tutorial haben wir gelernt, wie man Clustering und Klassifizierung mit SciPy durchführt. Wir haben agglomerative hierarchische Clusteranalyse, K-Means-Clustering und K-Nearest Neighbors-Klassifikation behandelt. Diese Techniken werden in verschiedenen Anwendungen des maschinellen Lernens weit verbreitet eingesetzt und können auf eine Vielzahl von Datensätzen angewendet werden.