Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Hier ist der k-Means-Clustering Algorithmus aus der Vorlesung zu implementieren.
- Die Punkte liegen in einem Array namens datenpunkte vor.
- Die Anzahl der Clusterzentren kann frei gewählt werden und muss dafür in die Variable k geschrieben werden.
- Die initialen Clusterzentren sollen zufällige Punkte der vorgegebenen Datenwolke sein und in dem Array clusterZentren gespeichert werden.
- 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.
- Auch die Ergebnisswerte sollen am Ende wieder im Array clusterZentren stehen.
- Hinweise:
- Falls ein neuer Punkt für Zwischenergebnisse benötigt wird kann dieser mit folgender Syntax erzeugt werden:
- Point2d a = new Point2d(x, y);
- Hierbei ist a der Name des neuen Punktes, x und y die jeweiligen x- bzw y-Koordinaten.
- Neue Arrays (z.B. von 2D Punkten) können u.a. mit folgender Syntax declariert werden:
- Point2d[] extraArray = new Point2d[n];
- wobei n die Anzahl der Elemente im neuen Array ist.
- Zum Visualisieren des Algorithmuses kann der Button "Ausführen" links neben "Evaluieren" verwendet werden.
- Um jeden Schritt des Algorithmuses anzuzeigen, muss der Befehl redraw(); bei jedem Schleifendurchlauf nach dem Verändern der Clusterzentren aufgerufen werden.
- Wichtig:
- Der Algorithmus soll nach maximal 100 Schritten terminieren, oder sobald keine Änderung der Clusterzentren mehr nötig ist.
- Zum Abbrechen einer Schleife kann der Befehl break; benutzt werden.
- */
- /* Hier muss ein Wert für k gesetzt werden */
- k=0;
- /* 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.
- Dieser Code braucht NICHT verändert zu werden. */
- clusterZentren = new Point2d[k];
- for (int i = 0; i < k; i++) {
- clusterZentren[i] = datenpunkte[((int) (Math.random() * 100)) % datenpunkte.length];
- }
- redraw();
- /* Hier folgt die Implementierung des k-means Algorithmus */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement