Optimaler Entscheidungsbaum: Pflichtenheft
Warning: preg_match(): Compilation failed: group name must start with a non-digit at offset 8 in /www/htdocs/w0102873/mediawiki/includes/MagicWord.php on line 739
Aus It2010-g1
Jonw (Diskussion | Beiträge) (→Vorwort) |
Jonw (Diskussion | Beiträge) (→Systemmodelle) |
||
Zeile 194: | Zeile 194: | ||
== Systemmodelle == | == Systemmodelle == | ||
− | + | So wie es für den Benutzer insgesamt drei Hauptansichten gibt, so gibt es auch intern drei verschiedene Ebenen, die das Model, bzw. die Datenstrukturen, über mögliche Änderungen informiert: | |
+ | * Falls der Benutzer etwas in der Tabelle ändert wird das Model, bzw. werden die Datenstrukturen informiert und gegebenfalls bearbeitet. | ||
+ | * Somit wird eine Kette von Aktivitäten ausgeführt (siehe das Diagramm unten) | ||
+ | * Nachdem die Datenstruktur geändert wurde, wird die grafische Oberfläche, oder auch die View, informiert, damit sich diese entsprechenderweise aktualisiert | ||
+ | [[Datei:Aktivitätsdiagramm_Observer.png]] | ||
=== Datenmodelle === | === Datenmodelle === | ||
− | === Andere Modelle === | + | Die Daten die in dem Projekt verarbeitet werden sollen, liegen zunächst in Form einer Tabelle vor. Diese Tabelle muss in Java abgebildet werden. Diese Datenorganisation bildet dann auch die Schnittstelle zu unseren Export- und Import-Klassen. |
+ | In einem weiteren Schritt müssen die Daten noch in eine Baumstruktur gewandelt werden. | ||
+ | Jeder Zeile ist dabei ein Listenelement, welches wiederum eine Liste ist, das allen zu dieser Zeile gehören Spaltenattribute enthält. Es gibt also eine Liste in einer Liste und kann daher ähnlich angesprochen werden wie ein Koordinatensystem. | ||
+ | |||
+ | Für Bäume gibt es eine Klasse, die einen Knoten repräsentiert. Ein solcher Knoten hat als Attribute einen Namen, ein Daten-Objekt und eine Liste von weiteren Knoten, die dann seine Kind-Knoten darstellen. Um einfacher mit einem Baum arbeiten zu können, ist in jedem Knoten zusätzlich auch der Eltern-Knoten hinterlegt. | ||
+ | Um den Baum anzusprechen oder zu kopieren, wird der Root-Knoten angesprochen. | ||
+ | |||
+ | Um Entscheidungsbäume darzustellen wird eine Klasse für dessen Knoten implementiert, welche von der Klasse den Baumknoten erbt. Diese speichert zusätzlich noch die zugehörige Tabelle, den Attributnamen des Knoten und das Ziel-Attribut. | ||
+ | Weiter bietet es Methoden zur Berechnung der Entropie, zur Berechnung der gewichteten Entropie und zur Erstellung eines optimalen Entscheidungsbaumes, ausgehend von sich selbst. | ||
+ | === Andere Modelle === | ||
+ | Das folgende Diagramm zeigt auf, nach welchem Modell der optimierte Baum erstellt wird. Dabei wird eine Reihe von Bedingungen geprüft und Rechnungen durchgeführt: | ||
+ | [[Datei:Flussdiagramm_generateOptimizedTree.png]] | ||
== Anforderungen an die Entwicklungsumgebung == | == Anforderungen an die Entwicklungsumgebung == |