Ich habe diese Python-Implementierung des Jenks Natural Breaks- Algorithmus gefunden und konnte sie auf meinem Windows 7-Computer ausführen. Es ist ziemlich schnell und es findet die Brüche in weniger Zeit, wenn man die Größe meiner Geodaten berücksichtigt. Bevor ich diesen Clustering-Algorithmus für meine Daten verwendete, verwendete ich sklearn.clustering.KMeans
(hier) Algorithmus. Das Problem, das ich mit KMeans hatte, war das Finden des optimalen K-Wert-Parameters, aber ich "löste" es, indem ich den Algorithmus für verschiedene K-Werte startete und sklearn.metrics.silhouette_score
(hier) verwendete , um das beste K zu finden.
Meine Frage lautet: Wenn ich dem Natural Breaks-Algorithmus vorschreibe, 5 Klassen zu finden (das wäre K), wie kann ich dann sicher sein, dass dies die Anzahl der Klassen ist, die meinen Daten am besten entsprechen? Wie bestätige ich, dass ich die beste Anzahl von Pausen wähle?
Vielen Dank!
quelle
Antworten:
Jenks Natural Breaks optimiert die Anpassung der Varianzgüte, einen Wert von 0 bis 1, wobei 0 = Keine Anpassung und 1 = Perfekte Anpassung. Der Schlüssel zur Auswahl der Anzahl der Klassen besteht darin, ein Gleichgewicht zwischen dem Erkennen von Unterschieden und der Überanpassung Ihrer Daten zu finden. Um die optimale Anzahl von Klassen zu bestimmen, empfehle ich Ihnen, einen gewünschten Schwellen-GVF-Wert zu verwenden und die Anzahl von Klassen zu verwenden, die diesen Wert zuerst erfüllt.
Nachfolgend finden Sie eine Funktion zur Berechnung der Anpassung der Varianzgüte anhand einer Reihe von zu klassifizierenden Werten und der Anzahl der ausgewählten Klassen:
Angenommen, Sie entscheiden, dass der GVF mindestens 0,8 betragen soll, dann können Sie die Anzahl der Klassen erhöhen, bis der GVF erfüllt ist:
quelle