Advertisement
Guest User

Untitled

a guest
Jan 20th, 2019
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.20 KB | None | 0 0
  1. /*
  2. Hier ist der k-Means-Clustering Algorithmus aus der Vorlesung zu implementieren.
  3.  
  4. Die Punkte liegen in einem Array namens datenpunkte vor.
  5.  
  6. Die Anzahl der Clusterzentren kann frei gewählt werden und muss dafür in die Variable k geschrieben werden.
  7.  
  8. Die initialen Clusterzentren sollen zufällige Punkte der vorgegebenen Datenwolke sein und in dem Array clusterZentren gespeichert werden.
  9. Die Initialisierung dieses Arrays ist bereits im Code vorgegeben. Dieser darf für Zwischenwerte überschrieben werden, sobald die initialen Werte nicht mehr benötigt werden.
  10.  
  11. Auch die Ergebnisswerte sollen am Ende wieder im Array clusterZentren stehen.
  12.  
  13.  
  14. Hinweise:
  15.  
  16. Falls ein neuer Punkt für Zwischenergebnisse benötigt wird kann dieser mit folgender Syntax erzeugt werden:
  17. Point2d a = new Point2d(x, y);
  18. Hierbei ist a der Name des neuen Punktes, x und y die jeweiligen x- bzw y-Koordinaten.
  19.  
  20. Neue Arrays (z.B. von 2D Punkten) können u.a. mit folgender Syntax declariert werden:
  21. Point2d[] extraArray = new Point2d[n];
  22. wobei n die Anzahl der Elemente im neuen Array ist.
  23.  
  24.  
  25. Zum Visualisieren des Algorithmuses kann der Button "Ausführen" links neben "Evaluieren" verwendet werden.
  26. Um jeden Schritt des Algorithmuses anzuzeigen, muss der Befehl redraw(); bei jedem Schleifendurchlauf nach dem Verändern der Clusterzentren aufgerufen werden.
  27.  
  28.  
  29. Wichtig:
  30.  
  31. Der Algorithmus soll nach maximal 100 Schritten terminieren, oder sobald keine Änderung der Clusterzentren mehr nötig ist.
  32. Zum Abbrechen einer Schleife kann der Befehl break; benutzt werden.
  33.  
  34. */
  35.  
  36.  
  37.  
  38. /* Hier muss ein Wert für k gesetzt werden */
  39. k=0;
  40.  
  41. /* Hier wird das Array der Clusterzentren mit zufälligen Datenpunkten initialisiert. Der redraw-Befehl zeichnet die initialen Clusterzentren in die graphische Ansicht, falls diese Aktiviert ist.
  42. Dieser Code braucht NICHT verändert zu werden. */
  43. clusterZentren = new Point2d[k];
  44. for (int i = 0; i < k; i++) {
  45. clusterZentren[i] = datenpunkte[((int) (Math.random() * 100)) % datenpunkte.length];
  46. }
  47. redraw();
  48.  
  49. /* Hier folgt die Implementierung des k-means Algorithmus */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement