Adaption von K-Means Algorithmen an Datenbanken Gruppe 2 Sven März Christian Bomhardt
Aufgabenstellung Implementierung von K-Means Anpassung an DB2 Datenbank Optimierung durch SQL Abfragen Vergleich der verschiedenen Implementierungen mit Standard Verfahren.
Arbeitsumgebung Installation des DB2 Server unter Linux Programmier-Umgebung Visual Age 2.0 für Windows Visual Age 3.0 unter Linux Einrichten des DB2 Clienten für den Zugriff auf den Uni Rechner über ISDN Anpassung der DB2 Datenbank auf dem NT Test Server
Programmierung K-Means wurde für die Datenbank implementiert Auslesen der Clusterzentren aus der Datenbank Berechne Abstand einer Reihe zu jedem Zentrum Zuweisung der Cluster ID mit dem kleinsten Abstand Wurde Zuweisung geändert neuer Durchlauf Test mit selbst erstellten Zufallsdaten
Programmierung Anpassung an die Datenbank Zuweisung der Cluster zu den Zentren in der Datenbank a) Eine SQL Abfrage mit einer User Defined Function b) Komplette Logik in einem SQL Statement Einsatz der zweiten Variante : UPDATE A SET clusterzuordung=(SELECT MIN(ID) FROM B WHERE distanz(Objekt,Zentrum)=(SELECT MIN(distanz(Objekt,Zentrum)) FROM B )) Wobei A die Objekt Tabelle und B die Clustertabelle sind
Das Programm Anmelden an der Datenbank Auswahl der Tabellen Hilfe durch Datenbank Browser
Das Programm Auswahl der Spalten Temporäre Tabelle erstellen Gewünschten Algorithmus starten Cursor Interface = Standard Version ohne CI => Optimierte SQL Abfrage Ergebnis
Ergebnisse Testlauf mit 1000 Datensätzen und 3 Dimensionen Anbindung an die Datenbank über ISDN Beispiel Daten :
Ergebnisse Startlösung 1 und 2 führen fast zu den codierten Zentren Vorgegeben zufällig 150 80 30 13,3658 564,8666 81,91493 200 300 150 166,2751 514,8039 416,1628 480 210 400 61,51024 18,82403 197,6111 250 450 600 465,7007 573,7818 37,47109 400 350 250 330,3894 80,69711 53,07383
Ergebnisse Zeitliche Unterschiede Cursor Interface 2 Iterationen : 3 min Cursor Interface 4 Iterationen : 5 min SQL Abfrage 2 Iterationen : 6 s SQL Abfrage 4 Iterationen : 10 s Lange Berechnungszeit des CI durch geringen Datendurchsatz der ISDN Leitung 10000 Datensätze mit 30 Dimensionen über 10Mbit 5 Min Cursor Interface 6 Min SQL Abfrage => Optimierung geeignet für Thin Clients
Verbesserungen Programm Algorithmus Clusterzentren vorschlagen Datenbankbrowser mit erweiterten Funktionen Algorithmus weitere SQL Abfragen implementieren z.B. Test der Zentrenänderung, Optimierung der jetzigen Statements Einbindung weiterer Verfahren kompaktere Darstellung der Daten (Beispiel BIRCH) Selektive Auswahl an Daten (Beispiel CLARA oder DBSCan)
Probleme Installation von DB2 unter Linux DB2 SQL Statements und UDFs Visual Age 2.0 für Windows Keine Standard Swing Klassen Datenbankanbindung noch im Debugger Modus Absturtz des DB2 Servers
Demonstration des Programms Testlauf Demonstration des Programms java KMeans