Hochschule Wismar. Fakultät für Wirtschaftswissenschaften. Masterthesis. Entscheidungsbaumgenerierung als elearning-modul

Größe: px
Ab Seite anzeigen:

Download "Hochschule Wismar. Fakultät für Wirtschaftswissenschaften. Masterthesis. Entscheidungsbaumgenerierung als elearning-modul"

Transkript

1 Hochschule Wismar Fakultät für Wirtschaftswissenschaften Masterthesis Entscheidungsbaumgenerierung als elearning-modul Masterthesis zur Erlangung des Grades Master of Science in Wirtschaftsinformatik der Hochschule Wismar eingereicht von: Betreuer: Nina Rothenberg geboren am 29. August 1985 in Gifhorn Studiengang Master Wirtschaftsinformatik Matrikel Nr. : Prof. Dr. J. Cleve Prof. Dr. J. Frahm Hannover, den 8. März 2011

2

3 Inhaltsverzeichnis Inhaltsverzeichnis Abbildungsverzeichnis Tabellenverzeichnis V VII 1. Einleitung Motivation Zielsetzung Einordnung in die Wirtschaftsinformatik Begriffsdefinition elearning-modul Entscheidungsbaumgenerierung Entscheidungsbäume Prozess Trainings- und Testdaten Auswahl der Trainings- und Testmenge Attribute Generierung von Entscheidungsbäumen Split-Kriterien Stop-Kriterien Algorithmen Pruning-Methoden Software zur Entscheidungsbaumgenerierung elearning-software Varianten des elearning Simulationen im elearning Vorgehensmodelle Vorgehensmodell nach Hambach und Urban Vorgehensmodell nach Wendt Bewertung der Vorgehensmodelle Verwendetes Vorgehensmodell in dieser Arbeit Software-Analyse Zielsetzung Zielgruppe analysieren Anwendungsfall Lerninhalte Anforderungen Anforderungen zur Entscheidungsbaumgenerierung Nichtfunktionale Anforderungen Software-Entwurf Visualisierung Entscheidungsbaum Informationen aus der Entscheidungsbaumgenerierung Benutzungsoberfläche Nina Rothenberg Masterthesis III

4 Inhaltsverzeichnis Exportierbarer Bericht Parametereingabe Algorithmen Erweiterbarkeit Komponentenschnitt Basis-Komponente Benutzungsoberfläche Standard-Komponente Sonstiges Implementierung Visualisierung Umsetzung der Erweiterbarkeit Beispiel zur Erstellung und Verwendung von Erweiterungen Umsetzung der Erklärungskomponente Funktionalitäten Export Fazit 65 A. Beispiel des Klassifizierungs-Outputs von Weka 67 B. Anforderungen 75 B.1. Datenvorbereitung B.2. Entscheidungsbaumgenerierung B.3. Erklärungskomponente B.4. Nichtfunktionale Anforderungen C. Tutorial 89 C.1. Installation C.2. Quick-Start D. Beispiel eines HTML-Berichts 93 E. Prototyp 99 Literaturverzeichnis 101 Abkürzungsverzeichnis 105 Ehrenwörtliche Erklärung 107 IV Masterthesis Nina Rothenberg

5 Abbildungsverzeichnis Abbildungsverzeichnis 1.1. Die Taxonomie des Data Minings nach [MR05a, Seite 7] Export eines Entscheidungsbaumes aus KNIME Einstellungen zur Entscheidungsbaumgenerierung in KNIME Screenshot der Anwendung Weka Visualisierung von Entscheidungsbäumen in Weka Visualisierung von Entscheidungsbäumen in RapidMiner elearning-varianten Quelle: [RR03, Seite 33] Vorgehensmodell zur systematischen Entwicklung von elearning-angeboten Schritte der OOA und des OOD Erweitertes Vorgehensmodell Anwendungsfalldiagramm Inhalte des elearning-moduls Entscheidungsbaum Informationsblock Layout der Benutzungsoberfläche Layout eines Berichts Komponentendiagramm Modell des Entscheidungsbaums Bereitgestellte Schnittstellen Schnittstelle der Kern-Komponente Die Klassen der Standard-Komponente Baum dargestellt mittels JUNG Klasse des Plugin-ClassLoaders Architektur der Erweiterung detrin-pruningmethods Anzeige der neuen Pruning-Methoden Anzeige der neuen Erklärungen DeTrIn Screenshot Anzeige der Instanzen Anzeige der Attribute Details für Attribute C.1. Bereiche in der Benutzungsoberfläche von DeTrIn C.2. Auswahl eines FileHandlers C.3. Button zur manuellen Gruppierung Nina Rothenberg Masterthesis V

6

7 Tabellenverzeichnis Tabellenverzeichnis 4.1. Bildungsziel Bildungsziel Zielgruppenanalyse der Zielgruppe Studenten Die Konfiguration für den ID3-Algorithmus Nina Rothenberg Masterthesis VII

8

9 1. Einleitung 1. Einleitung Die vorliegende Arbeit befasst sich mit dem Thema Entscheidungsbaumgenerierung als elearning- Modul. Es werden die Fragen behandelt, wie ein electronic learning (elearning)-modul zur Entscheidungsbaumgenerierung aussehen kann und welche Inhalte dort behandelt werden. Neben der Funktionalität wird auch die Präsentation der Inhalte in elearning-modulen beleuchtet. Zu dieser Arbeit wird ein Prototyp für eine Implementierung eines solchen Moduls entwickelt. Der Schwerpunkt bei der Implementierung liegt auf der Erweiterbarkeit, nicht auf der Vollständigkeit. Durch die Erweiterbarkeit bleibt die Anwendung flexibel und kann auch für später entwickelte Algorithmen zur Entscheidungsbaumgenerierung genutzt werden Motivation Es gibt eine Vielzahl an Anwendungen, die die Entscheidungsbaumgenerierung unterstützen. Keine von diesen erklärt allerdings im Detail, wie genau der Entscheidungsbaum zu einem gegebenem Datensatz generiert wurde. Für Anwender in der Praxis mag dies auch irrelevant sein, da diese nur am Ergebnis interessiert sind und der Funktionalität der Anwendungen vertrauen. Für Menschen, die den Prozess verstehen wollen, ist dies allerdings nicht genug. Sie müssen sich in die theoretischen Grundlagen der Algorithmen einlesen und die Beispiele dann selbst ermitteln. Anwendungen können nur dafür genutzt werden das eigene Ergebnis zu kontrollieren. In solchen Fällen ist eine Anwendung mit einer integrierten Erklärungskomponente nützlich. Mittels einer solchen Anwendung kann aus einer Datenmenge ein Entscheidungsbaum generiert werden und zusätzlich eine Dokumentation ausgegeben werden, wie das Ergebnis berechnet wurde. Eine Erklärungskomponente hat die Aufgabe den verwendeten Lösungsweg der Komponente zu erklären und somit die Vorgehensweise des Systems transparent zu machen und die Problemlösung zu begründen. [BHS07, Seite 7] Da die Anwendung zum Verstehen und Erlernen von Methodiken der Entscheidungsbaumgenerierung optimiert ist, kann von einem elearning-modul gesprochen werden. Nina Rothenberg Masterthesis 1

10 1. Einleitung 1.2. Zielsetzung In dieser Arbeit wird ein Modul zur Entscheidungsbaumgenerierung inklusive einer detaillierten Erklärungskomponente konzipiert und prototypisch implementiert. Diese Erklärungskomponente macht aus dem Modul ein elearning-modul, denn sie ist dazu gedacht, neben dem generierten Entscheidungsbaum auch den Berechnungsweg anzuzeigen. Um den Nutzen für den Anwender zu maximieren, soll die Anwendung an allen sinnvollen Stellen parametrisierbar sein, sodass der Anwender experimentieren kann und so das Verständnis für das Ergebnis wächst. Hierbei werden Benutzerfreundlichkeit und Didaktikelemente nicht außer acht gelassen Einordnung in die Wirtschaftsinformatik Die Entscheidungsbaumgenerierung ist eine Methodik aus dem Data Mining. Das Data Mining gehört zum Themengebiet der künstlichen Intelligenz und dient der Mustererkennung in einer oder mehrerer Datenmengen, indem die einzelnen Datensätze automatisiert analysiert werden. Erkannte Muster werden auch Hypothesen genannt. Das Data Mining teilt sich, wie in Abbildung 1.1 zu sehen, in mehrere Themengebiete auf. Die beiden Hauptgebiete sind das Auffinden (Discovery) und die Verifikation (Verification) von Hypothesen. Hypothesen können durch unüberwachtes (Description) und überwachtes (Prediction) Lernen gefunden werden. Zum unüberwachtem Lernen gehört zum Beispiel das Clustering. Beim überwachtem Lernen unterscheidet man Klassifikation, das Lernen einer diskretwertigen Funktion, und Regression, das Lernen einer stetigen Funktion. [RN04, Seite 798] Induktive Lernalgorithmen gehören in das Themengebiet des überwachten Lernens. Sie suchen aus einer gegebenen Datenmenge Regeln und Muster aus, indem sie die Attribute der Instanzen eines Datensatzes mit der Ausprägung des Zielwertes in Beziehung setzen. Diese Muster können später verwendet werden, um die Ausprägung des Zielattributs bei neuen Instanzen zu bestimmen.[mr05a, Seite 7 ff.] Eine der einfachsten und erfolgreichsten Formen eines induktiven Lernalgorithmus ist die Entscheidungsbauminduktion.[RN04, Seite 798] Die Grundlagen zur Entscheidungsbaumgenerierung werden detailliert in Kapitel 2 behandelt. 2 Masterthesis Nina Rothenberg

11 1. Einleitung Abbildung 1.1.: Die Taxonomie des Data Minings nach [MR05a, Seite 7] Begriffsdefinition elearning-modul Die Abkürzung elearning steht für Electronic Learning (zu deutsch: elektronisches Lernen). Im Allgemeinen wird elearning als Unterstützung und Begleitung von Lehr-Lernprozessen durch Computertechnologie [E-L10] definiert. 1 Ein elearning-modul ist demnach jegliche Art von Modul auf oder in einem digitalen Medium, welches in Lehr- und Lernaktivitäten eingebunden ist. Somit ist auch ein Textverarbeitungsprogramm ein elearning-modul. In dieser Arbeit wird der Begriff des elearning-moduls spezieller verwendet. Gemeint ist hier eine Fachanwendung zur Unterstützung des Lernprozesses. Das in dieser Arbeit beschriebene elearning-modul beinhaltet eine Simulation. Eine Simulation wird hier, wie in [Rey09, Seite 21], als Computerprogramm definiert, in dem virtuell Experimente durchgeführt werden können, um dadurch ein zugrundeliegendes mathematisches Modell besser verstehen zu können. Theoretische Grundlagen zum Thema elearning werden in Kapitel 3 behandelt. 1 Vgl. zum Beispiel auch [Rey09, Seite 15], [HN09, Seite 7], [Der07, Seite 10], [Hes10], [7r.10] und [Rot09, Seite 32]. Nina Rothenberg Masterthesis 3

12

13 2. Entscheidungsbaumgenerierung 2. Entscheidungsbaumgenerierung The whole story is in finding good splits and knowing when to stop splitting. Quelle: [Bre83, Seite 23] Die Generierung von Entscheidungsbäumen ist eine wichtige Methode im Data Mining. Aus großen Datensätzen werden leicht verständliche Entscheidungsbäume berechnet. Ein Datensatz besteht aus mehreren Instanzen und einen Mengen von Attributen. Eine Instanz besteht aus jeweils einem konkreten bzw. einem explizit fehlenden Wert je Attribut. Bevor aber in diesem Kapitel die Entscheidungsbaumgenerierung im Detail vorgestellt wird, wird auf die Entscheidungsbäume selbst eingegangen Entscheidungsbäume Maimon und Rokach definieren Entscheidungsbäume als classifier expressed as a recursive partition of the instance space. [MR05a, Seite 165] Die Verwendung von Entscheidungsbäumen ist eine sehr populäre Technik im Data Mining zum Vorhersagen und Erklären von Zusammenhängen zwischen Messungen eines Elements und seinem Zielwert, indem sie einen Datensatz in Untergruppen (Klassen) segmentieren. [Leb08, Seite 106] Dies liegt an ihrer Einfachheit und Transparenz. Durch ihre Baumdarstellung sind sie selbsterklärend und auch jemand, der kein Data-Mining-Experte ist, kann sie richtig interpretieren. Zusätzlich zu ihrem Einsatz im Data Mining, werden sie auch im Text Mining, Informationsextraktion, Maschinenlernen und Mustererkennung eingesetzt. [RM08, Seite vii] In der Wirtschaft, werden Entscheidungsbäume oft als erste Methode angewandt um eine Klassifizierungsmenge aus einem Datensatz zu ermitteln. [RN04, Seite 811] Begründet wird dies vor allem in der Einfachheit der Entscheidungsbäume, denn jeder kann sie richtig interpretieren und verstehen und dies ist eine gesetzliche Forderung für finanzielle Entscheidungen. Man bezeichnet einen Entscheidungsbaum als Klassifizierungsbaum, wenn für Klassifizierungsaufgaben verwendet wird. Wird er für Regressionsaufgaben verwendet, wird er Regressionsbaum genannt. Klassifizierung bezeichnet hierbei das Lernen einer diskretwertigen Funktion, die Regression ist das Lernen einer stetigen Funktion. [RN04, Seite 798] Klassifikationsbäume werden verwendet, um ein Objekt oder eine Instanz gemäß ihrer Attribute einer vordefinierten Klasse Nina Rothenberg Masterthesis 5

14 2. Entscheidungsbaumgenerierung zuzuordnen. Sie werden in verschiedensten Praxisfeldern, wie z. B. dem Finanzwesen, Marketing, Ingenieurwesen und Medizin, verwendet. [RM08, Seite 5 ff.] Eine gute Klassifizierungsmethodik muss nicht nur akkurat klassifizieren sondern nach [Bre83, Seite 7] auch einen Einblick in und Verständnis für die Muster innerhalb der Datenstruktur vermitteln. Ein Entscheidungsbaum besteht aus inneren Knoten, Blättern und Kanten. Wenn von Knoten gesprochen wird, sind in der Regel innere Knoten und Blätter (äußere Knoten) gemeint. Ein innerer Knoten repräsentiert eine Entscheidung. Eine solche Entscheidung ist in den der Regel genau ein Attribut. Dies muss aber nicht der Fall sein, denn eine Entscheidung kann auch aus einer Kombination von Attributen bestehen. Ein Blatt repräsentiert ein konkreten Wert des Zielattributs, also das Ergebnis einer Entscheidungsbaum-Kante. Dieser Wert kann der wahrscheinlichste sein oder aber ein Vektor von Werten, die jeweils mit einer Wahrscheinlichkeit belegt sind. [RM08, Seite 8 ff.] Eine Kante repräsentiert den Übergang von einem inneren Knoten zu einem weiteren Knoten. Er ist beschriftet mit einem konkreten Wert des Attributs seines Eltern-Knotens (oder entsprechend mehreren). Gemäß [RM08, Seite 9] wird die Komplexitität eines Entscheidungsbaumes explizit durch Stop- Kriterien und Pruning-Methoden gesteuert und kann mit einer der folgenden Metriken gemessen: Anzahl der inneren Knoten Anzahl der Blätter Baumtiefe Anzahl der Attribute Algorithmen wie ID3 oder C4.5 generieren Klassifikatoren in Form von Entscheidungsbäumen. [QQ92, Seite 5] Vor- und Nachteile von Entscheidungsbäumen Entscheidungsbäume bieten viele Vor- aber auch Nachteile. Folgende Vor- und Nachteile werden in [RM08, Seite 73 ff.] zusammengefasst: Entscheidungsbäume sind selbsterklärend und auch von nicht-professionellen Anwendern leicht zu verstehen. Sie können nominale und nummerische Attribute verarbeiten. Entscheidungsbäume können jeden Klassifikator für diskrete Werte repräsentieren. 6 Masterthesis Nina Rothenberg

15 2. Entscheidungsbaumgenerierung Sie können mit Datensätzen umgehen, die Fehler oder fehlende Werte enthalten. Sie sind eine nichtparametrische Methode. Sie inkludieren z. B. keine Annahmen über die Klassifizierungsstruktur. Entscheidungsbäume benötigen nur die Werte der Attribute, die entlang des Pfades abgefragt werden. Bei vielen Attributen pro Datensatz ist das von Vorteil und ermöglicht eine schnelle Klassifizierung. Durch die divide and conquer 2 -Methode sind Entscheidungsbäume gut bei wenigen und gleichzeitig relevanten Attributen. Allerdings ist die Methode weniger gut geeignet, wenn viele komplexe Zusammenhänge zwischen den Attributen bestehen. Die meisten Algorithmen (z. B. ID3 und C4.5) setzen ein diskretes Zielattribut voraus. Übersensibilität zur Trainingsmenge, zu irrelevanten Attributen und zum Rauschen machen Entscheidungsbäume instabil. Eine kleine Änderung in einem Split nahe der Wurzel führt zu einer Änderung des kompletten Baumes darunter. Hoher Aufwand zur Behandlung von fehlenden Werten. Entscheidungsbaumalgorithmen sind kurzsichtig: Sie beziehen nur eine Ebene weiter mit ein. Ein solches Vorgehen übersieht Kombinationen von Attributen und bevorzugt Isolierte Prozess Der Prozess zur Entscheidungsbaumgenerierung setzt sich aus drei Teilschritten zusammen: 1. Datenaufbereitung 2. Generierung des Entscheidungsbaums 3. Pruning In der Datenaufbereitung werden die Beispieldaten in Trainings- und Testmengen aufgeteilt. Die Attribute werden ausgewählt, vorbereitet und gegebenenfalls gruppiert. Sobald die Vorbereitungen abgeschlossen sind, wird für die Trainingsmenge ein Entscheidungsbaum generiert. Dabei wird die Trainingsmenge auf 4 Fälle untersucht: 2 Divide and conquer heißt zu deutsch teilen und beherrschen. Eine divide and conquer -Methode teilt ein Problem solange in kleinere Teilprobleme auf, bis diese beherrschbar sind. Nina Rothenberg Masterthesis 7

16 2. Entscheidungsbaumgenerierung Die Trainingsmenge ist leer Der Baum schließt mit einem Blatt ab. In den meisten Fällen wird die Zielattributausprägung genommen, die in der Trainingsmenge des Elternknotens am häufigsten vorkommt. Die Entscheidungsbaumgenerierung ist hiermit beendet. Die Elemente der Trainingsmenge entsprechen dem Stop-Kriterium Die wahrscheinlichste Zielattributausprägung wird als Blatt erzeugt. Auch in diesem Fall endet die Generierung. Es existiert kein zu untersuchendes Attribut mehr Die wahrscheinlichste Zielattributausprägung wird als Blatt erzeugt. Auch in diesem Fall endet die Generierung. Die Elemente entsprechen nicht dem Stop-Kriterium und es existieren noch zu untersuchende Attribute Mittels des Splitting-Kriteriums wird das beste Attribut zur Teilung der Trainingsmenge ermittelt. Für jede mögliche Attributausprägung des gewählten Attributs wird eine Kante erstellt. Alle Elemente der Trainingsmenge, die dieser Kante entsprechen, werden in die Trainingsmenge des Teilbaumes genommen. Die Teilbäume werden rekursiv nach der gleichen Fallunterscheidung erstellt. Dabei wird das Teilungsattribut aus der Menge der zu untersuchenden Attribute herausgenommen. Wenn es der verwendete Algorithmus vorsieht, wird der entstandene Entscheidungsbaum nach der Generierung mittels einer Pruning-Methode gekürzt. Nach Abschluss dieses Vorgangs wird die Fehlerrate des Entscheidungsbaumes ermittelt, indem die Testmenge mit Hilfe des Entscheidungsbaumes klassifiziert wird und der Anteil der nicht korrekt klassifizierten Instanzen berechnet wird. [RN04, Seite 807] Je nach vorgehen kann dieses rekursiv für verschiedene Trainings- und Testmengen erfolgen Trainings- und Testdaten Bei der Generierung von Entscheidungsbäumen sind zwei Datenmengen wichtig: Die Trainingsund die Testdaten. Die Trainingsdaten sind Datenreihen, die korrekt klassifiziert sind, also mit korrekt ausgefülltem Zielattribut. Auch Testdaten müssen einen Wert des Zielattributes haben, damit geprüft werden kann, ob sie richtig klassifiziert worden ist. Auf Grundlage der Trainingsdaten wird der Entscheidungsbaum generiert und anschließend mittels der Testdaten 8 Masterthesis Nina Rothenberg

17 2. Entscheidungsbaumgenerierung getestet. In einigen Methoden wird dieses Vorgehen mehrmals mit verschiedenen Trainings- und Testmengen durchgeführt Auswahl der Trainings- und Testmenge Ein Datensatz kann manuell in eine Trainings- und eine Testmenge aufgeteilt werden. In der Entscheidungsbaumgenerierung wird dies allerdings in der Regel automatisch vorgenommen. Hierzu gibt es verschiedene Methoden einen Datensatz aufzuteilen. manuelle Auswahl Ein Datensatz wird manuell in Test- und Trainingsmenge geteilt. zufällige automatisierte Auswahl Ein Datensatz mit N Instanzen wird in k Teilmengen aufgeteilt, wobei k N ist. Nun werden k 1 Teilmengen als Trainingsmenge und die übrige als Testmenge verwendet. berechnete automatisierte Auswahl Die Teilmengen werden so gewählt, dass alle Teilmengen eine möglichst gleiche Verteilung haben. Die Aufteilung eines Datensatzes in mehr als zwei Teilmengen dient der Kreuz-Validierung. Um einen möglichst idealen Entscheidungsbaum zu generieren, wird der Algorithmus in der Regel mehrmals mit verschiedenen Trainings- und Testmengen durchlaufen und der beste der entstandenen Bäume wird gewählt Attribute Es gibt drei wichtige Attributtypen: nominal Die verschiedenen Ausprägungen von nominale Daten haben keine natürliche Ordnung. Man kann sie nur über das Kriterium Gleichheit vergleichen. Beispiel: Geschlecht, Beruf ordinal Ordinale Daten können in eine Reihenfolge gebracht werden. Man kann sie daher mit und vergleichen. Beispiel: Schulnote, Schuhgröße Nina Rothenberg Masterthesis 9

18 2. Entscheidungsbaumgenerierung metrisch Mit Metrische Daten lassen sich Rechenoperationen, wie Addition, Mittelwertbildung u.ä. durchführen. Beispiel: Länge, Temperatur In der Regel unterscheidet man im Fall der Entscheidungsbaumgenerierung allerdings nur zwischen nominalen und nummerischen Attributen, wobei bei nummerischen Attributen auch immer von einem unbeschränkten Zahlenraum ausgegangen wird. Falls die Anzahl der möglichen Ausprägungen zu hoch wird, wie es zum Beispiel bei den unendlich vielen Möglichkeiten der nummerischen Attributen der Fall ist, können mehrere Ausprägungen gruppiert werden. Bei nummerischen Attributen geschieht dies in Form von Intervallen. Quinlan schlägt in [QQ92, Seite 64] vor, bereits bekannte Gruppen über zusätzlich Attribute von vorne herein bekannt zu geben. Für nicht von vorn herein bekannt Gruppen bietet sein C4.5-Algorithmus eine Methodik zur idealen Gruppierung an, welche die einzelnen Gruppen solange paarweise zusammengeführt, bis nur noch zwei Teilmengen bestehen oder bis sich die Aufteilung der Trainingsmenge im Vergleich zum aktuellen Stand nicht mehr verbessert. Die initialen Gruppen bilden hierbei die einzelnen Ausprägungen. [QQ92, Seite 65] 2.4. Generierung von Entscheidungsbäumen Aus dem Trainingsdatensatz wird mittels eines Entscheidungsbaum-Algorithmus ein Entscheidungsbaum generiert. Das Ziel ist in der Regel einen möglichst optimalen Entscheidungsbaum zu finden, der die geringste Fehlerrate ermöglicht.[rm08, Seite 18] Das Problem am Finden des idealen Entscheidungsbaumes für eine Datenmenge ist nichtdeterministisch polynomiell vollständig (NP-vollständig). [QQ92, Seite 20] NP-vollständig bedeutet, dass für ein Problem kein Algorithmus existiert, der es in polynomieller Zeit lösen kann. [RN04, Seite 1187] Eine Lösung kann erst dann gefunden werden, wenn alle Möglichkeiten ausprobiert und miteinander vergleichen wurden, um die ideale Lösung ermitteln. Da dies allerdings sehr zeitintensiv ist, wurden Algorithmen entwickelt, die einen möglichst idealen Entscheidungsbaum finden. Tests zeigen, dass die Ergebnisse gut genug sind, um die Algorithmen den Überprüfen aller Möglichkeiten vorzuziehen. Der Algorithmus generalisiert den Zusammenhang der Attribute und dem Zielattribut anhand der Instanzen der Trainingsmenge in Form eines Modells. [RM08, Seite 16] Für die vorgestellten induktiven Entscheidungsbaumalgorithmen eignen sich nicht alle Datensätze. Die Anforderungen, die ein Datensatz erfüllen muss, werden in [QQ92, Seite 2 ff.] wie Folgt zusammengefasst: 10 Masterthesis Nina Rothenberg

19 2. Entscheidungsbaumgenerierung Mögliche Attributausprägung Alle Informationen einer Instanz aus dem Datensatz müssen in einer festen Liste von Attributen ausdrückbar sein. Attribute haben eine für alle Fälle gleichbleibend Menge von diskrete bzw. numerische Ausprägungen. Vordefinierte Klassen Da es sich bei der Entscheidungsbaumgenerierung um überwachtes Lernen handelt, müssen die Klassen, in die verschiedene Datensätze klassifiziert werden sollen, im Vorfeld festgelegt und bekannt sein. Diskrete Klassen Die einzelnen Klassen sind disjunkt. Eine Instanz muss eindeutig klassifiziert werden können. Zusätzlich muss es deutlich mehr Fälle als Klassen geben. Kontinuierliche Klassen können nicht verwendet werden. Wenn man sie in Gruppen aufteilt, sollte darauf geachtet werden, dass diese scharf abgegrenzt und nicht zu vage sind, wie z.b. jung und alt. Ausreichend viele Daten Die Entscheidungsbaumgenerierung ist eine induktive Methode. Induktive Methoden versuchen Muster in den Daten zu identifizieren. Es werden statistische Methoden verwendet, um valide, robuste Muster von invaliden Mustern zu unterscheiden. Um diese sinnvoll anwenden zu können, müssen allerdings genügend Datensätze vorhanden sein. Die Anzahl der benötigten Datensätze ist abhängig von der Anzahl der Attribute und Klassen, sowie der Komplexität des Klassifizierungsmodels. Logische Klassifizierungsmodelle Da Entscheidungsbäume oder Klassifizierungsregeln erstellt werden, müssen die möglichen Klassen logischen Ausdrücke sein (z. B. ein bestimmter Wert eines bestimmten Attributs). Die generierten Entscheidungsbäume können zur Klassifizierung von neuen Instanzen verwendet werden. Hierbei unterscheidet man die sogenannten crisp classifier, die eine Klasse identifizieren und zurückgeben, und die probability classifier, die einen Vektor von Wahrscheinlichkeiten zurückgeben, mit denen die Instanz zu einer bestimmten Klasse gehört. [RM08, Seite 16] Split-Kriterien Das Split-Kriterium legt fest, aufgrund welcher Regel sich der Knoten eines Entscheidungsbaumes weiter aufteilt. In den meisten Algorithmen sind die Split-Funktionen univariat und ein Knoten wird nur aufgrund der Ausprägung eines Wertes definiert. [RM08, Seite 53] Im folgenden Abschnitt werden die gängisten Split-Kriterien vorgestellt. Nina Rothenberg Masterthesis 11

20 2. Entscheidungsbaumgenerierung Information Gain Der Information Gain 3 ermittelt das Attribut, welches den meisten Informationsgehalt bringt. Es hat das Ziel, die Tiefe des Entscheidungsbaumes zu minimieren. [RN04, Seite 804] Er berechnet sich wie folgt: Für jede mögliche Ausprägung i des Zielattributes Z innerhalb der betrachteten Trainingsmenge T wird die Häufigkeit ermittelt, wie oft es in T vorkommt. Diese Häufigkeit wird definiert als T i. Die Wahrscheinlichkeit dieser Ausprägung ergibt sich dann im Verhältnis der Häufigkeit zur Gesamtgröße der Trainingsmenge T : T i T Die Entropie, der Erwartungswert des Informationsgehalts, wird dann durch die Informationsgehalte der n einzelnen Ziel-Ausprägungen im Verhältnis zu ihrer Häufigkeit in der Trainingsmenge T berechnet. entropy(t ) = n i=1 T i T log 2( T i T ) Die Trainingsmenge T wird auf ein Attribut X getestet. Das Attribut X hat n mögliche Ausprägungen. Für jede Ausprägung von X wird die Entropie der sicher ergebenen Teilmenge berechnet und im Verhältnis zum Wahrscheinlichkeit der Ausprägung aufsummiert. Somit ergibt sich die bedingte mittlere Information: entropy X (T ) = n i=1 T i T entropy(t i) Der Information Gain 4 eines Attributs X berechnet sich aus der Differenz zwischen der ursprünglichen Information und der Restinformation [BKI06, Seite 116]. gain(x) = entropy(t ) entropy X (T ) Die Entropie der gesamten Trainingsmenge ist nach [RN04, Seite 805] [e]ine Schätzung der in einer korrekten Antwort enthaltenen Information. Wenn der Information Gain aller Attribute berechnet wurde, wird das Attribut X für den Split ausgewählt, welches den maximalen Information Gain hat. Dieses einfache Split-Kriterium liefert gute Ergebnisse. Dennoch hat es einen schwerwiegenden Nachteil, denn es bevorzugt Attribute mit vielen möglichen Werten. [QQ92, Seite 22] 3 Zu deutsch: Informationsgewinn. 4 Der mittlere Informationsgehalt zwischen Attribut X und der Ziel-Ausprägung. [QQ92, Seite 22] 12 Masterthesis Nina Rothenberg

21 2. Entscheidungsbaumgenerierung Gain ratio criterion Der angesprochene Mangel des Information Gains, wonach dieser Attribute mit vielen möglichen Ausprägungen bevorzugt, kann mit einer Art Normalisierung behoben werden. [QQ92, Seite 23] Der Information Gain wird wie gewohnt ermittelt. Er wird allerdings am Ende durch einen Normalisierungsfaktor geteilt. gain ratio(x) = gain(x) split entropy(x) Der Normalisierungsfaktor entspricht der Entropie des Attributs X: n ( ) T split i entropy(x) = T log Ti 2 T Der Gain Ratio repräsentiert die potenzielle Information, die erzeugt wird, wenn die Trainingsmenge T in n Teilmengen aufgeteilt wird. Der Gain Ratio drückt den Anteil der durch den Split erzeugten Information aus, der für die Klassifikation nützlich ist. [QQ92, Seite 23] Quinlan bewertet das Gain Ratio Kriterium als robust und bewertet die Ergebnisse im Vergleich zum Information Gain als besser. [QQ92, Seite 24] i=1 Gini Index Der Gini Index misst die Divergenz zwischen den Wahrscheinlichkeitsverteilungen der möglichen Ausprägungen des Ziel-Attributs.[RM08, Seite 55] Er berechnet sich mit Hilfe der Wahrscheinlichkeit der Ausprägungen des betrachteten Attributs X. n ( ) Ti 2 Gini(X, T ) = 1 T Das Auswahlkriterium für das Attribut X bei einem Zielattribut Z berechnet sich wie folgt: i=1 GiniGain(X, T ) = Gini(Z, T ) n i=1 T i T Gini(Z, T i) Der Gini Index kann einfach und schnell berechnet werden. [Bre83, Seite 104] Twoing Criterion Das binäre Twoing Criterion wird in [Bre83, Seite 104 ff.] als Vorgehen beschrieben, welches alle Objekte eines Knotens in zwei disjunkte Teilmengen teilt. Alle möglichen Klassen werden gebildet und die Einteilung, bei der der Informationsgewinn am größten ist, wird gewählt. Nina Rothenberg Masterthesis 13

22 2. Entscheidungsbaumgenerierung Das Twoing Criterion berechnet sich wie folgt: twoing(a i, dom 1 (a i ), dom 2 (a i ), S) = 0, 25 σ a i dom 1 (a i )S S c i dom(y) σ ai dom 1 (a i ) y=c i S σ ai dom 1 (a i )S Hierbei teilen sich alle möglichen Werte des Attributs a i σ a i dom 2 (a i ) y=c i S σ ai dom 2 (a i )S σ a i dom 2 (a i )S S 2 in zwei Gruppen dom 1 (a i ) und dom 2 (a i ) auf. σ ai dom 1 (a i )S definiert die Häufigkeit des Auftretens von Werten aus dom 1 (a i ) in der Menge S. Die Häufigkeit der Werte aus dom 1 (a i ) in Kombination mit der Ausprägung c i des Zielattributs y drückt sich in σ ai dom 1 (a i ) y=c i S aus. Wenn es sich beim betrachteten Attribut um ein binäres Attribut handelt, sind der Gini Index und das Twoing Cirterion äquivalent. [RM08, Seite 57] Das Twoing Criterion hat den entscheidenden Vorteil, dass es strategische Splits erstellt und Klassengemeinsamkeiten aufdeckt. [Bre83, Seite 105] Stop-Kriterien Die Generierung eines Entscheidungsbaums endet, wenn ein Stop-Kriterium erreicht wird. In [RM08, Seite 19] sind folgende Beispiele für Stop-Kriterien zusammengefasst: Alle Instanzen der Trainingsmenge haben den selben Wert des Zielattributs. Die maximale Baumtiefe ist erreicht. Die Anzahl der Fälle in der ermittelten Teilmenge ist kleiner als der festgelegte Minimalwert für Elternknoten. Der bestmögliche Split-Wert unterschreitet den festgelegten Grenzwert. Wenn ein Stop-Kriterium erreicht wurde, wird der Teilbaum mit einem Blatt abgeschlossen Algorithmen Beispielhaft werden die drei gängigen Algorithmen zur Entscheidungsbaumgenerierung näher beschrieben. 14 Masterthesis Nina Rothenberg

23 2. Entscheidungsbaumgenerierung CART Der Classification and Regression Trees (CART)-Algorithmus generiert binäre Entscheidungsbäume, durch wiederholtes Aufteilen der Datenmenge in zwei disjunkte Teilmengen. Er unterscheidet zwei Arten von Attributtypen: nummerische und nominale. [Bre83, Seite 5] Als Split-Kriterium ist neben dem Gini Index auch das Twoing Criterion implementiert. [Bre83, Seite 109] Die Wahl des Kriteriums hängt hierbei von der Problemstellung ab. Da der Gini index in der Regel bessere Ergebnisse liefert, wird von Breiman vorgeschlagen den Gini Index zu verwenden. [Bre83, Seite 111] Der Baum wird anschließend nach der Methode des Cost-Complexity-Pruning optimiert. [RM08, Seite 71 ff.] ID3 Der ID3-Algorithmus wurde 1986 von Quinlan entwickelt. Er benutzt als Split-Kriterium den Information Gain 5. Der Algorithmus stoppt, wenn alle Datenreihen den gleichen Wert des Ziel- Attributes haben oder aber der maximal zu erreichende Information Gain kleiner als 0 ist. [RM08, Seite 71] Der Algorithmus nimmt kein Pruning des Entscheidungsbaumes vor. ID3 ist ein einfacher Algorithmus, der gute Ergebnisse liefert, allerdings auch starke Schwächen aufweist. So werden durch die Verwendung des Information Gains Attribute mit viele möglichen Ausprägungen bevorzugt [QQ92, Seite 23], außerdem behandelt er weder nummerische Attribute noch fehlende Werte [RM08, Seite 71]. C4.5 Der C4.5-Algorithmus verwendet als Split-Kriterium den Gain Ratio und behebt damit den Kritikpunkt am ID3-Algorithmus. Der C4.5-Algorithmus unterstützt drei Arten von Tests [QQ92, Seite 24]: Diskrete Attribute, bei denen für jede mögliche Ausprägung eine Kante erzeugt wird. Diskrete Attribute, bei denen die möglichen Ausprägungen in einer beliebigen Menge von Gruppen zusammengefasst werden. 5 Vergleiche Abschnitt auf Seite 12. Nina Rothenberg Masterthesis 15

24 2. Entscheidungsbaumgenerierung Nummerische Attribute, für die ein Grenzwert ermittelt mittels dem zwei Intervalle a i X und a i > X gebildet werden. Zur Ermittlung der Grenze der Intervalle bei nummerischen Attributen werden alle existierenden Werte aus dem Datensatz gesammelt und der Größe nach sortiert. Nun wird jeweils zwischen zwei nebeneinander liegenden Werten die Intervallgrenze gesetzt. Es entstehen zwei Intervalle: x Grenze und x > Grenze, wobei die Grenze der Mittelwert der zwei betrachteten Werte ist. Für jede mögliche Grenze wird das Split-Kriterium berechnet. Die Grenze, die den besten Gain Ratio ergibt, wird gewählt. [QQ92, Seite 25 ff.] Es wird empfohlen als Stop-Kriterium eine Mindestanzahl 6 an erforderlichen Instanzen zu definieren, die mindestens zwei Teilmengen nach einem Split haben müssen. [QQ92, Seite 24] Durch diese Maßnahme werden triviale Splits bei kleinen Trainingsmengen vermieden. Am Ende wird der Baum mittels Error-based Pruning gekürzt. C4.5 kann auch mit fehlenden Werten umgehen, indem der korrigierte Gain Ratio verwendet wird. [RM08, Seite 71] Der Information Gain wird dazu mit einem Faktor F multipliziert, der den Anteil der nicht leeren Instanzen repräsentiert. Ähnlich wird auch die Split Entropie der Gain Ratio angepasst. Hier werden, die fehlenden Werte einfach als zusätzliche Gruppe behandelt werden. [QQ92, Seite 28 ff.] Wenn der Datensatz in Teilmengen aufgeteilt wird, werden unbekannte Werte in alle Teilmengen aufgenommen. Datenreihen werden in diesem Fall allerdings gewichtet. Datenreihen mit einem Wert bekommen die Gewichtung 1, Datenreihen mit unbekannten Wert bekommen die Gewichtung: Gewichtung = Ausprägung X Anzahl Datenreihen mit gültigem Wert Also die Wahrscheinlichkeit, dass der Wert der untersuchten Ausprägung X entspricht. An den Blättern stehen Werte der Form (N) oder (N E), wobei N der aufsummierten Gewichtungen aller Trainingsfälle der Teilmenge entspricht, die der Klasse angehören und E die entsprechende aufsummierte Gewichtung der Trainingsfälle der Teilmenge, die nicht der Klasse angehören. [QQ92, Seite 32] Wenn die Stop-Kriterien zu strikt gewählt werden, werden kleine under-fitted Entscheidungsbäume generiert. Bei nicht so strikten Stop-Kriterien wird der Entscheidungsbaum sehr groß und ist in Bezug auf die Trainingsmenge überangepasst. [MR05a, Seite 175] Diese Überanpassung kann man im nachhinein durch Pruning korrigieren. Eine Pruning-Methode gibt vor, wie man die nicht relevanten Teilbäume erkennen kann. Laut [Bre83, Seite 39] ist die Wahl der Pruning-Methode sogar wichtiger für das endgültige Ergebnis als das Split-Kriterium. 6 Standardmäßig ist dieser Wert 2. [QQ92, Seite 24] 16 Masterthesis Nina Rothenberg

25 2. Entscheidungsbaumgenerierung Im folgenden werden zwei der bekanntesten Pruning-Methoden vorgestellt. Das Cost-Complexity Pruning und das Error-based Pruning Pruning-Methoden Als Beispiel für Pruning-Methoden werden die Methoden näher beschrieben, die in den in Kapitel beschriebenen Algorithmen Anwendung finden. Cost Complexity Pruning Das Cost Complexity Pruning besteht aus zwei Schritten. Im ersten Schritt werden aus dem Baum alle möglichen gekürzten Bäume erstellt. Hierbei beginnt man beim generierten Entscheidungsbaum und endet bei dem Baum, der nur noch aus dem Wurzelknoten besteht. Um die Bäume zu erzeugen, werden bei dem Ausgangsbaum nach und nach Teilbäume innerhalb des Baumes durch Blätter ersetzt. Hierbei werden die Teilbäume gekürzt, die die Fehlerrate pro gekürztem Blatt am wenigsten erhöhen. Diese Erhöhung der Fehlerrate pro Blatt wird nach [RM08, Seite 64] wie folgt definiert: α = ε(pruned(t, t), S) ε(t, S) leaves(t ) leaves(pruned(t, t)) Hier ist ε(t, S) die Fehlerrate des Entscheidungsbaumes T des Datensatzes S. Die Anzahl der Blätter in T wird ausgedrückt durch leaves(t ). Der Baum, der entsteht, wenn man in T den Knoten t durch ein Blatt ersetzt, wird ausgedrückt durch pruned(t, t). Die Fehlerrate ist die Anzahl der falsch klassifizierten Instanzen der Testmenge. Große Datensätze werden in Trainings- und Pruningmenge geteilt. Wenn der Datensatz nicht groß genug ist, wird die Kreuz-Validierung angewandt. [RM08, Seite 64] Error-based Pruning Error-based Pruning ist eine Entwicklung aus dem pessimistischen Pruning und wird vom C4.5- Algorithmus verwendet. [RM08, Seite 66] Pessimistisches Pruning ist ein Oberbegriff für alle Pruning-Methoden, die die Fehlerrate eines Teilbaumes mit Hilfe einer Testmenge anpassen und kann somit die Kreuz-Validierung ersparen. [Man97, Seite 2] Der Top-Down-Ansatz kürzt direkt einen ganzen Teilbaum und ist daher eine relativ schnelle Pruning-Methode. [MR05b, Seite 48] Nina Rothenberg Masterthesis 17

26 2. Entscheidungsbaumgenerierung Die Fehlerrate wird mit Hilfe der oberen Grenze des Konfidenzintervalls abgeschätzt. Diese berechnet sich nach [MR05a, Seite 177] wie folgt: ε obere Grenze (T, S) = ε(t, S) + Z α ε(t, S) (1 ε(t, S)) S Wobei ε(t, S) die Rate der falschen Klassifizeriungen der Menge S durch den Entscheidungsbaum T ist. Z definiert die inverse Verteilungsfunktion der Standardnormalverteilung mit dem gewünschten Signifikanzniveau α. Der Teilbaum subtree(t, t) mit der Wurzel t wird von den Instanzen der Teilmenge S t erreicht. Der Kindknoten, dem die meisten Instanzen von S t zugeordnet sind, wird als maxchild(t, t) bezeichnet. Das error-based Pruning durchläuft nun von oben aus alle Knoten und vergleicht folgende Werte: 1. ε obere Grenze (subtree(t, t), S t ) 2. ε obere Grenze (pruned(subtree(t, t), t), S t ) 3. ε obere Grenze (subtree(t, maxchild(t, t)), S maxchild(t,t) ) Je nachdem, welcher Wert am niedrigsten ist, bleibt der Baum, wie er ist, kürzt den Knoten t oder ersetzt den Knoten t mit dem Teilbaum subtree(t, maxchild(t, t). [RM08, Seite 66 ff.] Bewertung von Methoden Studienergebnisse haben ergeben, dass Pruning-Methoden entweder zum Über- oder zum Unter- Pruning neigen. [RM08, Seite 68] Somit wird der Entscheidungsbaum entweder zu stark gekürzt, sodass nur noch ein kleiner, ungenauer Baum zurückbleibt, oder aber er wird zu wenig gekürzt. Das Cost-Complexity-Pruning neigt eher zum Über-Pruning. Im Gegensatz dazu neigt das Errorbased Pruning eher zu Unter-Pruning. Die meisten Studien kommen zu dem Schluss, dass es keine die anderen überragende Pruning-Methode gibt. [MR05a, Seite 179] Derjenige der einen Entscheidungsbaum verkürzen möchte, muss sich also vorher entscheiden, ob er sich eher für eine Methode entscheidet, die zum Über-Pruning neigt, oder für eine, die zum Unter-Pruning neigt. 18 Masterthesis Nina Rothenberg

27 2. Entscheidungsbaumgenerierung 2.5. Software zur Entscheidungsbaumgenerierung Es gibt viele Anwendungen die zur Entscheidungsbaumgenerierung eingesetzt werden. Menschen, die sich nur zeitweise mit dem Thema Entscheidungsbaumgenerierung beschäftigen, bevorzugen kostenlose Anwendungen. Zu den bekanntesten Anwendungen zählen Konstanz Information Miner (KNIME) 7, Weka 8 und RapidMiner 9. Alle drei erzeugen mit verschiedenen Algorithmen und manipulierbaren Eingabeparameter Entscheidungsbäume. Leider wird aber in keiner der Anwendungen das Vorgehen noch einmal ausgegeben. KNIME gibt dem Anwender nur den Entscheidungsbaum zurück. Wie in Abbildung 2.1 ist dieser zwar detaillierter als es in anderen Anwendungen der Fall ist, jedoch reicht die Information nicht aus um den Generierungsprozess nachvollziehen zu können. Abbildung 2.1.: Export eines Entscheidungsbaumes aus KNIME KNIME bietet einige Einstellungsmöglichkeiten. Split-Kriterium und Pruning-Methode kann gewählt werden. Auch weitere Konfiguration der Stop-Kriterien sind möglich. Die möglichen Einstellungen sind in der Abbildung 2.2 zu sehen. Allerdings sind die jeweiligen Auswahlmöglichkeiten sehr begrenzt. So kann unter dem Punkt Quality Measure nur zwischen Gain ratio und Gini index entschieden werden. Bei der Wahl der Pruning-Methode gibt es die Auswahl zwischen keinem Pruning und Minimal Description Length (MDL). 7 Projekthomepage: 8 Projekthomepage: 9 Projekthomepage: Nina Rothenberg Masterthesis 19

28 2. Entscheidungsbaumgenerierung Abbildung 2.2.: Einstellungen zur Entscheidungsbaumgenerierung in KNIME Leider bietet KNIME ansonsten keinerlei Ausgaben und Informationen, als in dem abgebildeten Entscheidungsbaum aufgelistet sind. Die Anwendung Weka bietet mehr Informationen, in Form einer Art Log-Ausgabe. Diese enthält, neben den Attributen, den Entscheidungsbaum und die Fehlerrate. Ein Beispiel für eine solche Ausgabe befindet sich in Anhang A ab Seite 67. Ein Screenshot der Anwendung ist in Abbildung 2.3 zu sehen. In diesem sind Teile dieser Log-Ausgaben zu sehen. Die Ausgaben in Weka kann man über weitere Optionen auch noch erweitern. Dadurch bekommt der Anwender einige Informationen mehr zur Generierung. Allerdings sind auch diese nicht ausreichend um den Algorithmus nachzuvollziehen. Natürlich bekommt man den Entscheidungsbaum in Weka nicht nur über Textausgaben zu sehen. Man kann ihn sich, wie in Abbildung 2.4 zu sehen, auch visualisieren lassen. Dieser ist grafisch nicht sehr ansprechend, aber funktional und enthält alle Informationen, die für das Interpretieren des Entscheidungsbaumes nötig sind. Die Anwendung RapidMiner ist mit KNIME zu vergleichen. Es wird ähnlich bedient und bietet dem Anwender ähnliche Auswahl und Informationen. Ein in RapidMiner generierter Entscheidungsbaum ist in Abbildung 2.5 zu sehen. 20 Masterthesis Nina Rothenberg

29 2. Entscheidungsbaumgenerierung Abbildung 2.3.: Screenshot der Anwendung Weka Beide Anwendungen eigenen sich, aufgrund der Einstellungsmöglichkeiten, gut, um aus einem gegebenen Datensatz einen Entscheidungsbaum zu generieren. Leider liefern beide Anwendungen aber keine Information, wie dieser Entscheidungsbaum entstanden ist. Daher sind beide Anwendungen als elearning-modul zum Verstehen und beispielhafter Anwendung der Entscheidungsbaum-Algorithmen ungeeignet. Nina Rothenberg Masterthesis 21

30 2. Entscheidungsbaumgenerierung Abbildung 2.4.: Visualisierung von Entscheidungsbäumen in Weka Abbildung 2.5.: Visualisierung von Entscheidungsbäumen in RapidMiner 22 Masterthesis Nina Rothenberg

31 3. elearning-software 3. elearning-software Wie bereits in Kapitel 1.4 beschrieben versteht man unter elearning computergestütztes Lehren und Lernen. Ein elearning-modul ist demnach ein Computer-Programm, welches Lehren und Lernen unterstützt. In diesem Kapitel werden die theoretischen Grundlagen zur Erstellung eines elearning-moduls erläutert Varianten des elearning Es gibt verschiedene Varianten des elearning. Reinmann-Rothmeier unterscheidet in [RR03, Seite 32] drei Formen: elearning by distributing elearning by interacting elearning by collaborating Beim elearning by distribution werden Informationen und Inhalte über elektronische Medien bereitgestellt, die dann von den Lernenden selbst erarbeitet werden. Im Gegensatz dazu werden die Inhalte beim elearning by interacting von den elektronischen Medien so angeboten, dass die Lernenden sie durch die Interaktion mit einem technischen System eigenständig erarbeitet können. Das elearning by collaboration beschreibt eine Variante des elearnings, bei dem mehrere Lernende zusammen Aufgaben lösen. In der Regel werden sie von Tutoren unterstützt. Abbildung 3.1 fasst die Varianten noch einmal zusammen. Das zu entwickelnde elearning-modul ist im Bereich elearning by interaction anzusiedeln. Der Anwender erarbeitet sich selbstständig Wissen und Verständnis mittels Interaktion mit dem elearning-modul. Als Anforderungen an ein solches elearning-modul ist vor allem die lernfreundliche Informationsgestaltung, wobei vom Lernenden ein außreichendes Maß an Motivation sowie die Fähigkeit zur Selbstorganisation gefordert wird. [RR03, Seite 34] Nina Rothenberg Masterthesis 23

32 3. elearning-software Abbildung 3.1.: elearning-varianten Quelle: [RR03, Seite 33] 3.2. Simulationen im elearning Ein solches technisches System kann folgende Elemente beinhalten: (Hyper-)Texte, Bilder, Animationen und Simulationen. Um den Unterschied zwischen Animationen und Simulationen noch einmal zu verdeutlichen werden beide Begriffe in den folgenden Abschnitten noch einmal definiert. Roth fasst in [Rot09, Seite 37] Animationen und Simulationen als einen Anwendungstyp zusammen, bei dem komplexe, dynamische Zusammenhänge in einem Modell abgebildet werden und ggf. die Möglichkeit besteht die Auswirkung von Parameter- und Variablenmanipulation zu beobachten. Dieser Anwendungstyp findet hauptsächlich im explorativem Lernen anwendung. Animationen 10 sind bewegte Darstellungen aus Einzelbildern. Sie werden einmal erstellt oder generiert und danach ein oder mehrmals abgespielt. Einige Anomationen können vom Nutzer 10 Anomation kommt vom lateinischen Wort animare, welches übersetzt Leben einhauchen oder zum Leben erwecken bedeutet. 24 Masterthesis Nina Rothenberg

33 3. elearning-software gesteuert werden, indem diese die Geschwindigkeit verändern bzw. blättern können. Andere Manipulationsmöglichkeiten hat der Anwender allerdings nicht. Simulationen sind Umgebungen in denen der Anwender in kontrollierten Umgebungen virtuell Experimente durchführen kann, um das zugrundeliegende mathematische Modell der Simulation besser verstehen zu können [Rey09, Seite 21]. Das elearning-modul, welches im Rahmen dieser Arbeit beschrieben wird, ist eine Simulation. Der Anwender wählt Werte für Parameter aus und kann sich auf Grundlage dieser Eingaben den resultierenden Entscheidungsbaum anzeigen und ggf. weiter manipulieren. De Jong beschreibt in seinem Artikel [dj06, Seite 532] Probleme, die es beim Umgang der Lernenden mit Simulationen gibt. Dazu gehören unter Anderem, dass es Probleme bei der Wahl der Eingabevariablen und Hypothesenformulierung gibt oder aber Probleme bei dem Ziehen von Schlussfolgerungen. Um diese Probleme zu reduzieren, fasst [Rey09, Seite 106] folgende Maßnahmen zusammen: Übungsaufgaben implementieren Erläuterungen und Hintergrundinformationen hinzufügen Überwachungs- und Planungswerkzeuge bereitstellen Instruktionshinweise oder ähnliche Unterstützungsmaßnahmen anbieten Lernumgebung strukturieren (Komplexe) Computersimulationen allmählich aufbauen 3.3. Vorgehensmodelle Im Folgenden werden bereits vorhandene Vorgehensmodelle beschrieben und bewertet. Im Anschluss wird das Vorgehensmodell beschrieben, nach welchem in dieser Arbeit vorgegangen wird Vorgehensmodell nach Hambach und Urban Im Rahmen des Projektes E-Learning Qualität (ELQ) ist ein Vorgehensmodell zur systematischen Entwicklung von elearning-angeboten entwickelt worden. Dieses wird in [HU06] vorgestellt. Diese Vorgehnsmodell besteht aus sechs Phasen, die in Abbildung 3.2 zu sehen sind. Nina Rothenberg Masterthesis 25

34 3. elearning-software Abbildung 3.2.: Vorgehensmodell zur systematischen Entwicklung von elearning-angeboten In der Analyse-Phase werden der Bildungsbedarf, die Zielgruppe und der Kontext analysiert. Der Bildungsbedarf wird in einer Bedarfsbeschreibung dokumentiert. Der Kontext beinhaltet organisatorische und institutionelle Rahmenbedingungen, Interessenhalter sowie externe Einflüsse. Auf Basis dieser Ergebnisse werden dann in der Phase des Rahmenkonzepts die Ziele festgelegt, der didaktische Ansatz und das Rahmenkonzept entwickelt. Das Ziel des Schrittes Ziele festlegen ist die Festlegung was das E-Learning-Angebot leisten muss, um den Bildungsbedarf zu befriedigen und um weiteren Rahmenbedingungen zu genügen. [HU06, Seite 33]. Dazu werden Bildungsziele, allgemeine Ziele und Projektmanagementziele definiert. Um den didaktischen Ansatz zu ermitteln, werden verschiedene mögliche Ansätze verglichen und bewertet. Der geeignetste Ansatz wird dann ausgewählt. Auf Grundlage der Ziele und des didaktischen Ansatzes wird das Rahmenkonzept erarbeitet. Das Detailkonzept konkretisiert das Rahmenkonzept. [HU06, Seite 56] Hierzu werden Detailkonzepte zur Lehr-/Lernzielen, -inhalten, -formen und -material erstellt. Diese Detailkonzepte beenden die Konzeption und geben detaillierte Vorgaben zur Umsetzung. [HU06, Seite 56] In der Umsetzung werden Lehr- und Lernmedien erstellt, die Materialien zusammengestellt und zu einem elearning-angebot zusammengefasst. [HU06, Seite 81] Danach folgen Einführung und Durchführung. In der Durchführung wird das elearning-angebot geprüft und Rückmeldungen von Anwendern ausgewertet um Verbesserungspotentiale zu ermitteln. 26 Masterthesis Nina Rothenberg

35 3. elearning-software Vorgehensmodell nach Wendt Wendt benutzt in [Wen03] sein eigenes Vorgehensmodell zur Erstellung eines elearning-angebots. Er beschreibt dort viele Einzelschritte und verdeutlicht diese an einem Beispielprojekt. Diese Einzelschritte kann man grob in folgende Prozessschritte zusammenfassen: Zielgruppenanalyse Sichtung, Auswahl und Strukturierung der Lerninhalte Formulierung von Lernzielen Entwicklung einer Lehrstrategie Aufbau der Programmstruktur Visuelles Konzept ausarbeiten Die Zielgruppenanalyse ist der erste Schritt bei der Planung eines elearning-systems. Es entsteht ein Bedarfsprofil [Wen03, Seite 93], indem auch die technischen Voraussetzungen berücksichtigt werden. Anschließend werden die Lerninhalte lernthemenorientiert gesichtet, ausgewählt und strukturiert und auf ihrer Grundlage werden Lernziele formuliert. Mit Hilfe der gesammelten Informationen wird nun die Lehrstrategie entwickelt. Mittels Lernzielen und Lehrstrategie werden Aufgaben und Elemente zur Lernerfolgskontrolle konstruiert. [Wen03, Seite 93] Anschließend wird die Programmstruktur aufgebaut, die unter anderem das Lernmanagement und den Medieneinsatz (also den Programmtyp) beinhaltet. Abschließend wird das visuelle Konzept ausgearbeitet und die Umsetzung kann beginnen. In seinem Beispiel zeigt sich Wendt pragmatisch und macht deutlich, dass je nach elearning- Modul entsprechende Analyse-Schritte gewählt werden müssen. Das von ihm verwendete Beispiel ist ein Plan- und Lernspiel, zudem auch ein Spielplan erstellt. Das ist bei anderen Programmtypen selbstverständlich nicht notwendig Bewertung der Vorgehensmodelle In dieser Arbeit wird ein elearning-modul entwickelt, welches nicht an zentraler Stelle zum erlernen der Inhalte steht. Es dient lediglich zur Unterstützung des Lernprozesses an einer spezifischen Stelle. Das elearning-modul wird nicht in einer konkreten Vorlesung verwendet und an deren konkreten Unterichtsstoff angepasst bzw. in diese integriert. Sie ist ein eigenständiges Modul, welches von jedem Anwender benutzt werden kann. Da das Thema und die Inhalte Nina Rothenberg Masterthesis 27

36 3. elearning-software fest sind und keinen Spielraum für Interpretationen liefern, ist es auch nicht nötig die Inhalte anzupassen. Diesen Rahmenbedingungen zu folge, ist das Modell nach Hambach und Urban für die Zwecke dieser Arbeit überdimensioniert. Es eignet sich vor allem dafür, eine komplette Vorlesung als elearning-angebot zu gestalten. Für ein einzelnes Modul enthält es viele überflüssige Schritte. Das Modell nach Wendt eignet sich im Vergleich besser. Dennoch ist es noch immer nicht ideal. Denn auch hier ist der Schritt zur Entwicklung der Lernstrategie ein wenig zu intensiv. Mit einer Mind-Map schlägt Wendt in [Wen03, Seite 101] eine interessante Vorgehensweise zur Identifizierung der Lerninhalte vor, die im späteren Vorgehen wieder aufgegriffen wird Verwendetes Vorgehensmodell in dieser Arbeit Das Vorgehen in dieser Arbeit richtet sich nach der Objektorientierten Analyse (OOA) und dem Objektorientierten Design (OOD). Diese werden um die speziellen Anforderungen für eine elearning-komponente, auf Grundlage der vorgestellten Vorgehensmodelle, erweitert. Die OOA umfasst alle Vorgehensschritte die der Ermittlung, Klärung und Beschreibung von Anforderungen dienen. [Oes04, Seite 351] Das OOD beschreibt, wie diese Anforderungen erfüllt werden. [Oes04, Seite 353] Die einzelnen Schritte sind in Abbildung 3.3 visualisiert. Auf die einzelnen Schritte des Modells wird nicht weiter eingegangen. Detaillierte Beschreibungen sind z. B. in [Oes04, Seite 89 ff.] zu finden. Abbildung 3.3.: Schritte der OOA und des OOD Als wichtige Schritte für elearning-komponenten werden folgende Prozessschritte in Anlehnung an die Vorgehensmodelle von Wendt und Hambach und Urban aufgenommen: 28 Masterthesis Nina Rothenberg

37 3. elearning-software Zielgruppenanalyse technische Rahmenbedingungen Lerninhalte identifizieren Hierbei wird der Schwerpunkt vor allem auf die Zielgruppenanalyse gelegt. In der OOA ist von der Identifizierung der Interessenhalter die Rede. In diesem Fall ist dieser Schritt zu Wage, denn die wichtigste Interessengruppe ist die Zielgruppe, die aus diesem Grund besondere Gewichtung erhält und als extra Schritt aufgenommen wird. Auch für die technischen Rahmenbedingungen wird ein extra Schritt aufgenommen. Die Zielarchitektur ist immer zu berücksichtigen. Ein expliziter Vorgehensschritt scheint sinnvoll und wird dem Vorgehensmodell aus diesem Grund hinzugefügt. Statt der einfachen Identifizierung und Beschreibung von Anwendungsfällen, wie es in der OOA vorgeschlagen wird, werden zuerst Lerninhalte identifiziert, auf deren Grundlage dann die Anwendungsfälle und Anforderungen ermittelt werden. In den beiden vorgestellten Modellen kommen, aus Sicht des Autors, zu wenige nichtfunktionale Anforderungen vor. Diese sind gerade für die Ergonomie und die Wartung einer Anwendung wichtig. Außerdem sollte gerade bei elearning-komponenten umso größerer Wert auf die Anwenderfreundlichkeit und Barrierefreiheit gelegt werden. Abbildung 3.4.: Erweitertes Vorgehensmodell Nina Rothenberg Masterthesis 29

38 3. elearning-software Das um die vorher beschriebenen zusätzlichen Schritte erweiterte Vorgehensmodell ist in Abbildung 3.4 zu sehen. Zusätzlich wurde der Schritt Verteilungsmodell definieren entfernt, da dieser nur für verteilte Systeme interessant ist. Die folgenden Kapitel gliedern sich in die einzelnen Prozessschritte. 30 Masterthesis Nina Rothenberg

39 4. Software-Analyse 4. Software-Analyse In der Analyse-Phase werden die Anforderungen gesammelt und beschrieben. Die Anforderungen definieren den Soll-Zustand der Anwendung und legen somit fest, was umgesetzt werden soll Zielsetzung Ziel ist es aus Datensätzen Entscheidungsbäume zu generieren und dem Anwender hierzu detailliert zu erklären, wie die Anwendung den Entscheidungsbaum aus dem Datensatz ermittelt hat (Vgl. Tabelle 4.1). Somit soll es dem Anwender möglich sein die Entscheidungsbaumalgorithmen an einem praktischen Beispiel nachzuvollziehen und auch Sonderfälle erklärt zu bekommen. Bildungsziel 1 Beschreibung Kriterien zur Zielerreichung BZ-1 Mit der Anwendung ist der Lernende in der Lage die Entscheidungsbaumgenerierung nachzuvollziehen. Nach der Generierung eines Entscheidungsbaum können alle Rechenschritte nachvollzogen werden. Tabelle 4.1.: Bildungsziel 1 Aktuell ist so etwas nur über Umwege möglich, denn die aktuell verfügbare Software 11 bietet den Anwendern zwar die Generierung von Entscheidungsbäumen an, aber eine Erklärungskomponente fehlt diesen Anwendungen. Somit muss ein Anwender die Algorithmen selbst durchführen und somit einen Entscheidungsbaum ermitteln und kann diesen mit dem generierten Baum vergleichen. Allerdings ist auch die Gleichheit der Bäume keine Garantie für ihn den Algorithmus richtig angewandt zu haben. Aus diesem Grund kann bei der Verwendung von Software zur Entscheidungsbaumgenerierung nur bedingt von einer Unterstützung beim Lernen und Verstehen der Algorithmen gesprochen werden. Ein begleitendes Skript und eine detaillierte Beispielrechnung können den Anwender unterstützen. Diese statischen Beispielrechnungen können nur sehr schwer alle Eventualitäten abdecken. Ein elearning-modul mit Erklärungskomponente bietet den Vorteil, dass der Anwender flexibel 11 Vgl. Kapitel 2.5 Software zur Entscheidungsbaumgenerierung ab Seite 19. Nina Rothenberg Masterthesis 31

40 4. Software-Analyse ist und auch frei erfundene Datensätze testen kann. Die Flexibilität ist das zweite Kernziel, welches in Tabelle 4.2 zusammengefasst ist. Bildungsziel 2 Beschreibung Kriterien zur Zielerreichung Lernende sollen in der Lage sein eigene Datensätze zu importieren um evtl. nicht beschriebene Sonderfälle nachvollziehen zu können oder aber eigene Übungsaufgaben zu kontrollieren. Ein Datensatz kann importiert werden und als Grundlage für eine Entscheidungsbaumgenerierung verwendet werden. Tabelle 4.2.: Bildungsziel Zielgruppe analysieren Die Zielgruppe des elearning-moduls sind Studenten, die sich innerhalb ihres Studiums mit Entscheidungsbaumgenerierung beschäftigen. Dies ist z. B. im Masterstudiengang Wirtschaftsinformatik der Hochschule Wismar der Fall. Die Zielgruppe des elearning-moduls sind die Studenten, denen schriftliche Erklärungen zum Thema Entscheidungsbaumgenerierung nicht genug sind. Selbstverständlich kann das Modul auch von Nicht-Studenten verwendet werden, wenn diese an dem Thema interessiert sind. Die Voraussetzungen gleichen denen der Studenten. Aus diesem Grund wird auch nur ein einziges Zielgruppenprofil für die Zielgruppe Studenten angelegt (Vgl. Tabelle 4.3). Das Thema Entscheidungsbaumgenerierung ist ein Spezialthema aus dem Fachbereich der Wirtschaftsinformatik. Es kommt in der Regel in Spezialisierungsstudiengängen vor, wie einem weiterführenden Masterstudiengang. Die Studenten haben also in der Regel schon ein Studium abgeschlossen oder aber zumindest ein Grundstudium hinter sich. Studieren kann man bis ins hohe Alter. Es wird allerdings davon ausgegangen, dass der Großteil der Studenten unter 35 Jahre alt ist. Studenten haben in der Regel viel Erfahrungen mit der Nutzung von Computern und entsprechenden Anwendungen. Gerade Studenten, die sich mit dem Thema Entscheidungsbaumgenerierung beschäftigen, tun dies meistens in Vorlesungen zum Thema Data Mining. In Studien- 32 Masterthesis Nina Rothenberg

41 4. Software-Analyse Zielgruppe Studenten Altersgruppe (Schwerpunkt bei 25-35) Erwartungen, Interessen Motivationen zur Teilnahme thematisches Vorwissen und fachliche Voraussetzungen Medienkompetenz bisherige Lernerfahrungen und bevorzugte Lernstile individueller Kontext mit Bezug zum zu entwickelnden elearning-angebot Algorithmen an Beispielen verdeutlichen. Dabei alle nötigen Informationen angezeigt bekommen. Persönliches Interesse am Verstehen der Entscheidungsbaumalgorithmen. Aber auch Notwendigkeit um z. B. eine Klausur zu bestehen. Hohe Eigenmotivation entweder aus explizitem Interesse am Thema oder dadurch, dass das Studium gut abgeschlossen wird. Theoretisches Grundwissen zur Entscheidungsbaumgenerierung durch eine entsprechende Hochschulvorlesung. hohe Medienkompetenz Viel Lernerfahrung durch das Studium. Vor allem selbstbestimmtes Lernen und exploratives Lernen. Die Anwendung sollte kostenfrei sein, da die Studenten für eine derartige Lernanwendung, die so sehr auf ein bestimmtes Thema spezialisiert sind, kein Geld ausgeben wollen. Tabelle 4.3.: Zielgruppenanalyse der Zielgruppe Studenten gängen in denen dieses Thema behandelt wird, kann man davon ausgehen, dass ihnen eine hohe Medienkompetenz zuzusprechen ist Anwendungsfall Die Anwendungsfälle werden gemäß der Ziele identifiziert. Hierbei werden vier Anwendungsfälle identifiziert, die im Anwendungsfalldiagramm in Abbildung 4.1 inklusive ihrer Beziehungen zueinander dargestellt sind. Für jeden Anwendungsfall müssen als erstes Daten importiert werden. Diese können dann, wenn gewünscht, manipuliert werden. Nach diesen Schritten kann ein Entscheidungsbaum generiert Nina Rothenberg Masterthesis 33

42 4. Software-Analyse Abbildung 4.1.: Anwendungsfalldiagramm werden, welches der Hauptanwendungsfall des elearning-moduls ist. Im Anschluss kann das Ergebnis exportiert werden Lerninhalte Die Lerninhalte gehen detaillierter auf die Ziele der Anwendung ein. Sie fassen zusammen, was genau in der Anwendung geboten werden soll. Für die Identifizierung der Inhalte schlägt [Wen03, Seite 101] den Einsatz von Mindmaps vor. Dieser Ansatz wird hier aufgenommen, weil er die Lerninhalte auf übersichtliche Art und Weise darstellt. In Abbildung 4.2 ist die Mindmap der Inhalte für die fachlichen Inhalte des elearning- Moduls zu sehen. Abbildung 4.2.: Inhalte des elearning-moduls 34 Masterthesis Nina Rothenberg

43 4. Software-Analyse Im Folgenden werden aus diesen Inhalten die Anforderungen identifiziert und zusammengefasst. Eine komplette Liste der Anforderungen ist in Anhang B ab Seite 75 zu finden Anforderungen Die Anforderungen teilen sich in funktionale und nicht-funktionale Anforderungen auf. Einige Anforderungen sind abhängig von anderen Anforderungen. Das bedeutet, dass diese nur dann umgesetzt werden, wenn eine oder mehrere andere Anforderungen umgesetzt sind. Die Priorität einer solchen Anforderung kommt erst dann zum tragen, wenn die abhängigen Anforderungen bereits umgesetzt worden sind Anforderungen zur Entscheidungsbaumgenerierung Das elearning-modul soll aus einer gegebenen Datenmenge einen Entscheidungsbaum generieren und die dazu notwendigen Schritte in einer Erklärungskomponente beschreiben. Die funktionalen Anforderungen werden grob nach Prozessschritten 12 unterteilt. Datenvorbereitung Damit das elearning-modul die Studenten wirklich unterstützen kann, muss es dem Anwender möglich sein, eigene Beispiele einzulesen. Dadurch ist er in der Lage bestimmt Fälle nachvollziehen zu können, die ihm nicht klar sind. können Datensätze in Form von Dateien manuell importiert werden. Um dies für den Anwender so angenehm wie möglich zu gestalten, kann er verschiedene Dateiformate nutzen. Der Vorteil hier ergibt sich durch die bessere Austauschbarkeit von Datensätzen unter den Studenten und der Möglichkeit, dass auch Dozenten Datensätze zur Verfügung stellen können. Die Benutzerfreundlichkeit wird durch die Möglichkeit manuelle Datenreihen einzugeben bzw. erstellte oder importierten Daten zu manipulieren weiter erhöht. Diese Anforderung ist allerdings mit einer niedrigeren Priorität zu versehen, da man die Daten auch über weitere Dateien einlesen kann. Viel höher ist der Aufwand für einen Anwender nicht, wenn er die Datei selbst manipuliert und diese erneut einliest. Wenn es möglich ist Datensätze zu manipulieren bzw. manuell einzugeben, ist eine Exportfunktion sinnvoll. So kann der Anwender interessante Datensätze speichern und sogar weitergeben. 12 Vgl. Kapitel 2.2 auf Seite 7. Nina Rothenberg Masterthesis 35

44 4. Software-Analyse Ein Datensatz besteht nicht nur aus den Datenreihen sondern auch aus Attributen. Bei den Attributen wird dem Anwender die Möglichkeit gegeben sie an- und abzuwählen. Angewählte Attribute werden bei der Entscheidungsbaumgenerierung berücksichtigt. Auch das Zielattribut, zu dem ein Entscheidungsbaum generiert werden soll, muss ausgewählt werden. Nummerische Attribute können manuell gruppiert werden. Hierzu werden verschiedene Gruppen, bestehend aus einem oder mehreren Intervallen, erstellt und, wenn gewünscht, mit einem Namen versehen. Auch nominale Attribute können gruppiert werden. Hierzu werden eine oder mehrere Ausprägungen zu einer Gruppe zusammengefasst. Entscheidungsbaumgenerierung Die Anwendung soll an allen sinnvollen Stellen parametrisierbar sein. Ein Entscheidungsbaum soll nicht anhand eines festen Musters generiert werden, sondern so, wie es der Anwender wünscht. Hierbei sollte er nicht zwischen einigen wenigen Algorithmen entscheiden können, sondern jedes mögliche Kriterium selbst wählen können. Ein Anwender kann folgende Parameter selbst beeinflussen: Split-Kriterium Stop-Kriterium Pruning-Methode Umgang mit fehlenden Werten Anzahl der Gruppen bei der automatischen Gruppierung von Attributen Natürlich muss nach einer Auswahl auch angezeigt werden, ob es sich bei der gewählten Konfiguration um einen bestimmten Algorithmus handelt. Zusätzlich sollte die Möglichkeit geboten werden eine vorkonfigurierte Einstellungsmenge als Algorithmus zu speichern. Schließlich möchte ein Anwender vielleicht einen bestimmten Algorithmus näher verstehen. Dann sollte man ihm die Parametrisierung abnehmen, indem er einfach den Algorithmus auswählt und dann gegebenenfalls variable Werte verändert. Die Auswahl des Anwenders muss zu jeder Zeit sichtbar sein, damit es nicht zu Unklarheiten kommt. Falls die Einstellungen verändert werden und ein neuer Baum generiert wird, ist es sinnvoll, mehrere Ergebnisse gegenüberzustellen. Diese Anforderung ist weniger hoch priorisiert, weil man denselben Effekt haben kann, wenn man zwei Ergebnisse exportiert. Die Exportergebnisse kann der Anwender dann in Ruhe vergleichen. 36 Masterthesis Nina Rothenberg

45 4. Software-Analyse Eine nützliche Funktion ist ein Debug-Modus, indem der Anwender die Generierung Schritt für Schritt nachvollziehen kann und manuell zum nächsten Schritt wechseln kann. Allerdings kann auch dieses durch einen Export im Nachhinein erreicht werden, sodass eine derart aufwändige Anforderung mit der niedrigsten Priorität zu versehen ist. Wenn die Entscheidungsbaumgenerierung beendet ist, wird der Entscheidungsbaum grafisch angezeigt. Hierzu wird die bekannte Baumdarstellung gewählt. Ein Beispiel für eine solche Anzeige ist in Abbildung 4.3 zu sehen. Abbildung 4.3.: Entscheidungsbaum Die einzelnen Elemente werden wie folgt beschriftet: Name des aktuell betrachteten Attributs bei inneren Knoten, der betrachtete Wert bzw. des aktuellen Attributs bei Kanten und den Namen und ggf. die Wahrscheinlichkeit einer Ausprägung des Zielattributs an einem Blatt. Erklärungskomponente Die Erklärungen sollen nahe dem Element angezeigt werden, zu welchem sie gehört. Hier ist es wichtig, nicht alle Informationen auf einmal anzuzeigen sondern dem Anwender die Möglichkeit zu geben, sich gezielt die Informationen anzeigen zu lassen, die ihn interessieren. Die anzuzeigenden Informationen sind folgende: inneren Knoten An einem inneren Knoten wird das ausgewählte Attribut und der Grund, warum es ausgewählt worden ist, angezeigt. Zusätzlich sind die anderen Attribute anzuzeigen und der Grund, warum diese nicht ausgewählt worden sind. Falls eine automatische Gruppierung vorgenommen worden ist, muss auch diese hier erläutert werden. Nina Rothenberg Masterthesis 37

46 4. Software-Analyse Kante An einer Kante werden die Werte 13 angezeigt, mit denen dieser Kante gefolgt wird, sowie die Gründe zur Auswahl der Werte. Blatt An einem Blatt wird der Wert des Zielattributs und dessen Wahrscheinlichkeit an dieser Stelle anzeigt. Auch die restlichen möglichen Zielattribut-Werte werden mit Wahrscheinlichkeit angezeigt. Zusätzlich werden Informationen zum Pruning angezeigt, falls das Blatt durch eine Pruning-Methode entstanden ist. Für die Erklärungskomponente ist es aber auch wichtig, einen Export der Informationen ausgeben zu können, damit sich die Studierenden die Informationen gebündelt anschauen können. In einem Modul experimentieren zu können ist praktisch für den Anwender. Es ersetzt aber keinen Ausdruck einer detaillierten Vorgehensbeschreibung, welche für Übungen sehr hilfreich ist. Die Ausgabe ist so detailliert wie möglich zu gestalten, wobei die Übersichtlichkeit nicht zu kurz kommen darf. Ein Anwender kann die Ausgabe immer noch manuell kürzen, sich weitere Informationen selbst zu erarbeiten ist deutlich aufwändiger. Sehr wichtig ist auch, dass der Anwender immer die Eingabeparameter vor Augen hat. Diese müssen zu jedem Zeitpunkt anzeigbar sein Nichtfunktionale Anforderungen Neben den funktionalen Anforderungen gibt es auch nichtfunktionale Anforderungen. Oestereich unterteilt diese nichtfunktionale Anforderungen in [Oes04, Seite 233] in folgende Gruppen: Benutzbarkeit, Performance, Zuverlässigkeit, Wartbarkeit, Administrierbarkeit und Rahmenbedingungen. Diese Unterteilung wird hier übernommen, um die nichtfunktionalen Anforderungen thematisch zu gruppieren. 13 Bei nummerischen Werten in Form von Intervallen. 38 Masterthesis Nina Rothenberg

47 4. Software-Analyse Benutzbarkeit Die Benutzbarkeit ist gerade bei elearning-modulen sehr wichtig. Die funktionalste Anwendung ist sinnlos, wenn sie nicht ohne langes Studium der Beschreibung benutzt werden kann. In einem solchen Fall verlieren die Anwender schnell die Lust und suchen sich eine benutzerfreundlichere Anwendung. In einem elearning-modul sollten Abbildungen jeglicher Art (auch Graphen u.ä.) immer einen Alternativ-Text haben, der dann angezeigt wird, wenn das Bild, aus welchem Grund auch immer, nicht geladen werden kann. [FMC02, Seite 52 ff.] Bei Farben muss auf Anforderungen von Farbenblinden und auch auf Rot-Grün-Blindheit geachtet werden. Dies ist auch für den Ausdruck auf einem schwarz-weiß-drucker wichtig. Auch auf verstellbare Schriftgröße soll Wert gelegt werden. Allerdings ist vollständige Barrierefreiheit für solch eine fachliche Anwendung nur schwer realisierbar. Die Simulation des Entscheidungsbaumes ist das zentrale Element. Diesen kann man nur sehr schwer auf eine verständliche Art und Weise als Alternativtext anzeigen. Es könnte höchstens über Sprachausgaben erklärt werden. Allerdings eignen sich für blinde Anwender eher andere didaktische Ansätze als ein solches elearning-modul. Aus diesem Grund sollte der Aufwand für eine Sprachausgabe eingespart werden und ein anderer didaktischer Ansatz gewählt werden. Performance Die Performance ist die Leistung und Geschwindigkeit eines Systems oder Systemteils zu einem bestimmten Zeitpunkt bei der Erfüllung einer definierten Aufgabe [Wun05, Seite 484]. Die Anwendung soll angemessen performant sein. Im Detail bedeutet dies, dass die Anwendung innerhalb weniger Sekunden die Aktivitäten durchführt. Aktivitäten, die länger als eine Sekunde dauern, sollen zudem durch eine Ladeanzeige angezeigt werden, damit der Anwender ein Feedback auf seine Eingabe erhält. Zuverlässigkeit Eine Anwendung ist dann zuverlässig, wenn sie eine geringe Ausfallrate hat. [McC05, Seite 477] Bei einem unerwarteten Fehler, soll die Anwendung diesen in einer Log-Dateien loggen, um ihn später von Entwicklern beheben zu können. Gleichzeitig soll dem Anwender eine möglichst sprechende Fehlermeldung angezeigt werden. Der Anwender soll danach die Möglichkeit haben Nina Rothenberg Masterthesis 39

48 4. Software-Analyse die Anwendung weiter zu verwenden oder zumindest kontrolliert zu beenden. Sie soll nicht unkontrolliert abstürzen. Wartbarkeit Die Anwendung soll an allen nötigen Stellen unkompliziert erweiterbar sein. Es soll die Möglichkeit vorgesehen werden, dass ein Anwender alternative Komponenten, die er selbst oder ein Dritter implementiert hat, benutzen kann. Folgende Komponenten der Anwendung sollen hierbei erweiterbar sein: Dateiformat für den Import Dateiformat für den Export von Datensätzen Algorithmus Split-Kriterium Stop-Kriterium Pruning-Methode Methoden zur Bestimmung von Test- und Trainingsmengen Dateiformat für den Export der Erklärungen Unkompliziert erweiterbar heißt in diesem Fall, dass ein Programmierer ohne viel Aufwand weitere Elemente implementieren und einbinden kann. Administrierbarkeit Das elearning-modul soll einfach installierbar sein. Weitere Plugin-Ordner sollen einfach hinzugefügt werden. Rahmenbedingungen Die Anwendung soll Plattform unabhängig sein. Gerade bei Studenten im Bereich der Informatik sind verschiedene Betriebssysteme verbreitet. Die Anwendung soll daher so implementiert werden, dass sie auf den verschiedenen Betriebssystemen (z. B. Windows, Linux und Solaris) lauffähig ist. 40 Masterthesis Nina Rothenberg

49 5. Software-Entwurf 5. Software-Entwurf Um die im vorherigen Kapitel beschriebenen Anforderungen umzusetzen, werden an dieser Stelle Konzepte zur Umsetzung vorgestellt. Hierbei wird der Schwerpunkt auf die zentralen Konzepte zur Visualisierung und zur Erweiterung gelegt Visualisierung Die Visualisierung der Elemente spielt eine tragende Rolle bei der Entwicklung des elearning- Moduls. Wenn die Elemente übersichtlich und verständlich angezeigt werden, kann der Anwender die Informationen aufnehmen. Bei der Visualisierung ist vor allem darauf zu achten, dass die Herkunft verschiedener Informationen nachvollziehbar ist Entscheidungsbaum Ein Entscheidungsbaum wird so platzsparend wie möglich dargestellt. Kaufmann und Wagner beschreiben in [KW09, Seite 47] fünf typische Anforderungen für die ideale Darstellung von Bäumen mit Wurzelelemente: 1. Planarität: Keine Überschneidungen von Kanten. 2. Netzartig: Knoten haben ganzzahlige Koordinaten. 3. Gradlinigkeit: Jede Kante ist ein geradliniges Segment, wobei in mehrlinigen Graphen jede Kante eine mehrkantige Kette ist. 4. (Strikt) aufsteigend: Ein Kind wird (strikt) unter seinen Eltern angezeigt. 5. Starke Ordnungserhaltung: Die Kindelemente eines Knotens stehen im gleichmäßigem Abstand zueinander. Zur Darstellung wird ein Algorithmus verwendet, der diese Anforderungen erfüllt. Ein solcher Algorithmus ist z. B. in [Ski08, Seite 518] beschrieben. In Anlehnung an diese Beschreibung, wurde der Algorithmus in Algorithmus 5.1 formalisiert. Nina Rothenberg Masterthesis 41

50 5. Software-Entwurf Algorithmus 5.1 Darstellung eines Baumes Input: startarea 0, y 0, verticaldistance > 0, nodewidth > 0, area.width tree.width function createtree(tree, area) tree.root.position ( area.width 2 nodew idth 2, y) y y + verticaldistance for all subtree : tree.childnodes do createtree(subtree, area[startarea, startarea + subtree.width]) startarea startarea + subtree.width end for y y - verticaldistance end function Hierbei ist die Breite des Baumes interessant. Diese lässt sich berechnen durch die Addition der Breite aller Teilbäume. Die Breite eines Blattes ist die Standardbreite eines Knotens 14 addiert mit dem horizontalen Abstand 15. Verkürzt kann man die Breite also durch folgende Formel berechnen: Breite des Baums =Anzahl aller Blätter des Baumes (horizontaler Abstand + Breite eines Knotens) Skiena kritisiert zu recht, dass hierdurch viele schmale Bereiche entstehen können. Er schlägt vor, dass Bereiche von breiteren Knoten, in die benachbarten ragen können, solange der jeweils benachbarte Teilbaum eine geringere Tiefe haben, als der überschneidende Bereich. Ein Beispiel für die Anzeige eines Entscheidungsbaums ist in Abbildung 4.3 zu sehen. Wie in Anforderung EBG-12 bis EBG-14 gefordert, sind die Knoten und Kanten entsprechend beschriftet Informationen aus der Entscheidungsbaumgenerierung Zu allen Kanten und Knoten des Entscheidungsbaums sollen gemäß Anforderungen EK-2 bis EK-2 die entsprechenden Informationen angezeigt werden können. Die Anforderungen fordern zusätzlich, dass der Anwender die Möglichkeit hat, die Informationen beliebig ein- und auszublenden. Hierdurch ist implizit gefordert, dass die Anzeige der Informationen über Zeige alle 14 Diese ergibt sich aus der breite des Anzeigeelementes. 15 Der horizontale Abstand berechnet sich aus der Summe des rechten und linken Abstands, wobei immer rechter Abstand = linker Abstand gilt. 42 Masterthesis Nina Rothenberg

51 5. Software-Entwurf Informationen und Zeige keine Informationen hinausgeht. Es reicht allerdings auch nicht, die Information des aktuell ausgewählten Baumelementes anzuzeigen. Aus diesem Grund, sollte es mehrere Informationsblöcke geben. Für jedes Element kann ein Informationsblock einzeln einund ausgeblendet werden. Abbildung 5.1 skizziert beispielhaft einen solchen Informationsblock je nach Baumelement. Abbildung 5.1.: Informationsblock Ein Informationsblock kann direkt am dazugehörigen Baumelement angezeigt werden oder aber an zentraler Stelle. Für die direkte Anzeige am Baumelement spricht, dass die Information dort angezeigt wird, wo sie hingehört. Andererseits machen diese Informationsblöcke die Baumanzeige unübersichtlich, denn entweder überlappen sie andere Elemente oder die anderen Elemente müssen so verschoben werden, dass es keine Überlappungen gibt. Eine zentrale Anzeige ist aufgeräumter. Diese muss aber das zum aktuell markierten Informationsblock gehörende Baumelement optisch hervorheben, damit unmissverständlich klar wird, wo diese Information zugehört. Die zu den weiteren angezeigten Informationsblöcken gehörenden Baumelemente müssen ebenfalls hervorgehoben werden, allerdings nicht so stark wie das Aktive. Für die Umsetzung wird aus Gründen der Übersichtlichkeit die zentrale Anzeige der Erklärungen gewählt. Wenn mehrere Informationsblöcke angezeigt werden können, ist es wichtig, dass diese auch positioniert werden können. Eine Mindestanforderung ist hierbei das Maximieren eines Nina Rothenberg Masterthesis 43

52 5. Software-Entwurf einzelnen Blocks und die Möglichkeit mehrere Informationsblöcke nebeneinander anzeigen zu können Benutzungsoberfläche Die Funktionalitäten der Benutzungsoberfläche werden hier, in der Reihenfolge in der sie im Anwendungsfall aufgerufen werden, näher beschreiben. Hierbei steht die Visualisierung der Funktionalität im Vordergrund. Der Anwender kann Daten über einen Dateiimport importieren (vgl. Anforderung DV-1). Danach werden die Instanzen und die Attribute angezeigt und können vom Anwender angepasst werden. Ein Attribut kann deaktiviert und aktiviert werden (vgl. Anforderung DV-3). Wenn es deaktiviert ist, wird es bei der Generierung ignoriert. Attribute können manuell gruppiert werden(vgl. Anforderung DV-9). Hierzu können Gruppen erstellt und gelöscht 16 werden und Werte den Gruppen zugeordnet werden können. Alle wichtigen Informationen für Attribute (Name, mögliche Werte) sowie Funktionalitäten (Aktivierung, Art der Gruppierung, Gruppierung) sollen, wenn möglich, direkt sichtbar bzw. erreichbar sein. Alle Elemente direkt sichtbar zu machen nimmt allerdings viel Platz weg. Aus diesem Grund sollte z. B. die Gruppierung der Attribute in ein separates Fenster ausgelagert werden. Zu diesem muss man allerdings intuitiv gelangen können. Man kann hierzu ein Symbol anzeigen, welches zu dem entsprechenden Fenster führt. Nach vollständiger Datenvorbereitung wählt der Anwender nun die Einstellungen für die Konfiguration der Entscheidungsbaumgenerierung aus und startet diese. Die Parameterauswahl ist in Kapitel näher erläutert. Nach der Generierung können die Erklärungen zu einzelnen Baumelementen angezeigt und exportiert werden. Damit der Anwender zu jeder Zeit alles im Blick hat (vgl. Anforderung EBG-10) werden alle Oberflächenbereiche in einem Fenster angezeigt. Ein Layout für eine Anordnung der einzelnen Bereiche ist in Abbildung 5.2 zu sehen. Die einzelnen Bereiche der Oberfläche können in der Größe verändert werden oder auch ganz ausgeblendet werden. Dies ist gerade bei einer geringen Bildschirmauflösung wichtig. 16 Die Löschfunktion ist dann wichtig, wenn man bereits definierte Gruppen löschen möchte, um die Attribute einer neuen Gruppe zuzuordnen. 44 Masterthesis Nina Rothenberg

53 5. Software-Entwurf Abbildung 5.2.: Layout der Benutzungsoberfläche Exportierbarer Bericht Die Anwendung ermöglicht es dem Anwender Berichte zu exportieren (vgl. Anforderung EK-5.). Diese Berichte enthalten, neben den Eingabeparametern und der Abbildung des Entscheidungsbaums, die Erklärungen zur Generierung. Der initiale Bericht ist grob in diese drei Teile gegliedert (vgl. Abbildung 5.3). Abbildung 5.3.: Layout eines Berichts Nina Rothenberg Masterthesis 45

54 5. Software-Entwurf Der Bericht zeigt grundsätzlich erst einmal alle Informationen an. Allerdings wird die Anwendung so implementiert, dass ein späteres Hinzufügen einer Komponentenauswahl ohne viel Aufwand hinzugefügt werden kann (vgl. Anforderung EK-6.) Parametereingabe Der Bereich zur Parametereingabe werden alle dem Programm bekannten Einstellungsoptionen eines Parameters angezeigt. Die Einstellungen sind in Kapitel aufgelistet. Zu jeder Einstellung können beliebig viele Optionen implementiert werden. Beim Laden der Anwendung werden alle verfügbaren Einstellungen geladen und zur Auswahl angeboten. Da durch die geforderte Erweiterbarkeit erst beim Programmstart bekannt ist, wie viele Optionen es pro Einstellung gibt, ist es sinnvoll die verschiedenen Optionen in einem Drop-Down-Feld zur Auswahl zu stellen. Alternativ ist eine Darstellung als Radio-Buttons denkbar, dies bietet sich allerdings eher in dem Fall an, dass die Anzahl der Optionen bekannt ist. Bei vielen Optionen werden die Radio-Buttons ansonsten auf mehrere Zeilen verteilt und die Auswahl wird unübersichtlich Algorithmen Algorithmen sind bereits implementiert und stehen in verschiedenen Bibliotheken zur Verfügung. Ein Nachprogrammieren vorhandener Algorithmen sollte vermieden werden, da spezialisierte Bibliotheken die Algorithmen performanceoptimiert umgesetzt haben. Allerdings kann man diese im nachhinein leider sehr schlecht um die Erklärungen erweitern. Natürlich kann man mit Hilfe eines Proxys die einzelnen Methoden kapseln und entsprechende Ausgaben zurückgeben, allerdings ist dieses Vorgehen sehr unflexibel und garantiert nicht, dass alle wichtigen Informationen bereitgestellt werden können. Um die Algorithmen erweiterbar zu machen, dem Anwender die nötige Flexibilität zu garantieren und sämtliche Erklärungsinformationen sammeln zu können, kommt man um eine eigene Implementierung nicht herum. Allerdings können natürlich Teile einer Open-Source-Implementierung als Grundlage genommen werden und verwendet werden. So muss man nur die nötigen Stellen um die Erklärungen erweitern. Ein Algorithmus zur Entscheidungsbaumgenerierung ist eine Menge von Konfigurationen. Eine solche Konfiguration besteht aus Split- und Stopkriterium, Attributeigenschaften 17 sowie einer Pruning-Methode. Als Beispiel ist der ID3-Algorithmus in Tabelle 5.1 konfiguriert. 17 Beispielsweise dass jedes Attribut als nominales Attribut behandelt wird. 46 Masterthesis Nina Rothenberg

55 5. Software-Entwurf ID3 Attribute Splitkriterium Stopkriterium Pruning-Methode - Es werden nur nominale Attribute verwendet. Information Gain Alle Einträge der Datenmenge haben den gleichen Wert für das Zielattribut. Tabelle 5.1.: Die Konfiguration für den ID3-Algorithmus Wichtig ist bei einer solchen Konfiguration die Unterscheidung zwischen darf nicht benutzt werden und beliebige Auswahl Erweiterbarkeit Die Erweiterbarkeit der Anwendung ist eine zentrale Anforderung, die an verschiedenen Stellen gefordert ist. Diese Stellen sollen möglichst gleich behandelt werden, um einem Entwickler, der Erweiterungen implementieren möchte, nicht mit verschiedenem Vorgehen zu irritieren. Außerdem verbessert ein einheitliches Vorgehen die Übersichtlichkeit des Quellcodes, da die verschiedenen Stellen auf gleiche Art implementiert sind und auch die Implementierung zum Laden der Erweiterungen getreu dem Motto Code once - use many wiederverwendet werden kann. Die Erweiterbarkeit wird durch ein Plugin-Konzept gelöst. Hierzu werden bestimmte Interfaces und Modellklassen in einer Java Archive (jar)-datei bereitgestellt, die von den Entwicklern einer Erweiterung eingebunden werden können. Die Entwickler lassen ihre Klassen das entsprechende Interface implementieren, erstellen eine jar-datei und legen diese in einen Plugin-Ordner. Die jar-dateien dieses Ordners werden zur Laufzeit nach Klassen die ein gesuchtes Interface implementieren geladen und können somit verwendet werden. Somit kann das elearning-grundmodul unverändert bestehen bleiben. Bei diesem Konzept existieren zwei Möglichkeiten der Umsetzung: 1. Die Verwendung eines existierenden Plugin-Framework wie z. B. dem Java-Plugin Framework (JPF). Nina Rothenberg Masterthesis 47

56 5. Software-Entwurf 2. Eigene Implementierung eines entsprechenden ClassLoaders 18. Generell ist es von Vorteil vorhandene Bibliotheken zu nutzen, um sich unnötigen Implementierungsaufwand zu sparen. Bibliotheken sind ohne viel Aufwand einzubinden und zu verwenden. Allerdings müssen dann natürlich die Anforderungen der Bibliothek erfüllt werden. Im Fall von JPF ist eine solche Anforderung zum Beispiel das Vorhandensein einer Manifest-Datei 19. Diese muss von jedem zu erstellenden Plugin entsprechend gepflegt werden, was Aufwand für den Entwickler bedeutet und fehleranfällig ist. Um die Schnittstellen so erweiterbar wie möglich zu halten, werden ihnen bestimmte Eingabeobjekte übergeben. Diese Eingabeobjekte können dann von Entwicklern, denen zu ihrer Erweiterung noch Informationen fehlen, erweitert werden, indem ein Objekt mit der Oberklasse des Eingabeobjektes definiert wird. Hierbei ist allerdings darauf zu achten, dass die neu hinzugefügten Parameter auch befüllt werden müssen. Hierzu ist mindestens eine neue Implementierung eines Datei-Importes nötig. Somit wird eine erweiterte Behandlung von bisher unbekannten Informationen möglich. Der Anwender hat die Möglichkeit der Anwendung weiter Plugin-Ordner anzugeben. Bei einem solchen Plugin-Konzept ist natürlich nicht ausgeschlossen, dass es zwei Implementierungen zu einem Thema gibt. Da allerdings jede Implementierung eine Bezeichnung hat, mit der sie an der Oberfläche wählbar ist, kann der Anwender so zwischen den verschiedenen Implementierungen wählen. Falls es z. B. mehrere Implementierungen des Importes für ein bestimmtes Datei-Format gibt, werden dem Anwender die verschiedenen Alternativen angezeigt und er wählt, welche er verwenden möchte Komponentenschnitt Um die Anwendung möglichst schlank und variable zu gestalten, wird sie in mehrere Komponenten aufgeteilt. Die Komponenten sind so konzipiert, dass sie, soweit möglich, möglichst einfach ausgetauscht werden können. Folgende vier Komponenten werden identifiziert: Basis-Komponente Kern-Komponente 18 ClassLoader sind Klassenlader, die Gruppen von Klassen, oft in Form von jar-dateien [Ess08, Seite 280] laden. 19 Eine Manifest-Datei beinhaltet Metadaten zu einer Anwendung. 48 Masterthesis Nina Rothenberg

57 5. Software-Entwurf Benutzungsoberfläche Standard-Implementierungen Im folgenden werden diese näher beschrieben. Die Beziehung der vier Komponenten ist in Abbildung 5.4 zu sehen. Abbildung 5.4.: Komponentendiagramm Basis-Komponente Diese Basis-Komponente ist Grundlage aller weiteren Komponenten. Hier sind die grundlegenden Datenmodelle und Schnittstellen implementiert. Dies sind, neben dem Entscheidungsbaum und dem Modell der Datenmenge, die Schnittstellen für die erweiterbaren Elemente wie Split- und Stop-Kriterien. In Abbildung 5.5 ist das Modell des Entscheidungsbaums zu sehen. Abbildung 5.6 zeigt die Schnittstellen, die angeboten werden. Diese Schnittstellen sind die Grundlage der Erweiterbarkeit der Anwendung. Sie müssen so modelliert sein, das möglichst alle wünschenswerten Erweiterungen umgesetzt werden können. Diese Kern-Komponente enthält die Logik, die die einzelnen Komponenten zusammenbringt. Sie lädt die Erweiterungen nach und stellt diese zur Verfügung. Außerdem enthält sie die Logik mit der Split- und Stop-Kriterium aufgerufen werden und erstellt mittels der Ergebnisse den Entscheidungsbaum. Diese Komponente enthält die Teile, die bei jeder Entscheidungsbaumgenerierung gleich sind. Sie ist die konstante Komponente der Anwendung und wird sich nur in großen Ausnahmefällen ändern. Nina Rothenberg Masterthesis 49

58 5. Software-Entwurf Abbildung 5.5.: Modell des Entscheidungsbaums Neben dem Laden der einzelnen Erweiterungen, wird die Schnittstelle zur Entscheidungsbaumgenerierung bereitgestellt. Diese bekommt ein Objekt übergeben, welches alle Einstellungen und Eingabe-Objekte für diese Generierung beinhaltet. Hierzu gehören auch die Trainings- und die Testmenge Benutzungsoberfläche In dieser Komponente ist die Benutzungsoberfläche implementiert. Die Oberfläche ist somit losgelöst von der Logik und damit austauschbar. Wenn in Zukunft zum Beispiel eine barrierefreie Oberfläche mit Sprachausgabe erstellt werden soll, kann die gleiche Logik aus der Kern-Komponente genutzt werden und es muss wirklich nur die reine Oberfläche neu entwickelt werden. Dies macht die Anwendung zukunftssicher. 50 Masterthesis Nina Rothenberg

59 5. Software-Entwurf Abbildung 5.6.: Bereitgestellte Schnittstellen Abbildung 5.7.: Schnittstelle der Kern-Komponente Nina Rothenberg Masterthesis 51

60 5. Software-Entwurf Standard-Komponente Die Standard-Komponente ist das erste Plugin der Anwendung. Es enthält die ersten Implementierungen der bereitgestellten Interfaces zum Datei-Import/-Export, Split- und Stop-Kriterium, Pruning-Methoden sowie Algorithmen. In dem entwickelten Prototyp werden hierzu erst einmal die gängigen Algorithmen ID3, C4.5 und CART implementiert. Datei-Import und -Export werden beispielhaft anhand eines Character Separated Values (CSV)-Handler zum importieren eines Datensatzes und einem Hypertext Markup Language (HTML)-Export realisiert. Die sich dazu ergebenen Klassen sind in Abbildung 5.8 zu sehen. Abbildung 5.8.: Die Klassen der Standard-Komponente 5.5. Sonstiges Um eine Anwendung möglichst flexibel zu halten, sollte u.a. immer die Mehrsprachigkeit beachtet werden. Neben den flexibel austauschbaren Komponenten ist dies wichtig, um zukünftige Anforderungen umsetzen zu können. Mehrsprachigkeit ist eine sehr wahrscheinliche Anforderung an das elearning-modul, da Anwendungen über das Internet sehr schnell international verbreitet werden können. Mehrsprachigkeit im Nachhinein einzubauen kann sehr aufwändig sein und macht, von Anfang an berücksichtigt, kaum Mehraufwand. Aus diesem Grund muss es von Anfang an bedacht werden. Aus diesem Grund wird in der Anwendung an allen Stellen, an denen Bezeichnungen eine Rolle spielen, immer ein Locale-Objekt mitgegeben, damit an dieser Stelle mehrsprachige Ausgaben 52 Masterthesis Nina Rothenberg

61 5. Software-Entwurf ermöglicht werden. Natürlich ist ein Plugin-Entwickler nicht gezwungen diese auch zu nutzen, sondern kann immer eine konstante Bezeichnung zurückgeben. Diejenigen, die mehrere Sprachen unterstützen wollen, sollen aber nicht daran gehindert werden. Auch die Fehlerbehandlung ist ein wichtiges Thema. Jeder Fehler wird in Log-Dateien geloggt, damit er gemeldet und möglichst leicht behoben werden kann. Der Anwender muss natürlich auch über einen Fehler informiert werden. Aus diesem Grund, werden ihm Fehlermeldungen angezeigt. Die Anzeige kann durch Pop-Up-Fenster oder durch einen Bereich für Fehlermeldungen an der Oberfläche angezeigt werden. Ein zentraler Fehlerbereich ermöglicht es, mehrere Fehler anzuzeigen. Allerdings ist es immer schwierig den richtigen Zeitpunkt der Löschung einer Fehlermeldung zu finden. Ein Pop-Up-Fenster zieht die Aufmerksamkeit des Anwenders auf sich und ermöglicht es Funktionalitäten, wir z. B. Fehlerbericht senden, hinzuzufügen. Ein Pop-Up ist praktisch und umgeht die schwierige Entscheidung zur Löschung eines zentralen Fehlerspeichers. Aus diesem Grund werden Fehlermeldungen in der Anwendung in einem Pop-Up-Fenster angezeigt. Nina Rothenberg Masterthesis 53

62

63 6. Implementierung 6. Implementierung Die Implementierung des elearning-moduls erfolgt, wie in Kapitel 5.4 beschrieben, in vier verschiedenen Komponenten. In dieser Arbeit wird ein Prototyp implementiert. Hier ist es nicht wichtig, dass alle Anforderungen vollständig umgesetzt sind, sondern, dass alle Konzepte erprobt werden. Um die Anwendung demonstrieren zu können, werden die in Kapitel beschriebenen Algorithmen implementiert. Die Anwendung wird als Java Fat Client 20 -Anwendung umgesetzt. Die Wahl fällt auf Java weil diese Sprache sehr mächtig ist und hat eine große Verbreitung 21 hat. Aufgrund der großen Verbreitung kann man davon ausgehen, dass der Anwender jede gewünschte Erweiterung schnell und einfach umsetzen (lassen) kann. Die Oberfläche es Prototypen wird mit Swing implementiert. Dieses ist das Standard-GUI-Frontend von Java [Wun05, Seite 230] und in der Java Runtime Environment (JRE) integriert Visualisierung Die Visualisierung der Entscheidungsbäume wird das Framework Java Universal Network/Graph Framework (JUNG) 22 verwendet. Dieses erstellt die Bäume automatisch in einer möglichst kompakten Darstellung. Zusätzlich bietet es die Möglichkeit, dass Knoten per Drag-and-Drop verschoben werden können. So kann der Anwender den Baum nach belieben hin- und herziehen. Außerdem können Knoten, wie auch Kanten ausgewählt werden und ihre Erklärungen anzeigen. In Kapitel werden die Anforderungen für eine kompakte Baumdarstellung und die Beschreibung einer möglichen Umsetzung beschrieben. Bäume, die mit dem Framework JUNG visualisiert werden, erfüllen diese Anforderungen. 20 Fat Clients (oder Rich Clients) werden in Gänze (Präsentation, Geschäftslogik, Datenspeicherung) durch ein einzelnes, atomares Programm repräsentiert [Wun05, Seite 199]. Hierbei kann das Programm aus mehreren Komponenten bestehen, diese werden jedoch nicht von anderen Anwendungen genutzt oder mit ihnen geteilt werden. 21 Laut dem Tiobe Programming Community Index [TIO11] ist Java die populärste Programmiersprache. 22 Projekthomepage: Nina Rothenberg Masterthesis 55

64 6. Implementierung Das JUNG-Framework implementiert die Darstellung des Baumes fast identisch zu dem beschriebenen Algorithmus in Kapitel Hierzu werden die Positionen der einzelnen Knoten ermittelt, die dann mittels Kanten verbunden werden. Das Vorgehen ist hierbei wie folgt: 1. Berechnung der Breite je Teilbaum. 2. Auf Basis der Breite die Berechnung der Knoten-Position Die Breite wird hierbei durch die konstante Breite eines Knotens, die vom Benutzer verändert werden kann, berechnet. Hierzu wird pro Teilbaum die Breite des Teilbaums mit der Knotenbreite addiert. Ein Blatt hat hierbei die Breite 0. Am Ende wird eine Knotenbreite abgezogen. Die Breite pro Teilbaum wird gespeichert. Der Wurzelknoten wird nun horizontal mittig im Bild positioniert, indem die Breite des Baumes halbiert und um die Knotenbreite erhöht wird. Nun wird die Position jedes Teilbaums ermittelt. Das Vorgehen ist in Algorithmus 6.1 abgebildet. Algorithmus 6.1 Erzeugung eines Baumes Input: currentpoint tree.width 2 + horizontaldistance 1: function buildtree(tree, startxposition) 2: currentposition.y currentposition.y + verticaldistance 3: currentposition.x startxposition 4: image.setlocation(tree) currentpoisition 5: lastxposition startxposition tree.width 2 6: for all subtree : tree.subtrees do 7: startxpositionforchild lastxposition + subtree.width 2 8: buildtree(subtree, startxpositionforchild) 9: lastxposition lastxposition + subtree.width + horizontaldistance 10: end for 11: currentposition.y currentposition.y - verticaldistance 12: end function Bei jedem Teilbaum wird damit begonnen, dass der Wurzelknoten positioniert wird. Dieses ist in Zeile 4 des Algorithmus zu sehen. Dann werden die Teilbäume von links nach rechts 23 positioniert. Auf Grundlage des horizontalen Wertes des Nachbarknotens und der Breite des betrachteten Knotens wird die horizontale Position so ermittelt, dass ein Knoten immer mittig über seinen Kindknoten positioniert ist. 23 Die Reihenfolge der Teilbäume ist beliebig. Es ist keine Logik implementiert, die die optimale Reihenfolge von Teilbäumen ermittelt. 56 Masterthesis Nina Rothenberg

65 6. Implementierung Zusätzlich ist das JUNG-Framework sehr flexibel. Die Darstellung der Bäume, sowie die Interaktionen 24 sind vom Anwender beliebig veränderbar. Abbildung 6.1 zeigt beispielhaft einen mit JUNG visualisierten Baum. Abbildung 6.1.: Baum dargestellt mittels JUNG 6.2. Umsetzung der Erweiterbarkeit Um die Erweiterbarkeit umzusetzen, wird ein Plugin-Konzept verwendet, welches in Kapitel 5.3 beschrieben ist. Der Anwender soll es möglichst leicht haben ein neues Plugin zu erstellen oder einzubinden. Dafür wird ein Plugin-Ordner definiert, der bei jedem Start des Programms nach Erweiterungen durchsucht wird. Hierzu wird ein ClassLoader implementiert, der alle jar-dateien dieses Ordners beim Programmstart nachlädt. Der ClassLoader bietet eine Methode an, mit der man aus dem Pool der geladenen Klassen all diejenigen zurückgibt, die ein bestimmtes, übergebenes Interface implementieren (Vgl. Abbildung 6.2). So kann man z. B. alle Split-Kriterien laden. Diese Methode wird an allen nötigen Stellen verwendet, sodass alle Erweiterungen auf die gleiche Art geladen werden. Abbildung 6.2.: Klasse des Plugin-ClassLoaders Aus Performance-Gründen werden die Klassen, gruppiert nach Interfaces, einmalig geladen und im ClassLoader gespeichert. Wenn alle Klassen, die ein bestimmtes Interface implementieren, 24 Wie OnClick oder MouseOver-Ereignisse. Nina Rothenberg Masterthesis 57

66 6. Implementierung zurückgegeben werden sollen, wird die Gruppe der Klassen zu dem Interface zurückgegeben. Das initiale Laden der Klassen ist im Algorithmus 6.2 beschrieben. Algorithmus 6.2 Ablauf des ClassLoaders for all class : jar.allclasses do for all interface : class.implementedinterfaces do interface.implementedclasses.add(class) end for end for 6.3. Beispiel zur Erstellung und Verwendung von Erweiterungen Anhand eines Beispiels wird das Plugin-Konzept veranschaulicht und die Erstellung und Verwendung von Erweiterungen erläutert. Annahme für dieses Beispiel ist, dass eine Erweiterung implementiert werden soll, die weitere Pruning-Methoden implementiert. Das Projekt bekommt den Namen detrin-pruningmethods. Dieses Projekt bindet die Bibliothek detrin-base ein, die das Interface PruningMethod enthält. In detrin-pruningmethods werden nun zwei Klassen erstellt: ReducedErrorPruning und PessimisticErrorPruning. Beide Klassen sind Implementierungen des Interfaces PruningMethod. Die Methode getlabel(locale locale) den entsprechenden Namen zurück, also Reduced-Error Pruning bzw. Pessimistic Error Pruning, die später verwendet werden, um sie für die Auswahl an der Oberfläche anzeigbar zu machen. Die Klasse PessimisticErrorPruning verwendet die Bibliothek errorrate-utils, die in detrin-pruningmethods eingebunden wird. Die vollständige Architektur der Erweiterung ist in Abbildung 6.3 zu sehen. Beide Methode prüfen für alle Teilbäume, ob die Ersetzung durch ein Blatt den Baum vereinfachen kann. Wenn dies zutrifft, wird der Teilbaum durch ein Blatt ersetzt. Das Blatt wird über die Methode setexplanation(string explanation) mit den entsprechenden Erklärungen bestückt. Aus dem Projekt wird nun die Datei detrin-pruningmethods.jar kompiliert. Diese wird, zusammen mit der Bibliothek errorrate-utils.jar in den Plugin-Ordner plugins gelegt. Alternativ kann die zusätzliche Bibliothek auch direkt mit in die jar-datei eingebunden werden. In diesem Fall muss dann nur die Erweiterung in den Ordner kopiert werden, da diese ihre Abhängigkeit schon enthält. Beim Start der Anwendung wird nun die Auswahlliste für die Pruning-Methoden um die beiden Einträge erweitert (vgl. Abbildung 6.4). Wenn eine der beiden Einträge ausgewählt wird, wird 58 Masterthesis Nina Rothenberg

67 6. Implementierung Abbildung 6.3.: Architektur der Erweiterung detrin-pruningmethods Abbildung 6.4.: Anzeige der neuen Pruning-Methoden die Pruning-Methode in der Entscheidungsbaumgenerierung ausgeführt. In den Erklärungen der durch die Methode generierten Blätter, sind die entsprechend in den Plugin-Klassen definierten Einträge zu finden (vgl. Abbildung 6.5). Abbildung 6.5.: Anzeige der neuen Erklärungen Nina Rothenberg Masterthesis 59

68 6. Implementierung 6.4. Umsetzung der Erklärungskomponente Für die Erklärungskomponente werden an jedes Element des Entscheidungsbaumes Erklärungen geknüpft. Diese können von den entsprechenden Methoden, die die Baumelemente bei der Generierung durchlaufen, befüllt werden. Nach der Generierung sind an jeder Kante und an jedem Knoten des Baumes Erklärungen, die mit einem Klick auf das entsprechende Element angezeigt werden können. In Kapitel wird der Ansatz zur zentralen Anzeige argumentiert, der so umgesetzt wird. In dieser Anzeige sollen die Erklärungen zu mehreren Baumelementen angezeigt werden können. Diese sollen auch nebeneinander anzeigbar sein. Für die Erfüllung der Anforderungen bieten sich zwei Möglichkeiten an: Eine Fläche, auf der der Anwender pro Erklärung ein Fenster sieht, welches er frei in dieser Fläche bewegen und in der Größe verändern kann. Pro Erklärung ein Tab in einem Tab-Panel. Der erste Ansatz ist sehr flexibel und lässt dem Anwender viele Freiheiten sich die Fenster so zu positionieren, wie es ihm beliebt. Der Tab-Ansatz wirkt aufgeräumter, ist aber unflexibler. In diesem Fall ist die Ausgliederung eines Tabs in einen neuen horizontal oder vertikal parallelen Bereich sinnvoll. Ohne eine solche Funktionalität hat der Ansatz, im Vergleich zu einem einzigen Erklärungsbereich, der je nach Selektion eines Baumelements neu befüllt wird, kaum einen Vorteil, da immer nur eine Erklärung sichtbar ist. Mit dieser Funktionalität bietet der Ansatz fast alle Vorteile der freien Fläche mit mehreren Erklärungsfenstern. Die Erklärungen können zwar in dem Tab-Ansatz nicht ganz so flexibel angeordnet werden, aber sie können geordnet und übersichtlich nebeneinander angezeigt werden. Aus Gründen der Übersichtlichkeit wird der Tab-Ansatz und nicht die Erklärungsfläche umgesetzt Funktionalitäten Die Benutzungsoberfläche ist, wie in Kapitel 5.2 beschrieben, in vier Bereiche aufgeteilt (Vgl. Abbildung 6.6). Um die Größe der einzelnen Bereiche flexibel zu gestalten, werden die Bereiche durch Teilungskomponenten (Split-Panes) voneinander getrennt. Durch die verschiebbare Trennleiste, kann die sichtbare Größe der Bereiche verändert werden. Die Funktionalität der Benutzungsoberfläche wird im Prototyp nicht vollständig umgesetzt. Das Editieren von Instanzen ist für die Kern-Funktionalität nicht zwingend notwendig und auch 60 Masterthesis Nina Rothenberg

69 6. Implementierung Abbildung 6.6.: DeTrIn Screenshot technisch unproblematisch umzusetzen. Die Umsetzung muss also nicht zwangsläufig erprobt werden. Die Anzeige von Instanzen ist also im Prototyp auf die reine Anzeige beschränkt (Vgl. Abbildung 6.7). Abbildung 6.7.: Anzeige der Instanzen Die Gruppierung von Attributen hingegen sollte erprobt werden, da Gruppierungen einen wesentlichen Einfluss auf die Funktionalität und das Datenmodell haben. Die Anzeige der Attribute Nina Rothenberg Masterthesis 61

70 6. Implementierung ist in Abbildung 6.8 zu sehen. Die Gruppierung der Attribute wird in einem separaten Fenster Abbildung 6.8.: Anzeige der Attribute vorgenommen (Vgl. Abbildung 6.9). Hierbei ist die Behandlung von nummerischen und nominalen Attributen unterschiedlich. Bei den nominalen Attributen werden die möglichen Werte auf Gruppen verteilt. Gruppen für nummerische Attribute sind eine Liste von Intervallen. Hierbei gibt es immer mindestens zwei Gruppen: [ Grenzwert] und [> Grenzwert]. Abbildung 6.9.: Details für Attribute 62 Masterthesis Nina Rothenberg

71 6. Implementierung 6.6. Export Als Beispiel für einen Export wird ein HTML-Bericht implementiert. Dieser erstellt einen Bericht, der dem in Kapitel vorgeschlagenen Layout entspricht. Der Bericht wird in den vom Anwender gewählten Ordner des Dateisystems gespeichert. Das Bild des Entscheidungsbaums wird übergeben und für die Darstellung im HTML-Bericht in eine Datei gespeichert. Hierzu wird im Zielordner des Berichts ein neuer Ordner angelegt, der dem Bericht eindeutig zuzuordnen ist. Damit die Zuordnung gewährleistet ist, beinhaltet der Ordnername den Namen des Berichtes. In diesen Ordner wird dann die Bilddatei abgelegt und kann somit in den HTML-Bericht eingebunden werden. Die Instanzen und Attribute werden ähnlich der Benutzungsoberfläche, in Tabellenform, dargestellt. Die Ausgabe der Eingabeparameter ähnelt der Ausgabe der Anwendung Weka 25. Alle eingegebenen Werte werden in Listenform untereinander angezeigt. Es folgt die Abbildung des Entscheidungsbaums. Die Erklärungen des Entscheidungsbaumes folgen. Diese sind in der ersten Version des Exports untereinander dargestellt und nur aufgrund der Dokumenten-Struktur hierarchisch angeordnet. In einer weiteren Ausbaustufe können diese per Cascading Style Sheets (CSS) noch verschönert werden. Somit kann die Zugehörigkeit der einzelnen Erklärungen noch besser hervorgehoben werden. In Anhang D ist ein Beispiel eines mit dem HTML-Export erstellten Berichtes zu finden. Der große Vorteil einer HTML-Datei ist, dass die Schriftgröße veränderbar ist und auch das Bild vergrößert werden kann. Die Veränderlichkeit der Schriftgröße ist ein wichtiger Punkt für die Barrierfreiheit und Anwenderfreundlichkeit. Durch den Bericht kann die noch nicht umgesetzte Verstellbarkeit der Schriftgröße ausgeglichen werden. 25 Vgl. Kapitel 2.5. Nina Rothenberg Masterthesis 63

72

73 7. Fazit 7. Fazit Ziel dieser Arbeit war die Konzeption und prototypische Implementierung eines elearning- Moduls zur Entscheidungsbaumgenerierung. Diese soll die Kernziele erfüllen, dass ein Anwender sich eigene Datensätze importieren und als Grundlage der Entscheidungsbaumgenerierung verwenden kann und die Generierung anhand einer Erklärungskomponente näher erläutert bekommt. Diese Erklärungskomponente ermöglicht es dem Anwender die Entscheidungsbaumgenerierung nachzuvollziehen und die Auswirkungen einzelner Parameter zu erkennen. Durch den Bericht, den die Anwendung als Export anbietet, kann das eigene Beispiel als Musterlösung exportiert werden. Diese Anforderungen werden bereits durch den Prototypen erfüllt. Für diesen wurden beispielhaft Algorithmen implementiert, die einen Entscheidungsbaum generieren. Hauptziel des Prototypen ist allerdings die technische Erprobung der Kernkonzepte. Der Schwerpunkt liegt hierbei auf einem leicht zu verwendenden und flexiblen Erweiterungskonzept. Dieses wurde erfolgreich implementiert. Entwicklern wird es leicht gemacht Erweiterungen zu schreiben und einzubinden und der Anwender ist flexibel und kann die aktuellen Erweiterungen selbst beeinflussen, indem er neue Erweiterungen in den Plugin-Ordner legt bzw. nicht mehr benötigte Erweiterungen daraus entfernt. Den Schnittstellen werden spezielle Eingabeobjekte übergeben, die möglichst umfangreich sind, um auf alle denkbaren kommenden Erweiterungen vorbereitet zu sein. Sobald diese aber einmal nicht mehr ausreichen, können sie erweitert werden ohne ältere Erweiterungen negativ zu beeinflussen. Durch die aktuell umgesetzten Funktionalitäten ist neben der technischen Erprobung aber auch schon klar der Nutzen für den Anwender erkennbar. Wenn erst einmal die ersten Algorithmen vollständig umgesetzt sind, kann die Anwendung bereits zum Korrigieren von Aufgaben oder Nachvollziehen von Beispielen verwendet werden. Im nächsten Schritt sollte auch mehr auf die Benutzungsoberfläche geachtet werden. Diese entspricht aktuell nicht den hohen Anforderungen eines elearning-moduls. Auch an den Ausgaben der Erklärungskomponente kann es noch Verbesserungen geben. Im aktuellen Bericht ist z. B. sehr schwierig zu erkennen, wohin eine Erklärung genau gehört. Dies kann durch optische Aufbereitung (z. B. durch die Verwendung von Rahmen, die Teilbäume optisch zusammenfasst) verbessert werden. Nina Rothenberg Masterthesis 65

74 7. Fazit Aus Sicht des Autors ist es auf jeden Fall empfehlenswert das elearning-modul weiterzuentwickeln und potenziellen Anwendern zur Verfügung zu stellen. Der Prototyp zeigt jetzt schon, dass in naher Zukunft ein vollumfängliches elearning-modul entwickelt werden kann. Die Umsetzung der noch nicht implementierten fachlichen Anforderungen, z. B. die Kreuz-Validierung, wird schnell einen Mehrwert schaffen. Studenten, die die Anwendung nutzen, können von der Erklärungskomponente profitieren und somit kann das elearning-modul zum besseren Verständnis der Algorithmen zur Entscheidungsbaumgenerierung beitragen. 66 Masterthesis Nina Rothenberg

75 A. Beispiel des Klassifizierungs-Outputs von Weka A. Beispiel des Klassifizierungs-Outputs von Weka === Run information === Scheme: weka.classifiers.trees.j48 -C M 2 Relation: Wetterdaten Instances: 14 Attributes: 5 outlook temperature humidity windy play Test mode: 10-fold cross-validation === Classifier model (full training set) === J48 pruned tree outlook = sunny humidity = high: no (3.0) humidity = normal: yes (2.0) outlook = overcast: yes (4.0) outlook = rainy windy = false: yes (3.0) windy = true: no (2.0) Nina Rothenberg Masterthesis 67

76 A. Beispiel des Klassifizierungs-Outputs von Weka Number of Leaves : 5 Size of the tree : 8 Time taken to build model: 0 seconds === Predictions on test data === inst#, actual, predicted, error, probability distribution 1 1:no 2:yes + 0 *1 2 2:yes 2:yes 0 *1 1 1:no 2:yes * :yes 2:yes 0 *1 1 1:no 1:no * :yes 1:no + * :no 2:yes * :yes 1:no + * :no 1:no * :yes 1:no + * :yes 2:yes 0 *1 1 2:yes 1:no + * :yes 2:yes 0 *1 1 2:yes 2:yes 0 *1 === Stratified cross-validation === === Summary === Correctly Classified Instances 7 50 % Incorrectly Classified Instances 7 50 % Kappa statistic K&B Relative Info Score % K&B Information Score bits bits/instance 68 Masterthesis Nina Rothenberg

77 A. Beispiel des Klassifizierungs-Outputs von Weka Class complexity order bits bits/instance Class complexity scheme bits bits/instance Complexity improvement (Sf) bits bits/instance Mean absolute error Root mean squared error Relative absolute error 87.5 % Root relative squared error % Total Number of Instances 14 === Detailed Accuracy By Class === TP Rate FP Rate Precision Recall F-Measure ROC Area Class no yes Weighted Avg === Confusion Matrix === a b < classified as 2 3 a = no 4 5 b = yes === Source code === // Generated with Weka // // This code i s p u b l i c domain and comes with no w a r r a n t y. // // Timestamp : Thu Feb : 3 8 : 2 9 CET 2011 package weka. c l a s s i f i e r s ; import weka. core. A t t r i b u t e ; Nina Rothenberg Masterthesis 69

78 A. Beispiel des Klassifizierungs-Outputs von Weka import weka. core. C a p a b i l i t i e s ; import weka. core. C a p a b i l i t i e s. C a p a b i l i t y ; import weka. core. I n s t a n c e ; import weka. core. I n s t a n c e s ; import weka. c l a s s i f i e r s. C l a s s i f i e r ; public c l a s s WekaWrapper extends C l a s s i f i e r { /** * Returns o n l y the t o S t r i n g ( ) method. * r e t u r n a s t r i n g d e s c r i b i n g the c l a s s i f i e r */ public S t r i n g g l o b a l I n f o ( ) { return t o S t r i n g ( ) ; } /** * Returns the c a p a b i l i t i e s o f t h i s c l a s s i f i e r. * r e t u r n the c a p a b i l i t i e s */ public C a p a b i l i t i e s g e t C a p a b i l i t i e s ( ) { weka. core. C a p a b i l i t i e s r e s u l t = new weka. core. C a p a b i l i t i e s ( t h i s ) ; r e s u l t. e nable ( weka. core. C a p a b i l i t i e s. C a p a b i l i t y. NOMINAL_ATTRIBUTES) ; r e s u l t. e nable ( weka. core. C a p a b i l i t i e s. C a p a b i l i t y. BINARY_ATTRIBUTES) ; r e s u l t. e nable ( weka. core. C a p a b i l i t i e s. C a p a b i l i t y. UNARY_ATTRIBUTES) ; r e s u l t. e nable ( weka. core. C a p a b i l i t i e s. C a p a b i l i t y. EMPTY_NOMINAL_ATTRIBUTES) ; 70 Masterthesis Nina Rothenberg

79 A. Beispiel des Klassifizierungs-Outputs von Weka r e s u l t. e nable ( weka. core. C a p a b i l i t i e s. C a p a b i l i t y. NUMERIC_ATTRIBUTES) ; r e s u l t. e nable ( weka. core. C a p a b i l i t i e s. C a p a b i l i t y. DATE_ATTRIBUTES) ; r e s u l t. e nable ( weka. core. C a p a b i l i t i e s. C a p a b i l i t y. MISSING_VALUES) ; r e s u l t. e nable ( weka. core. C a p a b i l i t i e s. C a p a b i l i t y.nominal_class ) ; r e s u l t. e nable ( weka. core. C a p a b i l i t i e s. C a p a b i l i t y. BINARY_CLASS) ; r e s u l t. e nable ( weka. core. C a p a b i l i t i e s. C a p a b i l i t y. MISSING_CLASS_VALUES) ; r e s u l t. setminimumnumberinstances (0) ; } return r e s u l t ; /** * o n l y c hecks the data a g a i n s t i t s c a p a b i l i t i e s. * i the t r a i n i n g data */ public void b u i l d C l a s s i f i e r ( I n s t a n c e s i ) throws Exception { } // can c l a s s i f i e r h a n d l e the data? g e t C a p a b i l i t i e s ( ). t e s t W i t h F a i l ( i ) ; /** * C l a s s i f i e s the g i v e n i n s t a n c e. * i the i n s t a n c e to c l a s s i f y r e t u r n the c l a s s i f i c a t i o n r e s u l t */ public double c l a s s i f y I n s t a n c e ( I n s t a n c e i ) throws Exception { Object [ ] s = new Object [ i. numattributes ( ) ] ; Nina Rothenberg Masterthesis 71

80 A. Beispiel des Klassifizierungs-Outputs von Weka f o r ( i n t j = 0 ; j < s. l e n g t h ; j++) { i f (! i. i s M i s s i n g ( j ) ) { i f ( i. a t t r i b u t e ( j ). isnominal ( ) ) s [ j ] = new S t r i n g ( i. s t r i n g V a l u e ( j ) ) ; e l s e i f ( i. a t t r i b u t e ( j ). isnumeric ( ) ) s [ j ] = new Double ( i. v a l u e ( j ) ) ; } } // s e t c l a s s v a l u e to m i s s i n g s [ i. c l a s s I n d e x ( ) ] = n u l l ; } return W e k a C l a s s i f i e r. c l a s s i f y ( s ) ; /** * Returns o n l y the c l a s s n a m e s and what c l a s s i f i e r i t i s based * on. r e t u r n a s h o r t d e s c r i p t i o n */ public S t r i n g t o S t r i n g ( ) { } return "Auto generated c l a s s i f i e r wrapper, based on weka. c l a s s i f i e r s. t r e e s. J48 ( generated with Weka ). \ n" + t h i s. g e t C l a s s ( ). getname ( ) + "/ W e k a C l a s s i f i e r " ; /** * Runs the c l a s s f i e r from commandline. * a r g s the commandline arguments */ public s t a t i c void main ( S t r i n g a r g s [ ] ) { r u n C l a s s i f i e r (new WekaWrapper ( ), a r g s ) ; } 72 Masterthesis Nina Rothenberg

81 A. Beispiel des Klassifizierungs-Outputs von Weka } c l a s s W e k a C l a s s i f i e r { public s t a t i c double c l a s s i f y ( Object [ ] i ) throws Exception { } double p = Double. NaN ; p = W e k a C l a s s i f i e r. Na5f99b9 ( i ) ; return p ; s t a t i c double Na5f99b9 ( Object [ ] i ) { double p = Double. NaN ; i f ( i [ 0 ] == n u l l ) { p = 0 ; } e l s e i f ( i [ 0 ]. e q u a l s ( " sunny " ) ) { p = W e k a C l a s s i f i e r. Na ( i ) ; } e l s e i f ( i [ 0 ]. e q u a l s ( " o v e r c a s t " ) ) { p = 1 ; } e l s e i f ( i [ 0 ]. e q u a l s ( " r a i n y " ) ) { p = W e k a C l a s s i f i e r. N9036e11 ( i ) ; } return p ; } s t a t i c double Na ( Object [ ] i ) { double p = Double. NaN ; i f ( i [ 2 ] == n u l l ) { p = 0 ; } e l s e i f ( i [ 2 ]. e q u a l s ( " high " ) ) { p = 0 ; } e l s e i f ( i [ 2 ]. e q u a l s ( " normal " ) ) { p = 1 ; } return p ; } s t a t i c double N9036e11 ( Object [ ] i ) { Nina Rothenberg Masterthesis 73

82 A. Beispiel des Klassifizierungs-Outputs von Weka } } double p = Double. NaN ; i f ( i [ 3 ] == n u l l ) { p = 1 ; } e l s e i f ( i [ 3 ]. e q u a l s ( " f a l s e " ) ) { p = 1 ; } e l s e i f ( i [ 3 ]. e q u a l s ( " t r u e " ) ) { p = 0 ; } return p ; 74 Masterthesis Nina Rothenberg

83 B. Anforderungen B. Anforderungen In diesem Abschnitt werden die Anforderungen aufgelistet. Sie sind gemäß der Analyse-Kapitel 26 gruppiert, um eine bessere Übersicht zu gewährleisten. B.1. Datenvorbereitung Anforderung DV-1 Beschreibung Priorität 1 DV-1 Der Anwender kann eigene Datensätze importieren. Er soll also nicht durch fest vorprogrammierte Beispiele eingeschränkt sein. Tabelle: Anforderung DV-1 Anforderung DV-2 Beschreibung Abhängigkeit Priorität 1 DV-2 Der Anwender kann verschiedene Dateiformate benutzen. DV-1 Tabelle: Anforderung DV-2 26 Vgl. Kapitel 4.4 ab Seite 34. Nina Rothenberg Masterthesis 75

84 B. Anforderungen Anforderung DV-3 Beschreibung Priorität 1 DV-3 Bei jedem Attribut kann eingestellt werden, ob es bei der Entscheidungsbaumgenerierung berücksichtigt werden soll oder nicht. Mindestens ein Attribut, welches nicht das Zielattribut ist, muss ausgewählt sein. Tabelle: Anforderung DV-3 Anforderung DV-4 DV-4 Beschreibung Manuelle Eingabe von Datensätze ist möglich. Priorität 2 Tabelle: Anforderung DV-4 Anforderung DV-5 DV-5 Beschreibung Datensätze können manuell verändert werden. Priorität 2 Tabelle: Anforderung DV-5 Anforderung DV-6 Beschreibung Priorität 3 DV-6 Der eingegebene oder veränderte Datensatz kann exportiert werden. Tabelle: Anforderung DV-6 76 Masterthesis Nina Rothenberg

85 B. Anforderungen Anforderung DV-7 Beschreibung Abhängigkeit Priorität 1 DV-7 Die Export-Datentypen entsprechen (mindestens) denen, die man auch importieren kann. DV-6 Tabelle: Anforderung DV-7 Anforderung DV-8 Beschreibung Priorität 2 DV-8 Pro Attribut kann ausgewählt werden, ob es nicht, manuell oder automatisch gruppiert werden soll. Tabelle: Anforderung DV-8 Anforderung DV-9 Beschreibung Abhängigkeit Priorität 1 DV-9 Attribute können manuell gruppiert werden. Eine Gruppe besteht bei nominalen Attributen aus einer Liste von möglichen Werten. Bei nummerischen Attributen besteht sie aus ein oder mehreren Intervallen. DV-8 Tabelle: Anforderung DV-9 Anforderung DV-10 Beschreibung Priorität 1 DV-10 Der Anwender kann ein Zielattribut auswählen. Es gibt immer genau ein Zielattribut. Wenn kein Zielattribut ausgewählt ist, kann die Entscheidungsbaumgenerierung nicht beginnen. Tabelle: Anforderung DV-10 Nina Rothenberg Masterthesis 77

86 B. Anforderungen B.2. Entscheidungsbaumgenerierung Anforderung EBG-1 Beschreibung Priorität 1 EBG-1 Die Anwendung soll aus einem bereitgestellten Datensatz einen Entscheidungsbaum generieren können. Tabelle: Anforderung EBG-1 Anforderung EBG-2 Beschreibung Priorität 1 EBG-2 Ein Algorithmus kann ausgewählt werden. Nach der Auswahl, werden automatisch die zum Algorithmus gehörenden Attribute, wie z. B. Split-Kriterium aus, ausgewählt. Tabelle: Anforderung EBG-2 Anforderung EBG-3 EBG-3 Beschreibung Das Split-Kriterium kann ausgewählt werden. Priorität 1 Tabelle: Anforderung EBG-3 Anforderung EBG-4 EBG-4 Beschreibung Das Stop-Kriterium kann ausgewählt werden. Priorität 1 Tabelle: Anforderung EBG-4 78 Masterthesis Nina Rothenberg

87 B. Anforderungen Anforderung EBG-5 EBG-5 Beschreibung Die Pruning-Methode kann ausgewählt werden. Priorität 1 Tabelle: Anforderung EBG-5 Anforderung EBG-6 Beschreibung Priorität 2 EBG-6 Der Umgang mit fehlenden Werten kann ausgewählt werden. Tabelle: Anforderung EBG-6 Anforderung EBG-7 Beschreibung Priorität 2 EBG-7 Die Methode zur Bestimmung von Test- und Trainingsmenge muss ausgewählt werden können. Tabelle: Anforderung EBG-7 Anforderung EBG-8 Beschreibung Priorität 2 EBG-8 Die maximale Anzahl der automatisch zu erstellenden Gruppen pro Attribut kann vom Anwender angegeben werden. Tabelle: Anforderung EBG-8 Anforderung EBG-9 EBG-9 Beschreibung Die maximale Baumtiefe kann eingegeben werden. Priorität 2 Tabelle: Anforderung EBG-9 Nina Rothenberg Masterthesis 79

88 B. Anforderungen Anforderung EBG-10 EBG-10 Beschreibung Die Eingabeparameter sind jederzeit sichtbar. Priorität 1 Tabelle: Anforderung EBG-10 Anforderung EBG-11 Beschreibung Priorität 1 EBG-11 Der generierte Entscheidungsbaum soll auf eine intuitiv verständliche Weise angezeigt werden. Tabelle: Anforderung EBG-11 Anforderung EBG-12 Beschreibung Priorität 1 EBG-12 Jeder innere Knoten wird mit dem Namen des Split- Attributes betitelt. Tabelle: Anforderung EBG-12 Anforderung EBG-13 Beschreibung Priorität 1 EBG-13 Jede Kante wird mit einem Wert bzw. einer Wertegruppe der möglichen Werte des Split-Attributes betitelt. Tabelle: Anforderung EBG Masterthesis Nina Rothenberg

89 B. Anforderungen Anforderung EBG-14 Beschreibung Priorität 1 EBG-14 Jedes Blatt wird mit dem wahrscheinlichsten Wert des Zielattributes betitelt. Tabelle: Anforderung EBG-14 Anforderung EBG-15 Beschreibung Priorität 5 EBG-15 Mehrere Entscheidungsbäume, die aufgrund von unterschiedlichen Einstellungen generiert worden sind, können gegenübergestellt werden. Tabelle: Anforderung EBG-15 Anforderung EBG-16 Beschreibung Priorität 5 EBG-16 In einer Art Debug-Modus, kann der Anwender die Generierung Schritt für Schritt verfolgen. Tabelle: Anforderung EBG-16 Anforderung EBG-17 Beschreibung Priorität 5 EBG-17 Wenn sich aus dieser Umstellung eine Kombination ergibt, die einem Algorithmus entspricht, wird dieser ebenfalls ausgewählt. Wenn kein Algorithmus passt, wird kein Algorithmus ausgewählt (eine eventuell vorherige Auswahl entfällt). Wenn mehrere Algorithmen passen, werden mehrere Algorithmen markiert. Tabelle: Anforderung EBG-17 Nina Rothenberg Masterthesis 81

90 B. Anforderungen Anforderung EBG-18 Beschreibung Priorität 1 EBG-18 Nach der Generierung des Entscheidungsbaums wird dieser grafisch angezeigt. Tabelle: Anforderung EBG-18 B.3. Erklärungskomponente Anforderung EK-1 Beschreibung Priorität 1 EK-1 Die Informationen können pro Baumelement ein- und ausgeblendet werden. Tabelle: Anforderung EK-1 Anforderung EK-2 Beschreibung EK-2 Für jeden inneren Knoten werden auf Wunsch folgende Informationen angezeigt: Split-Kriterium, nachdem das Attribut ausgewählt wurde. Ergebnisse für andere mögliche Attribute gemäß des Split-Kriteriums. Priorität 1 Tabelle: Anforderung EK-2 82 Masterthesis Nina Rothenberg

91 B. Anforderungen Anforderung EK-3 Beschreibung EK-3 Für jede Kante werden auf Wunsch folgende Informationen angezeigt: Zur Kante gehörende Werte/Intervalle des betrachteten Attributs. Gründe zur Werteauswahl. (Z. B. Grenzwerte bei Intervallen.) Priorität 1 Tabelle: Anforderung EK-3 Anforderung EK-4 Beschreibung EK-4 Für jedes Blatt werden auf Wunsch folgende Informationen angezeigt: Welches Stop-Kriterium ist aus welchem Grund erfüllt? Wert des Zielattributs und die Wahrscheinlichkeit des Wertes. Wahrscheinlichkeit anderer Werte an diesem Zielknoten. Eventuell angewandtes Pruning-Kriterium inkl. Erklärung. Priorität 1 Tabelle: Anforderung EK-4 Nina Rothenberg Masterthesis 83

92 B. Anforderungen Anforderung EK-5 Beschreibung Priorität 2 EK-5 Die Erklärungen sind als eine Art Musterlösung exportierbar. In diesem Export sind alle Informationen enthalten, auch die Eingabeparameter. Tabelle: Anforderung EK-5 Anforderung EK-6 Beschreibung Abhängigkeit Priorität 5 EK-6 Der Export kann konfiguriert werden. Das bedeutet, der Anwender kann einstellen, welche Informationen er gern in diesem Export enthalten haben möchte und welche nicht EK-4 Tabelle: Anforderung EK-6 B.4. Nichtfunktionale Anforderungen Anforderung NF-1 Beschreibung Abhängigkeit Priorität 1 NF-1 Ein neues Dateiformat für den Import eines Datensatzes kann unkompliziert hinzugefügt werden. DV-1 Tabelle: Anforderung NF-1 84 Masterthesis Nina Rothenberg

93 B. Anforderungen Anforderung NF-2 Beschreibung Abhängigkeit Priorität 1 NF-2 Ein neues Dateiformat für den Export eines Datensatzes kann unkompliziert hinzugefügt werden. DV-6 Tabelle: Anforderung NF-2 Anforderung NF-3 Beschreibung Abhängigkeit Priorität 1 NF-3 Ein neuer Algorithmus kann unkompliziert hinzugefügt werden. EBG-2 Tabelle: Anforderung NF-3 Anforderung NF-4 Beschreibung Abhängigkeit Priorität 1 NF-4 Ein neues Split-Kriterium kann unkompliziert hinzugefügt werden. EBG-3 Tabelle: Anforderung NF-4 Anforderung NF-5 Beschreibung Abhängigkeit Priorität 1 NF-5 Ein neues Stop-Kriterium kann unkompliziert hinzugefügt werden. EBG-4 Tabelle: Anforderung NF-5 Nina Rothenberg Masterthesis 85

94 B. Anforderungen Anforderung NF-6 Beschreibung Abhängigkeit Priorität 1 NF-6 Eine neue Pruning-Methode kann unkompliziert hinzugefügt werden. EBG-5 Tabelle: Anforderung NF-6 Anforderung NF-7 Beschreibung Abhängigkeit Priorität 1 NF-7 Ein neuer Umgang mit fehlenden Werten kann unkompliziert hinzugefügt werden. EBG-6 Tabelle: Anforderung NF-7 Anforderung NF-8 Beschreibung Abhängigkeit Priorität 1 NF-8 Ein neues Dateiformat für den Export von Berichten kann unkompliziert hinzugefügt werden. EK-5 Tabelle: Anforderung NF-8 Anforderung NF-9 Beschreibung Priorität 1 NF-9 Die Farben sind so zu wählen, dass farbenblinde Menschen und Menschen mit rot-grün-schwäche die verschiedenen Bereiche auseinander halten können. Auch auf schwarz/weiß-ausdrucken können alle Informationen erkannt werden. Tabelle: Anforderung NF-9 86 Masterthesis Nina Rothenberg

95 B. Anforderungen Anforderung NF-10 Beschreibung Priorität 3 NF-10 Die Schriftgröße ist verstellbar. Die Anwendung ist auch mit vergrößerter und verkleinerter Schrift noch lesbar. Tabelle: Anforderung NF-10 Nina Rothenberg Masterthesis 87

96

97 C. Tutorial C. Tutorial Dieses Tutorial beschreibt die Installation von und die ersten Schritte in DeTrIn 27. Sie ist möglichst kurz gehalten, um dem Anwender einen schnellen Einstieg zu ermöglichen. C.1. Installation Die Anwendung kann als zip-datei von der Projektseite heruntergeladen werden. Zusätzlich ist sie als zip-datei auf der beiliegenden CD-ROM (vgl. Anhang E) zu finden. Sie kann an jeder beliebigen Stelle des Dateisystems entpackt werden. Nach dem Entpacken ist die Installation abgeschlossen. In der Datei config.properties können weitere Plugin-Ordner konfiguriert werden. Standardmäßig ist der plugin-ordner auf gleicher Ebene konfiguriert, indem sich nach der Installation bereits das erste Plugin detrin-standard befindet. C.2. Quick-Start Das Programm kann über die Datei DeTrIn.jar, mit Hilfe des folgenden Befehls, gestartet werden: j a v a j a r DeTrIn. j a r Die Benutzungsoberfläche der Anwendung ist in fünf Bereiche unterteilt (vgl. Abbildung C.1). Im Folgenden werden die Bereiche kurz erklärt, um es dem Anwender leichter zu machen, das Tutorial zu verstehen: 1. Menü-Leiste Im Menü finden sich die globalen Funktionalitäten, wie z. B. Datei-Import und -Export. 27 Decision Tree Inducer (DeTrIn). Nina Rothenberg Masterthesis 89

98 C. Tutorial Abbildung C.1.: Bereiche in der Benutzungsoberfläche von DeTrIn 2. Datenvorbereitung Die Datenvorbereitung ist in zwei Bereiche gegliedert: Die Anzeige der importierten Instanzen eines Datensatzes sowie die Anzeige der Attribute. Hier können die Attribute u.a. manuell gruppiert werden. 3. Einstellungen Im Bereich Einstellungen können die Einstellungen für die Entscheidungsbaumgenerierung vorgenommen werden. Hier befindet sich auch der Button, mit dem die Generierung gestartet wird. 4. Entscheidungsbaum Der Bereich Entscheidungsbaum ist standardmäßig der größte Bereich der Benutzungsoberfläche. Hier wird der generierte Entscheidungsbaum angezeigt. 5. Erklärungen Im Bereich der Erklärungen werden die detaillierten Erklärungen des Entscheidungsbaums angezeigt. Informationen erhält man, indem man auf das gewünschte Baumelement im Bereich Entscheidungsbaum klickt. Nachdem die Benutzungsoberfläche verfügbar ist, kann der Anwender einen Datensatz importieren. Er hat dazu zwei Möglichkeiten. Entweder, er nutzt einen der Buttons in der Datenvorbereitung oder er verwendet den Menü-Eintrag (Datei > Import Datensatz). Standardmäßig 90 Masterthesis Nina Rothenberg

99 C. Tutorial wird ein Import von CSV-Dateien unterstützt. Die Struktur der zu importierenden CSV-Datei muss folgender beispielhaften Struktur entsprechen, wobei fehlende Werte einfach weggelassen werden: Attributname 1, Attributname 2, Attributname 3 Wert A1. 1, Wert A2. 1, Wert A3. 1 Wert A1. 2, Wert A2. 2, Wert A3. 2 Wert A1. 3,, Wert A Diese Struktur gleicht den exportierten weka-datensätzen, sodass diese Beispiele aus weka in DeTrIn ausgeführt werden können. Es erscheint ein Datei-Auswahl-Fenster. Dieses unterstützt nur die Dateiformate, zu denen mindestens ein FileHandler gefunden wurde. Sobald eine passende Datei ausgewählt wurde, wird diese importiert. Hierzu wird automatisch der passende FileHandler zum Dateiformat gewählt. Falls es auf Grund von mehrerer eingebundener FileHandler zu einem Format zu keiner eindeutigen Auswahl eines FileHandlers zu einer Datei kommt, wird ein Auswahlfenster angezeigt (vgl. Abbildung C.2). Abbildung C.2.: Auswahl eines FileHandlers Nach dem Import werden die Datensätze in der Datenvorbereitung angezeigt. Im zweiten Tab des Bereichs werden die Attribute angezeigt. Die Attribute können manipuliert werden. Der Anwender kann einzelne Attribute abwählen, die nicht in die Entscheidungsbaumgenerierung einfließen sollen. Hierzu kann er die Checkboxen in der linken Tabellenspalte nutzen. Zusätzlich kann die Art der Gruppierung pro Attribut ausgewählt werden. Hier hat der Anwender die Wahl zwischen Keine Gruppierung 28, manuelle Gruppierung und automatischer Gruppierung. Bei der automatischen Gruppierung übernimmt die Anwendung die Gruppierung und sucht die 28 Bei nummerischen Attributen bedeutet dies, dass sie wie nominale Attribute behandelt werden Nina Rothenberg Masterthesis 91

Begriffsbestimmung CRISP-DM-Modell Betriebswirtschaftliche Einsatzgebiete des Data Mining Web Mining und Text Mining

Begriffsbestimmung CRISP-DM-Modell Betriebswirtschaftliche Einsatzgebiete des Data Mining Web Mining und Text Mining Gliederung 1. Einführung 2. Grundlagen Data Mining Begriffsbestimmung CRISP-DM-Modell Betriebswirtschaftliche Einsatzgebiete des Data Mining Web Mining und Text Mining 3. Ausgewählte Methoden des Data

Mehr

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes.

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes. Binäre Bäume Definition: Ein binärer Baum T besteht aus einer Menge von Knoten, die durch eine Vater-Kind-Beziehung wie folgt strukturiert ist: 1. Es gibt genau einen hervorgehobenen Knoten r T, die Wurzel

Mehr

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als

Mehr

Kapiteltests zum Leitprogramm Binäre Suchbäume

Kapiteltests zum Leitprogramm Binäre Suchbäume Kapiteltests zum Leitprogramm Binäre Suchbäume Björn Steffen Timur Erdag überarbeitet von Christina Class Binäre Suchbäume Kapiteltests für das ETH-Leitprogramm Adressaten und Institutionen Das Leitprogramm

Mehr

Künstliche Intelligenz Maschinelles Lernen

Künstliche Intelligenz Maschinelles Lernen Künstliche Intelligenz Maschinelles Lernen Stephan Schwiebert Sommersemester 2009 Sprachliche Informationsverarbeitung Institut für Linguistik Universität zu Köln Maschinelles Lernen Überwachtes Lernen

Mehr

Zeichen bei Zahlen entschlüsseln

Zeichen bei Zahlen entschlüsseln Zeichen bei Zahlen entschlüsseln In diesem Kapitel... Verwendung des Zahlenstrahls Absolut richtige Bestimmung von absoluten Werten Operationen bei Zahlen mit Vorzeichen: Addieren, Subtrahieren, Multiplizieren

Mehr

4. Lernen von Entscheidungsbäumen. Klassifikation mit Entscheidungsbäumen. Entscheidungsbaum

4. Lernen von Entscheidungsbäumen. Klassifikation mit Entscheidungsbäumen. Entscheidungsbaum 4. Lernen von Entscheidungsbäumen Klassifikation mit Entscheidungsbäumen Gegeben sei eine Menge von Objekten, die durch /Wert- Paare beschrieben sind. Jedes Objekt kann einer Klasse zugeordnet werden.

Mehr

3. Entscheidungsbäume. Verfahren zum Begriffslernen (Klassifikation) Beispiel: weiteres Beispiel: (aus Böhm 2003) (aus Morik 2002)

3. Entscheidungsbäume. Verfahren zum Begriffslernen (Klassifikation) Beispiel: weiteres Beispiel: (aus Böhm 2003) (aus Morik 2002) 3. Entscheidungsbäume Verfahren zum Begriffslernen (Klassifikation) Beispiel: weiteres Beispiel: (aus Böhm 2003) (aus Morik 2002) (aus Wilhelm 2001) Beispiel: (aus Böhm 2003) Wann sind Entscheidungsbäume

Mehr

Studieren- Erklärungen und Tipps

Studieren- Erklärungen und Tipps Studieren- Erklärungen und Tipps Es gibt Berufe, die man nicht lernen kann, sondern für die man ein Studium machen muss. Das ist zum Beispiel so wenn man Arzt oder Lehrer werden möchte. Hat ihr Kind das

Mehr

Um zusammenfassende Berichte zu erstellen, gehen Sie folgendermaßen vor:

Um zusammenfassende Berichte zu erstellen, gehen Sie folgendermaßen vor: Ergebnisreport: mehrere Lehrveranstaltungen zusammenfassen 1 1. Ordner anlegen In der Rolle des Berichterstellers (siehe EvaSys-Editor links oben) können zusammenfassende Ergebnisberichte über mehrere

Mehr

Die Lernumgebung des Projekts Informationskompetenz

Die Lernumgebung des Projekts Informationskompetenz Beitrag für Bibliothek aktuell Die Lernumgebung des Projekts Informationskompetenz Von Sandra Merten Im Rahmen des Projekts Informationskompetenz wurde ein Musterkurs entwickelt, der den Lehrenden als

Mehr

Jan Parthey, Christin Seifert. 22. Mai 2003

Jan Parthey, Christin Seifert. 22. Mai 2003 Simulation Rekursiver Auto-Assoziativer Speicher (RAAM) durch Erweiterung eines klassischen Backpropagation-Simulators Jan Parthey, Christin Seifert jpar@hrz.tu-chemnitz.de, sech@hrz.tu-chemnitz.de 22.

Mehr

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress.

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress. Anmeldung http://www.ihredomain.de/wp-admin Dashboard Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress. Das Dashboard gibt Ihnen eine kurze Übersicht, z.b. Anzahl der Beiträge,

Mehr

1 topologisches Sortieren

1 topologisches Sortieren Wolfgang Hönig / Andreas Ecke WS 09/0 topologisches Sortieren. Überblick. Solange noch Knoten vorhanden: a) Suche Knoten v, zu dem keine Kante führt (Falls nicht vorhanden keine topologische Sortierung

Mehr

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten Das große x -4 Alles über das Wer kann beantragen? Generell kann jeder beantragen! Eltern (Mütter UND Väter), die schon während ihrer Elternzeit wieder in Teilzeit arbeiten möchten. Eltern, die während

Mehr

1 Mathematische Grundlagen

1 Mathematische Grundlagen Mathematische Grundlagen - 1-1 Mathematische Grundlagen Der Begriff der Menge ist einer der grundlegenden Begriffe in der Mathematik. Mengen dienen dazu, Dinge oder Objekte zu einer Einheit zusammenzufassen.

Mehr

Elexis-BlueEvidence-Connector

Elexis-BlueEvidence-Connector Elexis-BlueEvidence-Connector Gerry Weirich 26. Oktober 2012 1 Einführung Dieses Plugin dient dazu, den Status Hausarztpatient zwischen der BlueEvidence- Anwendung und Elexis abzugleichen. Das Plugin markiert

Mehr

Data Mining und maschinelles Lernen

Data Mining und maschinelles Lernen Data Mining und maschinelles Lernen Einführung und Anwendung mit WEKA Caren Brinckmann 16. August 2000 http://www.coli.uni-sb.de/~cabr/vortraege/ml.pdf http://www.cs.waikato.ac.nz/ml/weka/ Inhalt Einführung:

Mehr

Ist Excel das richtige Tool für FMEA? Steve Murphy, Marc Schaeffers

Ist Excel das richtige Tool für FMEA? Steve Murphy, Marc Schaeffers Ist Excel das richtige Tool für FMEA? Steve Murphy, Marc Schaeffers Ist Excel das richtige Tool für FMEA? Einleitung Wenn in einem Unternehmen FMEA eingeführt wird, fangen die meisten sofort damit an,

Mehr

Grundlagen der Theoretischen Informatik, SoSe 2008

Grundlagen der Theoretischen Informatik, SoSe 2008 1. Aufgabenblatt zur Vorlesung Grundlagen der Theoretischen Informatik, SoSe 2008 (Dr. Frank Hoffmann) Lösung von Manuel Jain und Benjamin Bortfeldt Aufgabe 2 Zustandsdiagramme (6 Punkte, wird korrigiert)

Mehr

Dokumentation Datamining

Dokumentation Datamining Hochschule Wismar University of Applied Sciences Technology, Business and Design Fakultät für Ingenieurwissenschaften, Bereich EuI Dokumentation Datamining Eingereicht am: 13. Mai 2012 von: Karsten Diepelt

Mehr

1 E - L E A R N I N G - F O R M E N U N D VA R I A N T E N

1 E - L E A R N I N G - F O R M E N U N D VA R I A N T E N 1 E - L E A R N I N G - F O R M E N U N D VA R I A N T E N E-Learning ist heute als Form der Weiterbildung in weitem Maße anerkannt. In der praktischen Umsetzung wird der Begriff E-Learning als Sammelbegriff

Mehr

Artikel Schnittstelle über CSV

Artikel Schnittstelle über CSV Artikel Schnittstelle über CSV Sie können Artikeldaten aus Ihrem EDV System in das NCFOX importieren, dies geschieht durch eine CSV Schnittstelle. Dies hat mehrere Vorteile: Zeitersparnis, die Karteikarte

Mehr

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum C A R L V O N O S S I E T Z K Y Agile Vorgehensmodelle in der Softwareentwicklung: Scrum Johannes Diemke Vortrag im Rahmen der Projektgruppe Oldenburger Robot Soccer Team im Wintersemester 2009/2010 Was

Mehr

Prozessbewertung und -verbesserung nach ITIL im Kontext des betrieblichen Informationsmanagements. von Stephanie Wilke am 14.08.08

Prozessbewertung und -verbesserung nach ITIL im Kontext des betrieblichen Informationsmanagements. von Stephanie Wilke am 14.08.08 Prozessbewertung und -verbesserung nach ITIL im Kontext des betrieblichen Informationsmanagements von Stephanie Wilke am 14.08.08 Überblick Einleitung Was ist ITIL? Gegenüberstellung der Prozesse Neuer

Mehr

Das Pflichtenheft. Dipl.- Ing. Dipl.-Informatiker Dieter Klapproth Ains A-Systemhaus GmbH Berlin

Das Pflichtenheft. Dipl.- Ing. Dipl.-Informatiker Dieter Klapproth Ains A-Systemhaus GmbH Berlin Fragestellungen: Warum reicht das Lastenheft nicht aus? Was kann ich mit dem Lastenheft machen? Was unterscheidet das Pflichtenheft vom Lastenheft? Was gehört zum Auftragsumfang einer Individualsoftware?

Mehr

Data Mining-Projekte

Data Mining-Projekte Data Mining-Projekte Data Mining-Projekte Data Mining stellt normalerweise kein ei nmaliges Projekt dar, welches Erkenntnisse liefert, die dann nur einmal verwendet werden, sondern es soll gewöhnlich ein

Mehr

Task: Nmap Skripte ausführen

Task: Nmap Skripte ausführen Task: Nmap Skripte ausführen Inhalt Einfache Netzwerkscans mit NSE Ausführen des Scans Anpassung der Parameter Einleitung Copyright 2009-2015 Greenbone Networks GmbH Herkunft und aktuellste Version dieses

Mehr

Mining High-Speed Data Streams

Mining High-Speed Data Streams Mining High-Speed Data Streams Pedro Domingos & Geoff Hulten Departement of Computer Science & Engineering University of Washington Datum : 212006 Seminar: Maschinelles Lernen und symbolische Ansätze Vortragender:

Mehr

SDD System Design Document

SDD System Design Document SDD Software Konstruktion WS01/02 Gruppe 4 1. Einleitung Das vorliegende Dokument richtet sich vor allem an die Entwickler, aber auch an den Kunden, der das enstehende System verwenden wird. Es soll einen

Mehr

Step by Step Webserver unter Windows Server 2003. von Christian Bartl

Step by Step Webserver unter Windows Server 2003. von Christian Bartl Step by Step Webserver unter Windows Server 2003 von Webserver unter Windows Server 2003 Um den WWW-Server-Dienst IIS (Internet Information Service) zu nutzen muss dieser zunächst installiert werden (wird

Mehr

6. Bayes-Klassifikation. (Schukat-Talamazzini 2002)

6. Bayes-Klassifikation. (Schukat-Talamazzini 2002) 6. Bayes-Klassifikation (Schukat-Talamazzini 2002) (Böhm 2003) (Klawonn 2004) Der Satz von Bayes: Beweis: Klassifikation mittels des Satzes von Bayes (Klawonn 2004) Allgemeine Definition: Davon zu unterscheiden

Mehr

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

Suche schlecht beschriftete Bilder mit Eigenen Abfragen Suche schlecht beschriftete Bilder mit Eigenen Abfragen Ist die Bilderdatenbank über einen längeren Zeitraum in Benutzung, so steigt die Wahrscheinlichkeit für schlecht beschriftete Bilder 1. Insbesondere

Mehr

Anmerkungen zur Übergangsprüfung

Anmerkungen zur Übergangsprüfung DM11 Slide 1 Anmerkungen zur Übergangsprüfung Aufgabeneingrenzung Aufgaben des folgenden Typs werden wegen ihres Schwierigkeitsgrads oder wegen eines ungeeigneten fachlichen Schwerpunkts in der Übergangsprüfung

Mehr

Datenübernahme von HKO 5.9 zur. Advolux Kanzleisoftware

Datenübernahme von HKO 5.9 zur. Advolux Kanzleisoftware Datenübernahme von HKO 5.9 zur Advolux Kanzleisoftware Die Datenübernahme (DÜ) von HKO 5.9 zu Advolux Kanzleisoftware ist aufgrund der von Update zu Update veränderten Datenbank (DB)-Strukturen in HKO

Mehr

Data Mining: Einige Grundlagen aus der Stochastik

Data Mining: Einige Grundlagen aus der Stochastik Data Mining: Einige Grundlagen aus der Stochastik Hagen Knaf Studiengang Angewandte Mathematik Hochschule RheinMain 21. Oktober 2015 Vorwort Das vorliegende Skript enthält eine Zusammenfassung verschiedener

Mehr

In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können.

In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können. Tutorial: Wie erfasse ich einen Termin? In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können. Neben den allgemeinen Angaben zu einem

Mehr

Vorlesungsplan. Von Naïve Bayes zu Bayesischen Netzwerk- Klassifikatoren. Naïve Bayes. Bayesische Netzwerke

Vorlesungsplan. Von Naïve Bayes zu Bayesischen Netzwerk- Klassifikatoren. Naïve Bayes. Bayesische Netzwerke Vorlesungsplan 17.10. Einleitung 24.10. Ein- und Ausgabe 31.10. Reformationstag, Einfache Regeln 7.11. Naïve Bayes, Entscheidungsbäume 14.11. Entscheidungsregeln, Assoziationsregeln 21.11. Lineare Modelle,

Mehr

Guide DynDNS und Portforwarding

Guide DynDNS und Portforwarding Guide DynDNS und Portforwarding Allgemein Um Geräte im lokalen Netzwerk von überall aus über das Internet erreichen zu können, kommt man um die Themen Dynamik DNS (kurz DynDNS) und Portweiterleitung(auch

Mehr

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken. Seite erstellen Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken. Es öffnet sich die Eingabe Seite um eine neue Seite zu erstellen. Seiten Titel festlegen Den neuen

Mehr

Projektmanagement in der Spieleentwicklung

Projektmanagement in der Spieleentwicklung Projektmanagement in der Spieleentwicklung Inhalt 1. Warum brauche ich ein Projekt-Management? 2. Die Charaktere des Projektmanagement - Mastermind - Producer - Projektleiter 3. Schnittstellen definieren

Mehr

Wichtig ist die Originalsatzung. Nur was in der Originalsatzung steht, gilt. Denn nur die Originalsatzung wurde vom Gericht geprüft.

Wichtig ist die Originalsatzung. Nur was in der Originalsatzung steht, gilt. Denn nur die Originalsatzung wurde vom Gericht geprüft. Das ist ein Text in leichter Sprache. Hier finden Sie die wichtigsten Regeln für den Verein zur Förderung der Autonomie Behinderter e. V.. Das hier ist die Übersetzung der Originalsatzung. Es wurden nur

Mehr

FastBill Automatic. Dokumentation Versand. FastBill GmbH. Holteyer Straße 30 45289 Essen Telefon 0201 47091505 Telefax 0201 54502360

FastBill Automatic. Dokumentation Versand. FastBill GmbH. Holteyer Straße 30 45289 Essen Telefon 0201 47091505 Telefax 0201 54502360 FastBill GmbH Holteyer Straße 30 45289 Essen Telefon 0201 47091505 Telefax 0201 54502360 FastBill Automatic Dokumentation Versand 1 Inhaltsverzeichnis: 1. Grundlegendes 2. Produkteinstellungen 2.1. Grundeinstellungen

Mehr

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken Dateiname: ecdl5_01_00_documentation_standard.doc Speicherdatum: 14.02.2005 ECDL 2003 Basic Modul 5 Datenbank - Grundlagen

Mehr

«/Mehrere Umfragen in einer Umfrage durchführen» Anleitung

«/Mehrere Umfragen in einer Umfrage durchführen» Anleitung QuickStart «/Mehrere Umfragen in einer Umfrage durchführen» Anleitung Mehrere Umfragen in einer Umfrage durchführen Mögliches Szenario oder wann Sie davon Gebrauch machen können Sie führen regelmässig

Mehr

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3 Handbuch Fischertechnik-Einzelteiltabelle V3.7.3 von Markus Mack Stand: Samstag, 17. April 2004 Inhaltsverzeichnis 1. Systemvorraussetzungen...3 2. Installation und Start...3 3. Anpassen der Tabelle...3

Mehr

Anleitung RÄUME BUCHEN MIT OUTLOOK FÜR VERWALTUNGSANGESTELLTE

Anleitung RÄUME BUCHEN MIT OUTLOOK FÜR VERWALTUNGSANGESTELLTE Anleitung RÄUME BUCHEN MIT OUTLOOK FÜR VERWALTUNGSANGESTELLTE Dezernat 6 Abteilung 4 Stand: 14.Oktober 2014 Inhalt 1. Einleitung 3 2. Räume & gemeinsame Termine finden 3 3. Rüstzeit 8 4. FAQ: Oft gestellte

Mehr

Ihre Interessentendatensätze bei inobroker. 1. Interessentendatensätze

Ihre Interessentendatensätze bei inobroker. 1. Interessentendatensätze Ihre Interessentendatensätze bei inobroker Wenn Sie oder Ihre Kunden die Prozesse von inobroker nutzen, werden Interessentendatensätze erzeugt. Diese können Sie direkt über inobroker bearbeiten oder mit

Mehr

Welche Unterschiede gibt es zwischen einem CAPAund einem Audiometrie- Test?

Welche Unterschiede gibt es zwischen einem CAPAund einem Audiometrie- Test? Welche Unterschiede gibt es zwischen einem CAPAund einem Audiometrie- Test? Auch wenn die Messungsmethoden ähnlich sind, ist das Ziel beider Systeme jedoch ein anderes. Gwenolé NEXER g.nexer@hearin gp

Mehr

LinguLab GmbH. Bedienungsanleitung Allgemeine Definition

LinguLab GmbH. Bedienungsanleitung Allgemeine Definition LinguLab GmbH Bedienungsanleitung Allgemeine Definition LinguLab GmbH T: +49.711.49030.370 Maybachstr. 50 F: +49.711.49030.22.370 70469 Stuttgart E: mba@lingulab.de I: www.lingulab.de Inhaltsverzeichnis

Mehr

Data Mining-Modelle und -Algorithmen

Data Mining-Modelle und -Algorithmen Data Mining-Modelle und -Algorithmen Data Mining-Modelle und -Algorithmen Data Mining ist ein Prozess, bei dem mehrere Komponenten i n- teragieren. Sie greifen auf Datenquellen, um diese zum Training,

Mehr

Anhand des bereits hergeleiteten Models erstellen wir nun mit der Formel

Anhand des bereits hergeleiteten Models erstellen wir nun mit der Formel Ausarbeitung zum Proseminar Finanzmathematische Modelle und Simulationen bei Raphael Kruse und Prof. Dr. Wolf-Jürgen Beyn zum Thema Simulation des Anlagenpreismodels von Simon Uphus im WS 09/10 Zusammenfassung

Mehr

Güte von Tests. die Wahrscheinlichkeit für den Fehler 2. Art bei der Testentscheidung, nämlich. falsch ist. Darauf haben wir bereits im Kapitel über

Güte von Tests. die Wahrscheinlichkeit für den Fehler 2. Art bei der Testentscheidung, nämlich. falsch ist. Darauf haben wir bereits im Kapitel über Güte von s Grundlegendes zum Konzept der Güte Ableitung der Gütefunktion des Gauss im Einstichprobenproblem Grafische Darstellung der Gütefunktionen des Gauss im Einstichprobenproblem Ableitung der Gütefunktion

Mehr

15 Optimales Kodieren

15 Optimales Kodieren 15 Optimales Kodieren Es soll ein optimaler Kodierer C(T ) entworfen werden, welcher eine Information (z.b. Text T ) mit möglichst geringer Bitanzahl eindeutig überträgt. Die Anforderungen an den optimalen

Mehr

Hin zum perfekten Preis

Hin zum perfekten Preis Hin zum perfekten Preis Ein Blick auf den Preis entscheidet oft darüber, ob ein Besucher Ihres Inserats sich weiterhin für Ihr Angebot interessiert oder nicht. Entscheidend ist nicht nur die Höhe der angegebenen

Mehr

Erfolg und Vermögensrückgänge angefertigt im Rahmen der Lehrveranstaltung Nachrichtentechnik von: Eric Hansen, eric-hansen@gmx.de am: 07.09.

Erfolg und Vermögensrückgänge angefertigt im Rahmen der Lehrveranstaltung Nachrichtentechnik von: Eric Hansen, eric-hansen@gmx.de am: 07.09. Abstract zum Thema Handelssysteme Erfolg und Vermögensrückgänge angefertigt im Rahmen der Lehrveranstaltung Nachrichtentechnik von: Eric Hansen, eric-hansen@gmx.de am: 07.09.01 Einleitung: Handelssysteme

Mehr

Access [basics] Gruppierungen in Abfragen. Beispieldatenbank. Abfragen gruppieren. Artikel pro Kategorie zählen

Access [basics] Gruppierungen in Abfragen. Beispieldatenbank. Abfragen gruppieren. Artikel pro Kategorie zählen Abfragen lassen sich längst nicht nur dazu benutzen, die gewünschten Felder oder Datensätze einer oder mehrerer Tabellen darzustellen. Sie können Daten auch nach bestimmten Kriterien zu Gruppen zusammenfassen

Mehr

Übungen zur Softwaretechnik

Übungen zur Softwaretechnik Technische Universität München Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering Markus Pister, Dr. Bernhard Rumpe WS 2002/2003 Lösungsblatt 9 17. Dezember 2002 www4.in.tum.de/~rumpe/se

Mehr

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster Es gibt in Excel unter anderem die so genannten Suchfunktionen / Matrixfunktionen Damit können Sie Werte innerhalb eines bestimmten Bereichs suchen. Als Beispiel möchte ich die Funktion Sverweis zeigen.

Mehr

Methoden der Datenanalyse AI-basierte Decision Support Systeme WS 2006/07

Methoden der Datenanalyse AI-basierte Decision Support Systeme WS 2006/07 Regression Trees Methoden der Datenanalyse AI-basierte Decision Support Systeme WS 2006/07 Ao.Univ.Prof. Dr. Marcus Hudec marcus.hudec@univie.ac.at Institut für Scientific Computing, Universität Wien 2

Mehr

euro-bis Import von Bestellungen aus Buch- und Aboauskunft Stand 22.02.2007

euro-bis Import von Bestellungen aus Buch- und Aboauskunft Stand 22.02.2007 euro-bis Import von Bestellungen aus Buch- und Aboauskunft Stand 22.02.2007 INHALTSVERZEICHNIS Konfiguration... 3 Buch- und Aboauskunft... 3 euro-bis... 3 Aufträge einlesen... 5 Kundendaten prüfen... 6

Mehr

Softwareentwicklungspraktikum Sommersemester 2007. Grobentwurf

Softwareentwicklungspraktikum Sommersemester 2007. Grobentwurf Softwareentwicklungspraktikum Sommersemester 2007 Grobentwurf Auftraggeber Technische Universität Braunschweig

Mehr

Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me

Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me Bevor Sie die Platte zum ersten Mal benutzen können, muss sie noch partitioniert und formatiert werden! Vorher zeigt sich die Festplatte

Mehr

Funktionsbeschreibung. Lieferantenbewertung. von IT Consulting Kauka GmbH

Funktionsbeschreibung. Lieferantenbewertung. von IT Consulting Kauka GmbH Funktionsbeschreibung Lieferantenbewertung von IT Consulting Kauka GmbH Stand 16.02.2010 odul LBW Das Modul LBW... 3 1. Konfiguration... 4 1.1 ppm... 4 1.2 Zertifikate... 5 1.3 Reklamationsverhalten...

Mehr

Anleitung zum erfassen von Last Minute Angeboten und Stellenangebote

Anleitung zum erfassen von Last Minute Angeboten und Stellenangebote Anleitung zum erfassen von Last Minute Angeboten und Stellenangebote Zweck dieser Anleitung ist es einen kleinen Überblick über die Funktion Last Minute auf Swisshotelportal zu erhalten. Für das erstellen

Mehr

impact ordering Info Produktkonfigurator

impact ordering Info Produktkonfigurator impact ordering Info Copyright Copyright 2013 veenion GmbH Alle Rechte vorbehalten. Kein Teil der Dokumentation darf in irgendeiner Form ohne schriftliche Genehmigung der veenion GmbH reproduziert, verändert

Mehr

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik Theoretische Grundlagen der Informatik Vorlesung am 12.01.2012 INSTITUT FÜR THEORETISCHE 0 KIT 12.01.2012 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen der Informatik

Mehr

Ein PDF erstellen. aus Adobe InDesign CC. Langner Marketing Unternehmensplanung Metzgerstraße 59 72764 Reutlingen

Ein PDF erstellen. aus Adobe InDesign CC. Langner Marketing Unternehmensplanung Metzgerstraße 59 72764 Reutlingen aus Adobe InDesign CC Langner Marketing Unternehmensplanung Metzgerstraße 59 72764 Reutlingen T 0 71 21 / 2 03 89-0 F 0 71 21 / 2 03 89-20 www.langner-beratung.de info@langner-beratung.de Über Datei >

Mehr

Kapitel 3 Frames Seite 1

Kapitel 3 Frames Seite 1 Kapitel 3 Frames Seite 1 3 Frames 3.1 Allgemeines Mit Frames teilt man eine HTML-Seite in mehrere Bereiche ein. Eine Seite, die mit Frames aufgeteilt ist, besteht aus mehreren Einzelseiten, die sich den

Mehr

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders

Mehr

Folge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12

Folge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12 Grundlagen: Folge 19 - Bäume 19.1 Binärbäume - Allgemeines Unter Bäumen versteht man in der Informatik Datenstrukturen, bei denen jedes Element mindestens zwei Nachfolger hat. Bereits in der Folge 17 haben

Mehr

Tutorial: Homogenitätstest

Tutorial: Homogenitätstest Tutorial: Homogenitätstest Eine Bank möchte die Kreditwürdigkeit potenzieller Kreditnehmer abschätzen. Einerseits lebt die Bank ja von der Vergabe von Krediten, andererseits verursachen Problemkredite

Mehr

riskkv Scorenalyse riskkv Scoring Seite 1 von 9

riskkv Scorenalyse riskkv Scoring Seite 1 von 9 riskkv Scorenalyse riskkv Scoring Seite 1 von 9 Das Modul dient der flexiblen Erstellung, Auswertung und Verwendung von Scores. Durch vordefinierte Templates können in einer Einklicklösung bspw. versichertenbezogene

Mehr

Verschlüsseln Sie Ihre Dateien lückenlos Verwenden Sie TrueCrypt, um Ihre Daten zu schützen.

Verschlüsseln Sie Ihre Dateien lückenlos Verwenden Sie TrueCrypt, um Ihre Daten zu schützen. HACK #39 Hack Verschlüsseln Sie Ihre Dateien lückenlos Verwenden Sie TrueCrypt, um Ihre Daten zu schützen.»verschlüsseln Sie Ihren Temp-Ordner«[Hack #33] hat Ihnen gezeigt, wie Sie Ihre Dateien mithilfe

Mehr

Kommunikations-Management

Kommunikations-Management Tutorial: Wie kann ich E-Mails schreiben? Im vorliegenden Tutorial lernen Sie, wie Sie in myfactory E-Mails schreiben können. In myfactory können Sie jederzeit schnell und einfach E-Mails verfassen egal

Mehr

Software Engineering. Sommersemester 2012, Dr. Andreas Metzger

Software Engineering. Sommersemester 2012, Dr. Andreas Metzger Software Engineering (Übungsblatt 2) Sommersemester 2012, Dr. Andreas Metzger Übungsblatt-Themen: Prinzip, Technik, Methode und Werkzeug; Arten von Wartung; Modularität (Kohäsion/ Kopplung); Inkrementelle

Mehr

Generelle Einstellungen

Generelle Einstellungen Wie in fast jedem Programm sind auch in work4all ganz grundlegende Einstellungen und Programm- Anpassungen möglich. In diesem Kapitel gehen wir auf die verschiedenen Konfigurationsmöglichkeiten innerhalb

Mehr

Ausarbeitung des Seminarvortrags zum Thema

Ausarbeitung des Seminarvortrags zum Thema Ausarbeitung des Seminarvortrags zum Thema Anlagepreisbewegung zum Seminar Finanzmathematische Modelle und Simulationen bei Raphael Kruse und Prof. Dr. Wolf-Jürgen Beyn von Imke Meyer im W9/10 Anlagepreisbewegung

Mehr

1. Software installieren 2. Software starten. Hilfe zum Arbeiten mit der DÖHNERT FOTOBUCH Software

1. Software installieren 2. Software starten. Hilfe zum Arbeiten mit der DÖHNERT FOTOBUCH Software 1. Software installieren 2. Software starten Hilfe zum Arbeiten mit der DÖHNERT FOTOBUCH Software 3. Auswahl 1. Neues Fotobuch erstellen oder 2. ein erstelltes, gespeichertes Fotobuch laden und bearbeiten.

Mehr

Dokumentation für die software für zahnärzte der procedia GmbH Onlinedokumentation

Dokumentation für die software für zahnärzte der procedia GmbH Onlinedokumentation Dokumentation für die software für zahnärzte der procedia GmbH Onlinedokumentation (Bei Abweichungen, die bspw. durch technischen Fortschritt entstehen können, ziehen Sie bitte immer das aktuelle Handbuch

Mehr

Dokumentation von Ük Modul 302

Dokumentation von Ük Modul 302 Dokumentation von Ük Modul 302 Von Nicolas Kull Seite 1/ Inhaltsverzeichnis Dokumentation von Ük Modul 302... 1 Inhaltsverzeichnis... 2 Abbildungsverzeichnis... 3 Typographie (Layout)... 4 Schrift... 4

Mehr

Anwendungsbeispiele Buchhaltung

Anwendungsbeispiele Buchhaltung Kostenstellen in Webling Webling ist ein Produkt der Firma: Inhaltsverzeichnis 1 Kostenstellen 1.1 Was sind Kostenstellen? 1.2 Kostenstellen in der 2 Kostenstellen in Webling 2.1 Kostenstellen erstellen

Mehr

Datenübernahme easyjob 3.0 zu easyjob 4.0

Datenübernahme easyjob 3.0 zu easyjob 4.0 Datenübernahme easyjob 3.0 zu easyjob 4.0 Einführung...3 Systemanforderung easyjob 4.0...3 Vorgehensweise zur Umstellung zu easyjob 4.0...4 Installation easyjob 4.0 auf dem Server und Arbeitsstationen...4

Mehr

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0) Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0) Peter Koos 03. Dezember 2015 0 Inhaltsverzeichnis 1 Voraussetzung... 3 2 Hintergrundinformationen... 3 2.1 Installationsarten...

Mehr

Erfolgreiche Webseiten: Zur Notwendigkeit die eigene(n) Zielgruppe(n) zu kennen und zu verstehen!

Erfolgreiche Webseiten: Zur Notwendigkeit die eigene(n) Zielgruppe(n) zu kennen und zu verstehen! Erfolgreiche Webseiten: Zur Notwendigkeit die eigene(n) Zielgruppe(n) zu kennen und zu verstehen! www.wee24.de. info@wee24.de. 08382 / 6040561 1 Experten sprechen Ihre Sprache. 2 Unternehmenswebseiten

Mehr

Lineare Gleichungssysteme

Lineare Gleichungssysteme Lineare Gleichungssysteme 1 Zwei Gleichungen mit zwei Unbekannten Es kommt häufig vor, dass man nicht mit einer Variablen alleine auskommt, um ein Problem zu lösen. Das folgende Beispiel soll dies verdeutlichen

Mehr

OS Anwendungsbeschreibung

OS Anwendungsbeschreibung Inhalt Einleitung... 2 Start des Programms... 2 Scannen einer neuen Zeitungsseite... 4 Presse-Clipping... 8 Artikel ausschneiden und bearbeiten... 11 Übernahme aus der Zwischenablage... 19 Ausdruck in

Mehr

Kostenstellen verwalten. Tipps & Tricks

Kostenstellen verwalten. Tipps & Tricks Tipps & Tricks INHALT SEITE 1.1 Kostenstellen erstellen 3 13 1.3 Zugriffsberechtigungen überprüfen 30 2 1.1 Kostenstellen erstellen Mein Profil 3 1.1 Kostenstellen erstellen Kostenstelle(n) verwalten 4

Mehr

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage: Zählen und Zahlbereiche Übungsblatt 1 1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage: Für alle m, n N gilt m + n = n + m. in den Satz umschreiben:

Mehr

WordPress. Dokumentation

WordPress. Dokumentation WordPress Dokumentation Backend-Login In das Backend gelangt man, indem man hinter seiner Website-URL einfach ein /wp-admin dranhängt www.domain.tld/wp-admin Dabei gelangt man auf die Administrationsoberfläche,

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Dipl. Inform. Andreas Wilkens 1 Organisatorisches Freitag, 05. Mai 2006: keine Vorlesung! aber Praktikum von 08.00 11.30 Uhr (Gruppen E, F, G, H; Vortestat für Prototyp)

Mehr

Die Softwareentwicklungsphasen!

Die Softwareentwicklungsphasen! Softwareentwicklung Die Softwareentwicklungsphasen! Die Bezeichnungen der Phasen sind keine speziellen Begriffe der Informatik, sondern den allgemeinen Prinzipien zur Produktion integrierter Systeme entliehen.

Mehr

Kara-Programmierung AUFGABENSTELLUNG LERNPARCOURS. Abb. 1: Programmfenster. Welt neu erstellen; öffnen; erneut öffnen; speichern; speichern unter

Kara-Programmierung AUFGABENSTELLUNG LERNPARCOURS. Abb. 1: Programmfenster. Welt neu erstellen; öffnen; erneut öffnen; speichern; speichern unter Kara-Programmierung AUFGABENSTELLUNG LERNPARCOURS Abb. 1: Programmfenster Welt neu erstellen; öffnen; erneut öffnen; speichern; speichern unter Programmfenster anzeigen Einstellungen öffnen Kara direkt

Mehr

Wie wird ein Jahreswechsel (vorläufig und endgültig) ausgeführt?

Wie wird ein Jahreswechsel (vorläufig und endgültig) ausgeführt? Wie wird ein (vorläufig und endgültig) ausgeführt? VORLÄUFIGER JAHRESWECHSEL Führen Sie unbedingt vor dem eine aktuelle Datensicherung durch. Einleitung Ein vorläufiger Jahresabschluss wird durchgeführt,

Mehr

Hochschulrechenzentrum

Hochschulrechenzentrum #91 Version 5 Um Ihre E-Mails über den Mailserver der ZEDAT herunterzuladen oder zu versenden, können Sie das Mailprogramm Thunderbird von Mozilla verwenden. Die folgende bebilderte Anleitung demonstriert

Mehr

M. Graefenhan 2000-12-07. Übungen zu C. Blatt 3. Musterlösung

M. Graefenhan 2000-12-07. Übungen zu C. Blatt 3. Musterlösung M. Graefenhan 2000-12-07 Aufgabe Lösungsweg Übungen zu C Blatt 3 Musterlösung Schreiben Sie ein Programm, das die Häufigkeit von Zeichen in einem eingelesenen String feststellt. Benutzen Sie dazu ein zweidimensionales

Mehr

Erstellen einer PostScript-Datei unter Windows XP

Erstellen einer PostScript-Datei unter Windows XP Erstellen einer PostScript-Datei unter Windows XP Sie möchten uns Ihre Druckvorlage als PostScript-Datei einreichen. Um Fehler in der Herstellung von vorneherein auszuschließen, möchten wir Sie bitten,

Mehr