Scipy Clustering

Scipy Clustering
Für Menschen, die neu in Programmiersprachen sind, ist das Konzept des Clustering auch neu für sie. Python ist eine der am häufigsten verwendeten Sprachen weltweit. Diese Programmiersprache auf hoher Ebene ist einfacher und einfacher als jede andere Programmiersprache auf hoher Ebene, was der Hauptgrund ist, warum die Anfängerentwickler dazu neigen, zuerst die Python zu lernen als jede andere Sprache. In diesem Artikel untersuchen wir die Scipy Library of Python -Programmiersprache und versuchen, das Konzept der Clusterbildung in der Programmiersprache zu verstehen.

Was ist Scipy in der Python -Programmiersprache?

Scipy ist eine Open-Source- und kostenlose wissenschaftliche Berechnungsbibliothek, die von der Python-Programmiersprache bereitgestellt wird. Es ist auf Numpy gebaut; Daher erweitert es auch die Funktionen der Numpy -Bibliothek. Scipy ist eine Abkürzung der wissenschaftlichen Python und bietet nützliche Methoden, um eine wissenschaftliche Anwendung zu bewältigen. Mit der Scipy -Bibliothek können Sie in einem Python -Programm problemlos jede Art von mathematischen, wissenschaftlichen, optimierenden, rechnerischen Verarbeitung oder statistischen Problemen verwalten. Darüber hinaus bietet es verschiedene nützliche Datenvisualisierungs- und Manipulationstechniken. Clustering ist eine der grundlegenden Methoden der Scipy -Bibliothek. Dieser Artikel widmet sich speziell der Clusterbildung in der Python -Programmiersprache.

Was ist das Clustering in der Python -Programmiersprache?

Clustering - wie der Name schon sagt - macht Datenkluster. Das grundlegende Konzept des Clustering besteht darin, Datencluster mit den gleichen Merkmalen zu erstellen. In einfachen Worten ist das Clustering das Konzept, kleine Datengruppen zu erstellen, die in charakteristischem charakteristischem einer großen Datengruppe ähnlich sind. Viele Branchen wie Gesundheitswesen, Finanzen, Einzelhandel usw. Verwenden Sie das Konzept des Clustering für mehrere analytische Aufgaben.

Das Konzept des Clustering in der Python -Programmiersprache ist das gleiche wie das allgemeine Konzept des Clustering. Die Python-Programmiersprache bietet mehrere nützliche und benutzerfreundliche Tools, um die Clusteranalyse durchzuführen. Sie können aus der Toolliste auswählen, die am besten zu Ihrem Problem passt. Zusammen mit diesem müssen Sie auch erkennen, welcher Algorithmus besser funktioniert, und Sie müssen in der Lage sein, jeden Algorithmus zu bewerten, der für Ihr Problem verwendet werden kann.

Um die Leistung des Clustering -Algorithmus zu bewerten, müssen Sie den durchschnittlichen Cluster -Abstand von der Mitte finden. Der durchschnittliche Abstand vom Zentrum des Datenclusters zu jeder Beobachtung bestimmt die Kompaktheit eines Clusters und dies ist allgemein als Zentroid bezeichnet. Dies ist sinnvoll, da alle Python -Clustering -Algorithmen dicht gepackte Datencluster erzeugen. Je näher die Datenpunkte im Cluster sind, desto besser die Ergebnisse des Clustering -Algorithmus. Um die Leistung eines Clustering -Algorithmus zu bewerten.

Im Allgemeinen gibt es drei Techniken, um das Clustering in Python-, K-Means-, Spectral- und Gaußschen Mischungsmodell-Clustering durchzuführen. Die K-Mean-Clustering-Technik eignet sich am besten für niedrige dimensionale Aufgaben mit wenigen Eingängen, während die Spektralclustering. Im Gegenteil. Es ist ein flexibles und robustes Modell, das am besten mit mäßig komplizierten Aufgaben funktioniert.

Was ist Scipy Clustering?

Die Scipy -Bibliothek in Python bietet zwei grundlegende Module: das VQ -Modul und das Hierarchiemodul, um Cluster mit einem Python -Programm herzustellen. Das VQ -Modul steht für die Vektorquantisierung, die für Komprimierung, Kommunikation, Zielerkennung, Informationstheorie usw. am nützlichsten ist. Es unterstützt jedoch nur die K-Mittel- und Vektor-Quantisierungsalgorithmen. Andererseits eignet sich das hierarchische Modul am besten zur Visualisierung der Cluster mit Dendrogrammen, der Berechnung der Statistiken an Clustern, zum Erzeugen hierarchischer Cluster aus Entfernungsmatrizen und Schneiden von Verknüpfungen, um flache Cluster zu erzeugen. Das bedeutet, dass es für agglomerative und hierarchische Clustering am nützlichsten ist.

Vektorquantisierung und K-Mean-Clustering

Die Vektorquantisierung oder die K-Mean-Clustering-Algorithmen der Scipy-Bibliothek werden verwendet, um die Cluster und den Zentrum von Clustern in einem Datensatz zu finden. Diese Algorithmen nehmen den Satz von Beobachtungsvektoren und die Anzahl der Cluster als Eingabe an. Der Algorithmus berechnet die Schwerpunkte des Clusters und kehrt für jeden der K -Cluster zurück. Die Scipy-Bibliothek bietet die vollständige Implementierung des K-Means-Algorithmus über das Clusterpaket. So können Sie den VQ- oder K-Mean-Algorithmus in Ihrem Programm verwenden:

Beispiel 1:

Lassen Sie uns ein Beispiel für Cluster zeigen.VQ, um zu verstehen, wie es in einem Python -Programm verwendet werden kann. Schauen Sie sich den folgenden Beispielcode an:

von Scipy.Cluster.VQ Import Kmeans, VQ
von Numpy Import Vstack, Array
von Numpy.zufälliger Import Rand
Data = vstack ((Rand (10,3) + Array ([[.1,.2,.3]), Rand (10,3)))
Centr, _ = kmeans (Daten, 3)
Druck (Centr)
CLX, _ = VQ (Daten, Centr)
Druck (CLX)

Erstens die Skipei.Cluster.VQ wird verwendet, um die Kmeans- und VQ -Module zu importieren. Dann wird die Numpy -Bibliothek aufgerufen, um den Vstack und das Array im Programm zu importieren. Schließlich wird der Rand mit dem Numpy in das Programm importiert.Zufallsmodul. Eine "Daten" -Variable wird initialisiert und an die Funktion kmeans () übergeben, um den Schwerpunkt der Daten zu finden. Die ursprünglichen und berechneten Zentroid der Daten werden an die VQ -Funktion übergeben. Siehe das Ergebnis der Kmeans- und VQ -Module in der folgenden Ausgabe:

Hierarchische Clustering

Hierarchische Clusterbildung wird verwendet, um Cluster ähnlicher Objekte mit den unbeaufsichtigten Lernalgorithmen zu erstellen. Der hierarchische Clustering -Algorithmus weist jedem Datenpunkt am Anfang einen Cluster zu und kombiniert dann die engsten Cluster bei jeder Iteration, was nur zu einem großen Cluster führt. Es ist sehr nützlich, um die optimale Anzahl von Clustern, die Darstellung von Erkenntnissen und die interpretierbare Visualisierung zu ermitteln. Um die hierarchischen Cluster zu visualisieren, werden die Dendrogramme verwendet.

So können Sie das hierarchische Clustering in Ihrem Python -Programm verwenden:

Beispiel 2:

In diesem Beispiel wird Sie dazu veranlasst, das hierarchische Clustering in einem Python -Programm durchzuführen. Siehe den folgenden Beispielcode:

von Scipy.Cluster.Hierarchie -Importdendrogramm, Verknüpfung
von Matplotlib Pyplot als PLT importieren
X = [
[A]
für a in [1, 5, 9, 4, 11, 2]]
Z = Verknüpfung (x, 'Ward')
Abb = PLT.Abbildung (AbbSize = (5, 5))
dn = dendrogramm (z)

Erstens die Skipei.Cluster.Die Hierarchieklasse wird im Programm aufgerufen, um die Hierarchiecluster zu machen, und die Matplotlib -Bibliothek wird importiert, um das Dendrogramm der Hierarchie -Cluster anzuzeigen. Die Daten sind in der "X" -Variable bereitgestellt. Um das Dendrogramm zu zeichnen, werden die Daten an die Dendrogram () -Funktion übergeben. Das resultierende Dendrogramm lautet wie folgt:

Abschluss

Dieser Artikel wurde für das Konzept des Clustering in der Python -Programmiersprache entwickelt. Zuerst haben wir das grundlegende Konzept des Clustering gelernt. Dann haben wir untersucht, was ein Cluster in Python ist. Die Scipy Library bietet zwei Clustering -Module - VQ und Hierarchie. Wir haben beide Module untersucht und mit Hilfe eines Beispiels für jedes Modul gelernt, wie man die Cluster im Python -Programm verwendet und macht.