Ist es besser, meinen eigenen K-Means-Algorithmus in Python zu implementieren oder den vordefinierten K-Mean-Algorithmus in Python-Bibliotheken wie zB Scikit-Learn zu verwenden?K-Means-Implementierung in Python
0
A
Antwort
1
, bevor er antwortete, die hier besser ist, ist eine kurze Erinnerung an den Algorithmus:
- „Wählen“ die Anzahl der Cluster K
- Initiieren Ihre ersten Centroide
- Für jeden Punkt , finden Sie die nächsten Schwerpunkt nach einer Distanzfunktion D
- Wenn alle Punkte auf einem Cluster zugeordnet werden, die Berechnung der barycenter des Clusters, die
- Wiederholen Schritt 3 und Schritt seinen neuen Zentroid geworden 4. bis Konvergenz
Wie bereits betont, die Algorithmus hängt von verschiedenen Parametern ab:
- Die Anzahl der Cluster
- Ihre erste Schwerpunktpositionen
- Eine Abstandsfunktion Abstand zwischen einem beliebigen Punkt und Zentroid
- , einer Funktion zu berechnen, die barycenter jeden neuen Cluster
- A Konvergenz metric
- ...
Wenn keine der oben genannten berechnen ist Ihnen vertraut, und Sie möchten die Rolle jedes Parameters verstehen, würde ich empfehlen, es auf niedrigdimensionalen Datensätzen zu implementieren. Darüber hinaus entsprechen die implementierten Python-Bibliotheken möglicherweise nicht Ihren spezifischen Anforderungen - obwohl sie gute Tuning-Möglichkeiten bieten.
Wenn Sie es schnell mit einem großen Bild Verständnis verwenden möchten, können Sie vorhandene Implementierung verwenden - Scikit-lernen wäre eine gute Wahl.
Verwandte Themen
- 1. Python-Code in Python analysieren?
- 2. Neu in Python Bytes in Python 2.4.3
- 3. in Python
- 4. in Python
- 5. In Python in bash
- 6. python - OpenCV mat :: convertTo in python
- 7. Python 2.7. Kodierung in Python und cmd
- 8. Embed Python Interpreter in einer Python-Anwendung
- 9. Python: Java wirft Äquivalent in Python
- 10. Python-Threads in eingebettetem Python: Wie?
- 11. Einen Python-Azure-Webdienst in Python verwenden
- 12. Python: os.chdir funktioniert nicht in Python?
- 13. Python-Deskriptoren funktionieren nicht in Python 2.7
- 14. Wie 3.5 in Python postgresql Zeitstempel in Python
- 15. Kreuzung in sqlite3 in Python
- 16. Assoziativität von "in" in Python?
- 17. Konvertieren in Datenrahmen in Python
- 18. in einer Variablen in Python
- 19. Datumsformat in Python in Windows
- 20. Wörterbuch in Kleinbuchstaben in Python
- 21. Schreiben in CSV in Python
- 22. Doppelpunkt in Dateinamen in Python
- 23. In-Memory-Datenbank in Python
- 24. Bedingte Zählen in Python
- 25. Was bedeutet "*" in Python?
- 26. writeline Problem in Python
- 27. Netcat-Implementierung in Python
- 28. NTLM-Authentifizierung in Python
- 29. Map-Methode in Python
- 30. harmonischer Mittelwert in Python
Hängt davon ab, wie Sie "besser" definieren. Die Bibliotheksversion wird mit ziemlicher Sicherheit effizienter sein, aber Sie könnten viel selbst lernen. – River