Heim >Backend-Entwicklung >Python-Tutorial >Beispiele für Clusteranalysen in Python

Beispiele für Clusteranalysen in Python

王林
王林Original
2023-06-10 12:30:073100Durchsuche

Clusteranalyse ist eine gängige Datenanalysemethode, mit der Datensätze in verschiedene Gruppen oder Kategorien unterteilt werden können. Python bietet eine Vielzahl von Clustering-Algorithmen, und wir können je nach Bedarf verschiedene Algorithmen für die Analyse auswählen. In diesem Artikel werden einige häufig verwendete Clustering-Algorithmen in Python vorgestellt und Beispielanwendungen gegeben.

1. K-Means-Algorithmus

Der K-Means-Algorithmus ist ein häufig verwendeter Clustering-Algorithmus, der Daten basierend auf der euklidischen Distanz gruppiert. Dieser Algorithmus unterteilt den Datensatz in k Cluster, wobei der Mittelpunkt jedes Clusters der Mittelwert aller Mitglieder des Clusters ist. Die spezifischen Schritte des Algorithmus sind wie folgt:

  1. Wählen Sie zufällig k Punkte als anfängliche Clusterzentren aus.
  2. Berechnen Sie den Abstand aller Datenpunkte vom Clusterzentrum und klassifizieren Sie jeden Datenpunkt in den nächstgelegenen Cluster.
  3. Berechnen Sie den Mittelpunkt jedes Clusters basierend auf den neuen Klassifizierungsergebnissen neu.
  4. Wiederholen Sie die Schritte 2 und 3, bis sich die Cluster nicht mehr ändern oder die angegebene Anzahl an Iterationen erreicht ist.

Das Folgende ist ein Python-Beispiel für eine Clusteranalyse mit dem K-Means-Algorithmus:

import numpy as np
from sklearn.cluster import KMeans
from sklearn.datasets import make_blobs
import matplotlib.pyplot as plt

# 生成随机数据
X, y = make_blobs(n_samples=300, centers=4, random_state=42)

# 运行 K-Means 算法
kmeans = KMeans(n_clusters=4, random_state=42)
y_pred = kmeans.fit_predict(X)

# 绘制聚类结果
plt.scatter(X[:, 0], X[:, 1], c=y_pred)
plt.title("K-Means Clustering")
plt.show()

Im obigen Code wird die Funktion make_blobs verwendet, um einen Datensatz mit 300 Stichprobenpunkten und insgesamt 4 Clustern zu generieren. Verwenden Sie dann die KMeans-Funktion, um ein Clustering durchzuführen, geben Sie die Anzahl der Cluster als 4 an und erhalten Sie die Klassifizierungsergebnisse jedes Datenpunkts über die Methode fit_predict. Verwenden Sie abschließend Matplotlib, um die Clustering-Ergebnisse darzustellen.

2. Hierarchischer Clustering-Algorithmus

Der hierarchische Clustering-Algorithmus ist ein Bottom-up-Clustering-Algorithmus, der Daten basierend auf der Ähnlichkeit der Daten schrittweise zu größeren Clustern zusammenführt. Die spezifischen Schritte dieses Algorithmus sind wie folgt:

  1. Behandeln Sie jeden Datenpunkt als separaten Cluster.
  2. Berechnen Sie den Abstand zwischen den beiden nächstgelegenen Clustern.
  3. Fügen Sie die beiden nächstgelegenen Cluster zu einem neuen Cluster zusammen.
  4. Wiederholen Sie die Schritte 2 und 3, bis alle Cluster zu einem Cluster zusammengeführt sind oder die angegebene Anzahl an Clustern erreicht ist.

Das Folgende ist ein Python-Beispiel für die Verwendung eines hierarchischen Clustering-Algorithmus für die Clusteranalyse:

from sklearn.cluster import AgglomerativeClustering
from sklearn.datasets import make_moons
import matplotlib.pyplot as plt

# 生成随机数据
X, y = make_moons(n_samples=200, noise=0.05, random_state=42)

# 运行层次聚类算法
agglomerative = AgglomerativeClustering(n_clusters=2)
y_pred = agglomerative.fit_predict(X)

# 绘制聚类结果
plt.scatter(X[:, 0], X[:, 1], c=y_pred)
plt.title("Agglomerative Clustering")
plt.show()

Im obigen Code wird die Funktion make_moons verwendet, um einen Datensatz mit 200 Beispielpunkten zu generieren, und die Funktion AgglomerativeClustering wird für das Clustering verwendet. Angabe: Die Anzahl der Cluster beträgt 2. Verwenden Sie abschließend Matplotlib, um die Clustering-Ergebnisse darzustellen.

3. DBSCAN-Algorithmus

Der DBSCAN-Algorithmus ist ein dichtebasierter Clustering-Algorithmus, der Datenpunkte basierend auf der Dichte des Datensatzes in verschiedene Cluster unterteilen kann. Die spezifischen Schritte des Algorithmus sind wie folgt:

  1. Wählen Sie zufällig einen nicht besuchten Datenpunkt als Kernpunkt aus.
  2. Finden Sie alle Punkte, deren Abstand vom Kernpunkt den angegebenen Radius nicht überschreitet, als erreichbare Dichtefläche, die auf dem Kernpunkt zentriert ist.
  3. Wenn sich ein Punkt innerhalb des erreichbaren Dichtebereichs eines anderen Kernpunkts befindet, führen Sie ihn und den Kernpunkt zu einem Cluster zusammen.
  4. Wiederholen Sie die Schritte 1 bis 3, bis keine neuen Kernpunkte mehr besucht werden.

Das Folgende ist ein Python-Beispiel für die Verwendung des DBSCAN-Algorithmus für die Clusteranalyse:

from sklearn.cluster import DBSCAN
from sklearn.datasets import make_moons
import matplotlib.pyplot as plt

# 生成随机数据
X, y = make_moons(n_samples=200, noise=0.05, random_state=42)

# 运行 DBSCAN 算法
dbscan = DBSCAN(eps=0.2, min_samples=5)
y_pred = dbscan.fit_predict(X)

# 绘制聚类结果
plt.scatter(X[:, 0], X[:, 1], c=y_pred)
plt.title("DBSCAN Clustering")
plt.show()

Im obigen Code wird die Funktion make_moons verwendet, um einen Datensatz mit 200 Abtastpunkten zu generieren, und die Funktion DBSCAN wird für die Clusterbildung verwendet. Angabe des Radius und der Mindestanzahl der Proben. Verwenden Sie abschließend Matplotlib, um die Clustering-Ergebnisse darzustellen.

Zusammenfassung

Dieser Artikel stellt drei häufig verwendete Clustering-Algorithmen in Python vor und gibt entsprechende Beispielanwendungen. Clustering-Algorithmen sind eine sehr nützliche Datenanalysemethode, die uns dabei helfen kann, verborgene Muster und Beziehungen in Daten zu entdecken. In praktischen Anwendungen können wir basierend auf den Eigenschaften und Anforderungen der Daten verschiedene Algorithmen für die Analyse auswählen.

Das obige ist der detaillierte Inhalt vonBeispiele für Clusteranalysen in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn