Einführung
Clustering ist eine unbeaufsichtigte Technik des maschinellen Lernens, die bei der Datenanalyse verwendet wird, um ähnliche Objekte oder Datenpunkte zu gruppieren. Es ist, als würde man Gegenstände nach ihrer Ähnlichkeit ordnen und sie in separate Gruppen oder Kategorien einteilen.
Das Ziel des Clustering besteht darin, natürliche Gruppierungen oder Muster in den Daten zu finden, ohne dass es vordefinierte Kategorien oder Bezeichnungen gibt. Durch die Identifizierung dieser Gruppen können wir Einblicke in die Struktur und Beziehungen innerhalb der Daten gewinnen. Clustering kann uns helfen, verborgene Muster zu entdecken, Anomalien oder Ausreißer zu erkennen, Kundengruppen zu segmentieren oder sogar genetische Daten zu analysieren, um Untergruppen von Patienten zu identifizieren.
Stellen Sie sich vor, Sie haben eine Sammlung verschiedener Früchte wie Äpfel, Orangen und Bananen. Wenn Sie diese Früchte nach ihrer Ähnlichkeit gruppieren möchten, können Sie Faktoren wie Farbe, Größe und Kind berücksichtigen. Clustering-Algorithmen funktionieren auf ähnliche Weise, verwenden jedoch mathematische Berechnungen, um Ähnlichkeiten zwischen Datenpunkten anhand ihrer Merkmale oder Attribute zu ermitteln.
Hinweis: Clustering ist eine explorative Technik, das heißt, sie hilft uns, Muster in den Daten zu verstehen und aufzudecken, liefert jedoch keine expliziten Antworten oder Vorhersagen. Die Qualität der Clustering-Ergebnisse hängt vom verwendeten Algorithmus, der Auswahl der Merkmale und der Interpretation der Cluster durch Domänenexperten ab.
Clustering-Algorithmen
Clustering-Algorithmen verwenden verschiedene mathematische Techniken und Distanzmaße, um Ähnlichkeiten zwischen Datenpunkten zu berechnen. Diese Algorithmen zielen darauf ab, die Ähnlichkeit innerhalb jeder Gruppe zu maximieren (Intra-Cluster-Ähnlichkeit) und gleichzeitig die Ähnlichkeit zwischen verschiedenen Gruppen zu minimieren (Inter-Cluster-Unähnlichkeit). Nachfolgend finden Sie Erläuterungen zu einigen Clustering-Algorithmen:
Okay-Means-Clustering:
Okay-Means ist einer der am häufigsten verwendeten Clustering-Algorithmen. Ziel ist es, die Daten in Okay Cluster zu unterteilen, wobei Okay eine vordefinierte, vom Benutzer gewählte Zahl ist. Der Algorithmus beginnt mit der zufälligen Auswahl von Okay Schwerpunkten als anfängliche Clusterzentren. Anschließend ordnet es jeden Datenpunkt iterativ dem nächstgelegenen Schwerpunkt zu und aktualisiert den Schwerpunkt basierend auf dem Mittelwert der ihm zugewiesenen Punkte. Dieser Prozess wird fortgesetzt, bis sich die Schwerpunkte nicht mehr wesentlich ändern oder eine maximale Anzahl von Iterationen erreicht ist.
Agglomeratives Clustering:
Agglomeratives Clustering ist ein hierarchischer Clustering-Algorithmus, der mit jedem Datenpunkt als separatem Cluster beginnt und diese basierend auf ihrer Ähnlichkeit iterativ zusammenführt. Bei jedem Schritt werden die beiden nächstgelegenen Cluster kombiniert, bis alle Datenpunkte zu einem einzigen Cluster gehören. Die Ähnlichkeit zwischen Clustern wird typischerweise anhand distanzbasierter Metriken wie der euklidischen Distanz oder Verknüpfungskriterien wie Wards Verknüpfung oder durchschnittlicher Verknüpfung gemessen.
DBSCAN (Density-Based mostly Spatial Clustering of Purposes with Noise):
DBSCAN ist ein dichtebasierter Clustering-Algorithmus, der nahe beieinander liegende Datenpunkte in dicht besiedelten Regionen gruppiert und Ausreißer als Rauschpunkte identifiziert. Dabei wird eine Nachbarschaft um jeden Datenpunkt definiert, basierend auf einem Entfernungsschwellenwert und einer Mindestanzahl von Punkten, die zur Bildung einer dichten Area erforderlich sind. Anschließend werden Cluster erweitert, indem benachbarte Punkte basierend auf den definierten Kriterien verbunden werden.
Gaußsche Mischungsmodelle (GMM):
GMM ist ein probabilistischer Clustering-Algorithmus, der davon ausgeht, dass die Datenpunkte aus einer Mischung von Gaußschen Verteilungen generiert werden. Es modelliert jeden Cluster als Gaußsche Verteilung und schätzt die Parameter (Mittelwert und Kovarianz) mithilfe eines Erwartungsmaximierungsalgorithmus. GMM weist den Clustern Datenpunkte basierend auf der Wahrscheinlichkeit der Zugehörigkeit zu jeder Verteilung zu.
Spektrales Clustering:
Spectral Clustering kombiniert Elemente der Graphentheorie und der Matrixalgebra, um Clustering durchzuführen. Es betrachtet die Datenpunkte als Knoten in einem Diagramm und misst die Ähnlichkeit zwischen Punkten mithilfe der Laplace-Matrix des Diagramms. Spectral Clustering verwendet dann Eigenwertzerlegung oder k-Means-Clustering auf den Eigenvektoren, um Punkte Clustern zuzuordnen. Es kann komplexe geometrische Strukturen verarbeiten und ist besonders effektiv beim Clustering von Daten mit nichtlinearen Grenzen.
Hinweis: Dies sind nur einige Beispiele für Clustering-Algorithmen. Abhängig von den spezifischen Anforderungen und Eigenschaften der Daten sind noch viele weitere verfügbar. Jeder Algorithmus hat seine eigenen Stärken, Schwächen und Annahmen, und die Wahl des Algorithmus sollte auf der Artwork der Daten und den Zielen der Analyse basieren.
Beispiel für Clustering:
In unserem Beispiel verwenden wir den Agglomerative-Algorithmus, um unseren Datensatz zu gruppieren.
# we import pandas library, and we load and discover our datasetimport pandas as pd
df = pd.read_csv('Nigerian_songs.csv')
df.head()
# we preprocess/clear the infodf = df[df['artist_top_genre'] != 'Lacking']
df = df[(df['artist_top_genre'] == 'afro dancehall') | (df['artist_top_genre'] == 'afropop') | (df['artist_top_genre'] == 'nigerian pop')]
df = df[(df['popularity'] > 0)]
from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()
X = df.loc[:, ('artist_top_genre','popularity','danceability','acousticness','loudness','energy')]
X['artist_top_genre'] = le.fit_transform(X['artist_top_genre'])
# We select and apply our clustering methodology(Agglomerative Clustering)import matplotlib.pyplot as plt
import seaborn as sns
from sklearn.cluster import AgglomerativeClustering
clustering = AgglomerativeClustering(n_clusters=3)
cluster_labels = clustering.fit_predict(X)
cluster_labels
# we visualize the clustersplt.determine(figsize=(10, 6))
sns.scatterplot(information=df, x='reputation', y='danceability', hue=cluster_labels, palette='Set1')
plt.xlabel('reputation')
plt.ylabel('danceability')
plt.title('Agglomerative Clustering - reputation vs danceability')
plt.present()
# we calculate the Silhouette Ratingfrom sklearn.metrics import silhouette_score
rating = silhouette_score(X, cluster_labels)
print("Silhouette Rating:", rating)
Output:
Silhouette Rating: 0.5435156033436574
Abschluss
Clustering ist eine unbeaufsichtigte Technik des maschinellen Lernens, die bei der Datenanalyse verwendet wird, um ähnliche Objekte oder Datenpunkte zu gruppieren. Das Ziel des Clustering besteht darin, natürliche Gruppierungen oder Muster in den Daten zu finden, ohne dass es vordefinierte Kategorien oder Bezeichnungen gibt
Bei der Kundensegmentierung verfügt ein Unternehmen möglicherweise über einen großen Kundendatensatz und möchte anhand seines Kaufverhaltens unterschiedliche Kundengruppen identifizieren. Durch die Clusterung der Daten kann das Unternehmen verschiedene Kundensegmente erkennen, beispielsweise Vielkäufer, Gelegenheitskäufer oder Kunden mit hohem Wert. Diese Informationen können dann verwendet werden, um Marketingstrategien anzupassen oder Dienstleistungen für jedes Kundensegment zu personalisieren.