RapidMiner im akademischen Einsatz - Documentation - Rapid
RapidMiner im akademischen Einsatz - Documentation - Rapid
RapidMiner im akademischen Einsatz - Documentation - Rapid
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Sebastian Land, S<strong>im</strong>on Fischer<br />
<strong><strong>Rapid</strong>Miner</strong> 5<br />
<strong><strong>Rapid</strong>Miner</strong> <strong>im</strong> <strong>akademischen</strong><br />
<strong>Einsatz</strong>
Sebastian Land, S<strong>im</strong>on Fischer<br />
<strong><strong>Rapid</strong>Miner</strong> 5<br />
<strong><strong>Rapid</strong>Miner</strong> <strong>im</strong> <strong>akademischen</strong> <strong>Einsatz</strong><br />
27. August 2012<br />
<strong>Rapid</strong>-I<br />
www.rapid-i.com
Dieses Werk ist urheberreichtlich geschützt. Alle Rechte, auch die der Übersetzung,<br />
des Nachdrucks und der Vervielfältigung des Buches, oder Teilen daraus,<br />
vorbehalten. Kein Teil des Werkes darf ohne schriftliche Genehmigung in irgendeiner<br />
Form reproduziert oder unter Verwendung elektronischer Systeme verarbeitet,<br />
vervielfältigt oder verbreitet werden.<br />
Copyright © 2012 <strong>Rapid</strong>-I
Vorwort<br />
<strong><strong>Rapid</strong>Miner</strong> ist eine der weltweit meistverbreiteten eingesetzten Open-Source<br />
Data-Mining-Lösungen. Im Jahr 2001 entstand das Projekt an der Universität<br />
Dortmund und wird seit 2007 von der <strong>Rapid</strong>-I GmbH weitergeführt. Mit diesem<br />
<strong>akademischen</strong> Hintergrund richtet sich <strong><strong>Rapid</strong>Miner</strong> auch heute nicht nur an<br />
Geschäftskunden, sondern auch weiterhin an Universitäten und Forscherinnen<br />
und Forscher aus den verschiedensten Disziplinen.<br />
Dazu zählen auf der einen Seite Informatiker, Statistiker und Mathematiker, die<br />
an den Techniken von Data Mining, maschinellem Lernen und statistischen Verfahren<br />
interessiert sind. Durch <strong><strong>Rapid</strong>Miner</strong> ist es auf einfache Art und Weise<br />
möglich, neue Analyseverfahren und Ansätze zu <strong>im</strong>plementieren und mit anderen<br />
zu vergleichen.<br />
Auf der anderen Seite findet <strong><strong>Rapid</strong>Miner</strong> auch in vielen Anwendungsdisziplinen<br />
wie Physik, Maschinenbau, Medizin, Chemie, Linguistik und Gesellschaftswissenschaften<br />
Verwendung. Viele Wissenschaftszweige sind heute datengetrieben<br />
und verlangen nach flexiblen Analysewerkzeugen. <strong><strong>Rapid</strong>Miner</strong> bietet sich als eine<br />
solche an, da es von einfachen statistischen Auswertungen wie Korrelationsanalyse<br />
über Regressions-, Klassifikations- und Clusteringverfahren bis zu D<strong>im</strong>ensionsreduktion<br />
und Parameteropt<strong>im</strong>ierung ein breites Spektrum an Methoden<br />
bereitstellt, die für vielfältige Anwendungsdomänen wie Text-, Bild-, Audio- und<br />
Zeitreihenanalyse genutzt werden können. All diese Analysen können voll automatisiert<br />
und ihre Ergebnisse auf vielfältige Art visualisiert werden.<br />
In diesem Papier zeigen wir, wie <strong><strong>Rapid</strong>Miner</strong> opt<strong>im</strong>al für diese Aufgaben ein-<br />
V
gesetzt werden kann. Wir setzen dabei keine Kenntnisse über <strong><strong>Rapid</strong>Miner</strong> oder<br />
Data Mining voraus. Auch ist dieser Text kein Lehrbuch, der es Ihnen ermöglicht,<br />
die Verwendung von <strong><strong>Rapid</strong>Miner</strong> zu erlernen. Stattdessen erfahren Sie, welche<br />
grundsätzlichen <strong>Einsatz</strong>möglichkeiten sich für <strong><strong>Rapid</strong>Miner</strong> in der Forschung bieten.<br />
Als weiterführende Lektüre empfehlen wir das <strong><strong>Rapid</strong>Miner</strong> Benutzerhandbuch<br />
[3, 5], das sich auch zum Einstieg ins Data Mining eignet sowie das Whitepaper<br />
“How to Extend <strong><strong>Rapid</strong>Miner</strong>” [6] wenn Sie eigene Verfahren in <strong><strong>Rapid</strong>Miner</strong><br />
<strong>im</strong>plementieren möchten.<br />
Des Weiteren freut sich das <strong>Rapid</strong>-I-Team über jeden Kontakt und hilft gerne<br />
bei der Umsetzung von Projekten <strong>im</strong> <strong>akademischen</strong> Umfeld. <strong>Rapid</strong>-I beteiligt<br />
sich an Forschungsprojekten und richtet jährlich die <strong><strong>Rapid</strong>Miner</strong> Benutzerkonferenz<br />
RCOMM (<strong><strong>Rapid</strong>Miner</strong> Community Meeting and Conference) aus. Sollten<br />
Sie also mit <strong><strong>Rapid</strong>Miner</strong> oder <strong>Rapid</strong>Analytics Ergebnisse erzielen, die Sie einem<br />
interessierten Publikum vorstellen möchten, denken Sie doch über die Einreichung<br />
eines Papiers nach.<br />
VI
Inhaltsverzeichnis<br />
1 Einführung 1<br />
1.1 Das Programm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1<br />
1.2 Das Umfeld . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6<br />
1.3 Terminologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7<br />
2 Die Anwendungsfälle 9<br />
2.1 Evaluierung von Lernverfahren . . . . . . . . . . . . . . . . . . . . 10<br />
2.1.1 Performance-Evaluation und Kreuzvalidierung . . . . . . . 10<br />
2.1.2 Vorverarbeitung . . . . . . . . . . . . . . . . . . . . . . . . 11<br />
2.1.3 Parameteropt<strong>im</strong>ierung . . . . . . . . . . . . . . . . . . . . . 12<br />
2.2 Implementierung neuer Algorithmen . . . . . . . . . . . . . . . . . 17<br />
2.2.1 Der Operator . . . . . . . . . . . . . . . . . . . . . . . . . . 17<br />
2.2.2 Das Modell . . . . . . . . . . . . . . . . . . . . . . . . . . . 19<br />
2.2.3 Die Integration in <strong><strong>Rapid</strong>Miner</strong> . . . . . . . . . . . . . . . . 21<br />
2.3 <strong><strong>Rapid</strong>Miner</strong> für die deskriptive Analyse . . . . . . . . . . . . . . . 21<br />
2.3.1 Datentransformationen . . . . . . . . . . . . . . . . . . . . . 22<br />
2.3.2 Reporting . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26<br />
3 Transparenz von Veröffenlichungen 33<br />
3.1 <strong>Rapid</strong>-I Marketplace: App Store für <strong><strong>Rapid</strong>Miner</strong>-Erweiterungen . . 34<br />
3.2 Prozesse veröffentlichen auf myExper<strong>im</strong>ent . . . . . . . . . . . . . 35<br />
3.3 Verfügbarmachen der Daten . . . . . . . . . . . . . . . . . . . . . . 38<br />
4 <strong><strong>Rapid</strong>Miner</strong> in der Lehre 41<br />
VII
Inhaltsverzeichnis<br />
5 Forschungsprojekte 43<br />
VIII
1 Einführung<br />
Wir möchten an dieser Stelle nicht voraussetzen, dass der Leser bereits mit <strong><strong>Rapid</strong>Miner</strong><br />
vertraut ist oder es bereits verwendet hat. Daher wird in diesem ersten<br />
Teil genauer auf das Programm, seine Funktionen und die Art und Weise, wie<br />
diese eingesetzt werden können, eingegangen. Außerdem beschreiben wir kurz,<br />
welche Möglichkeiten es gibt, mit der Community in Kontakt zu treten um Hilfe<br />
zu bekommen oder selbst beizutragen. Abschließend erwähnen wir einige der<br />
wichtigsten Begriffe aus dem Bereich Data Mining, die in späteren Kapiteln vorausgesetzt<br />
werden.<br />
1.1 Das Programm<br />
<strong><strong>Rapid</strong>Miner</strong> ist unter der GNU Affero General Public License Version 3 lizensiert<br />
und mittlerweile in der Version 5.2 verfügbar. Ursprünglich wurde es seit<br />
2001 am Lehrstuhl für künstliche Intelligenz an der Universität Dortmund unter<br />
dem Namen ”<br />
Yale“ entwickelt. Seit 2007 wird das Programm von der <strong>Rapid</strong>-<br />
I GmbH, gegründet von ehemaligen Lehrstuhlmitarbeitern, fortgeführt und hat<br />
sich seitdem rasant entwickelt. Mit <strong>Rapid</strong>Analytics steht seit 2010 eine entsprechende<br />
Serverversion bereit, die die Kollaboration und das effiziente Nutzen von<br />
Rechnerresourcen ermöglicht.<br />
<strong><strong>Rapid</strong>Miner</strong> verfügt über ein komfortables Benutzerinterface, in dem Analysen<br />
in einer Prozessansicht konfiguriert werden. <strong><strong>Rapid</strong>Miner</strong> verwendet dazu ein modulares<br />
Konzept, bei dem jeder Schritt einer Analyse, z.B. ein Vorverarbeitungs-<br />
1
1. Einführung<br />
Abbildung 1.1: Ein einfacher Prozess mit exemplarischen Operatoren zum Laden,<br />
Vorverarbeiten und Modellerzeugung<br />
schritt oder ein Lernverfahren, durch einen Operator <strong>im</strong> Analyseprozess abgebildet<br />
wird. Diese Operatoren besitzen Ein- und Ausgabeports, über die sie mit den<br />
anderen Operatoren kommunizieren können, um Eingabedaten zu erhalten oder<br />
die veränderten Daten und generierte Modelle an nachfolgende Operatoren weiterzureichen.<br />
So ergibt sich ein Datenfluss durch den gesamten Analyseprozess,<br />
wie beispielhaft in Abbildung 1.1 zu sehen ist. Dabei gibt es neben Datentabellen<br />
und Modellen zahlreiche anwendungsspezifische Objekte, die durch den<br />
Prozess fließen können. In der Textanalyse werden ganze Dokumente weitergeleitet,<br />
Zeitreihen können durch spezielle Transformationsoperatoren geführt werden<br />
oder es werden einfach Vorverarbeitungsmodelle, wie eine Normalisierung,<br />
an einen Speicheroperator weitergereicht, um dieselbe Transformation später auf<br />
anderen Daten reproduzieren zu können.<br />
Durch sogenannte Super-Operatoren, die ihrerseits wieder einen kompletten Subprozess<br />
enthalten können, lassen sich so auch komplexeste Analysesituationen<br />
und -bedürfnise bedienen. Ein bekanntes Beispiel ist die Kreuzvalidierung, die<br />
zwei Subprozesse beinhaltet. Ein Subprozess ist dafür zuständig, ein Modell aus<br />
den jeweiligen Trainingsdaten zu erzeugen, während der zweite Subprozess dieses<br />
Modell und etwaige andere generierte Ergebnisse übergeben bekommt, um sie auf<br />
die Testdaten anzuwenden und die jeweilige Güte des Modells zu messen. Eine<br />
typische Anwendung sehen wir in Abbildung 1.2, in der ein Entscheidungsbaum<br />
auf den Trainingsdaten generiert wird, <strong>im</strong> Testsubprozess ein Operator das Mo-<br />
2
1.1. Das Programm<br />
Abbildung 1.2: Die inneren Subprozesse einer Kreuzvalidierung<br />
del anwendet und ein weiterer die Güte anhand der Vorhersage und der wahren<br />
Klasse best<strong>im</strong>mt.<br />
Repositories erlauben es dem Benutzer, Analyseprozesse, Daten und Ergebnisse<br />
projektspezifisch zu speichern und sie gleichzeitig <strong>im</strong>mer <strong>im</strong> Blick zu haben (siehe<br />
dazu Abbildung 1.3). So lässt sich ein bereits erstellter Prozess bei einem ähnlichen<br />
Problem schnell wiederverwenden, ein einmal generiertes Model laden und<br />
anweden oder einfach nur ein Blick auf die erzielten Analyseergebnisse werfen,<br />
um die erfolgsversprechendste Methode zu finden. Per Drag and Drop lassen sich<br />
die Ergebnisse auf Prozesse ziehen, in denen sie von speziellen Operatoren wieder<br />
geladen und dem Prozess zur Verfügung gestellt werden.<br />
Neben den lokalen Repositories, die <strong>im</strong> Dateisystem des Computers abgelegt werden,<br />
können auch <strong>Rapid</strong>Analytics-Instanzen als Repository benutzt werden. Da<br />
der Server <strong>Rapid</strong>Analytics über ein umfangreiches Benutzerrechtemanagement<br />
verfügt, können hierüber Prozesse und Ergebnisse geteilt oder der Zugriff für<br />
Personen oder Personengruppen beschränkt werden.<br />
Die von <strong>Rapid</strong>Analytics bereitgestellten Repositories stellen eine weitere Funktion<br />
bereit, die das Durchführen von Analysen deutlich erleichtert. Der Benutzer<br />
kann die Prozesse dort nicht nur speichern, sondern sie auch von der <strong>Rapid</strong>-<br />
Analytics-Instanz mit dem gewohnten Komfort ausführen lassen. Dadurch wird<br />
die Analyse vollständig <strong>im</strong> Hintergrund ausgeführt und der Benutzer kann sich<br />
durch eine Statusanzeige über den Analyseverlauf informieren. Im Vordergrund<br />
3
1. Einführung<br />
Abbildung 1.3: Ein gut gefülltes Repository<br />
4
1.1. Das Programm<br />
Abbildung 1.4: Ein Prozess, der mehrfach auf einer <strong>Rapid</strong>Analytics-Instanz gestartet<br />
wurde. Einige durchläufe sind bereits beendet und haben<br />
Ergebnisse produziert.<br />
kann der Benutzer gleichzeitig weiterarbeiten, ohne dass sein Computer durch<br />
rechen -und speicherintensive Berechnungen belastet wird. Alle Berechnungen<br />
erfolgen jetzt auf dem möglicherweise deutlich leistungsfähigeren Server <strong>im</strong> Hintergrund,<br />
wie in Abbildung 1.4 zu sehen. Dies ermöglicht auch den effizienteren<br />
<strong>Einsatz</strong> der Hardwareresourcen, da nur noch ein von allen Analysten gemeinsam<br />
genutzter, potenter Server benötigt wird, um speicherintensive Berechnungen<br />
durchzuführen.<br />
Neben den Kernkomponenten von <strong><strong>Rapid</strong>Miner</strong> existieren zahlreiche Erweiterungen,<br />
sogenannte Extensions, die weitere Funktionen nachrüsten, wie das Verarbeiten<br />
von Texten, Zeitreihen oder eine Anbindung an das Statistikpaket R [1] oder<br />
an Weka [2]. Alle diese Erweiterungen nutzen die umfangreichen Möglichkeiten,<br />
die <strong><strong>Rapid</strong>Miner</strong> bietet, und ergänzen diese: Sie ergänzen nicht nur Operatoren<br />
und neue Datenobjekte, sondern stellen auch neue Ansichten zur Verfügung, die<br />
sich frei in die Benutzeroberfläche integrieren lassen, oder ergänzen gar ganze<br />
Perspektiven, in denen sie ihre Ansichten bündeln können wie die R Erweiterung<br />
in Abbildung 1.5.<br />
5
1. Einführung<br />
Abbildung 1.5: Die R Perspektive in <strong><strong>Rapid</strong>Miner</strong><br />
1.2 Das Umfeld<br />
<strong><strong>Rapid</strong>Miner</strong> und <strong>Rapid</strong>Analytics stehen natürlich nicht alleine. Keine Software<br />
existiert ohne ihre Entwickler und kein Open-Source Projekt wird Erfolg haben<br />
ohne eine lebendige Community. Die wichtigste Anlaufstelle für Communitymitglieder<br />
und solche, die es werden wollen, ist das Forum unter http:<br />
//forum.rapid-i.com, das von <strong>Rapid</strong>-I bereitgestellt und moderiert wird. Hier<br />
finden sowohl Anfänger als auch Fortgeschrittene und Entwickler, die <strong><strong>Rapid</strong>Miner</strong><br />
in ihre eigenen Open-Source-Projekte integrieren möchten oder eigene Erweiterungen<br />
bereit stellen wollen, Antworten auf ihre Fragen. Jeder ist herzlich<br />
eingeladen an diesem internationalen Austausch teilzunehmen.<br />
Für alle, die sich auf einem Themengebiet speziell engagieren wollen, eigenen<br />
Code zur Verfügung stellen wollen, oder eigene Erweiterungen veröffentlichen<br />
möchten, bietet es sich an, Mitglied in einer der Special Interest-Gruppen zu<br />
werden, die sich jeweils auf ein Thema wie Textanalyse, Informationsextraction<br />
oder Zeitreihenanalyse konzentrieren. Da auch <strong>Rapid</strong>-I-Entwickler an diesem Aus-<br />
6
1.3. Terminologie<br />
tausch teilnehmen, fließen hier diskutierte Themen direkt in die weitere Entwicklungsplanung<br />
mit ein. Möchte jemand seine eigene Erweiterung einer größeren<br />
Öffentlichkeit zugänglich machen, existiert mit dem Marketplace die notwendige<br />
Plattform dafür (siehe Abschnitt 3.1). Hier können Benutzer ihre Erweiterungen<br />
anbieten und aus den angebotenen Erweiterungen anderer Benutzer auswählen.<br />
<strong><strong>Rapid</strong>Miner</strong> wird, falls gewünscht, be<strong>im</strong> nächsten Start die ausgewählten Erweiterungen<br />
automatisch nachinstallieren.<br />
Ergänzend dazu bietet <strong>Rapid</strong>-I natürlich auch professionelle Dienstleistungen <strong>im</strong><br />
Umfeld von <strong><strong>Rapid</strong>Miner</strong> und <strong>Rapid</strong>Analytics an. Neben Support für <strong><strong>Rapid</strong>Miner</strong><br />
und <strong>Rapid</strong>Analytics werden auch Schulungen, Beratung und individuelle Entwicklung<br />
rund um das Thema Datenanalyse angeboten.<br />
1.3 Terminologie<br />
Bevor wir mit dem technischen Teil beginnen, ist es hilfreich einige Begriffe zu<br />
klären. <strong><strong>Rapid</strong>Miner</strong> verwendet eine Terminologie, die dem Bereich des maschinellen<br />
Lernens entspringt. Dort ist eine typische Zielstellung, auf Grund einer<br />
Reihe von Beobachtungen, für die eine gewisse Zielgröße bekannt ist, Vorhersagen<br />
für Beobachtungen zu machen, bei denen diese Zielgröße nicht bekannt ist.<br />
Jede Beobachtung bezeichnen wir als Beispiel, englisch example. Jedes Beispiel<br />
hat mehrere Attribute, in der Regel Zahlenwerte oder kategorische Werte wie<br />
z.B. Alter oder Geschlecht. Eines dieser Attribute ist die Zielgröße, auf die sich<br />
unsere Analyse bezieht. Oft wird dieses Attribut englisch als label bezeichnet. Alle<br />
Beispiele zusammen bilden eine Beispielmenge, englisch example set. Schreibt<br />
man alle Beispiele mit Ihren Attributen untereinander, erhält man nichts anderes<br />
als eine Tabelle. Statt ”<br />
Beispielmenge“ könnten wir also ”<br />
Tabelle“ sagen,<br />
statt ”<br />
Beispiel“ ”<br />
Zeile“ und statt ”<br />
Attribut“ ”<br />
Spalte“. Für das Verständnis der<br />
in <strong><strong>Rapid</strong>Miner</strong> verwendeten Operatornamen ist die Kenntnis der oben genannten<br />
Begriffe allerdings hilfreich.<br />
7
2 Die Anwendungsfälle<br />
Nach der Lektüre des ersten Abschnitts haben Sie vielleicht schon die eine oder<br />
andere Idee bekommen, warum sich der <strong>Einsatz</strong> von <strong><strong>Rapid</strong>Miner</strong> für Sie lohnen<br />
könnte. Hier soll nun genauer auf die Möglichkeiten eingegangen werden, die<br />
<strong><strong>Rapid</strong>Miner</strong> in verschiedenen Anwendungsfällen bietet. Es sollen an dieser Stelle<br />
zwei mögliche Anwendungen <strong>im</strong> <strong>akademischen</strong> Umfeld vorgestellt werden: Die<br />
erste bezieht sich speziell auf Forscher, die Data-Mining-Verfahren evaluieren<br />
wollen. In Abschnitt 2.1 zeigen wir, wie dies mit bereits vorhandenen Algorithmen<br />
in <strong><strong>Rapid</strong>Miner</strong> realisiert werden kann. Im Anschluss zeigen wir in Abschnitt 2.2,<br />
wie selbst entwickelte Algorithmen in <strong><strong>Rapid</strong>Miner</strong> integriert werden können und<br />
so als Teil dieser Analyse genutzt werden können.<br />
Natürlich dient Data Mining nicht nur als Selbstzweck, sondern kann auch angewendet<br />
werden. In Abschnitt 2.3 zeigen wir, wie sich mit <strong><strong>Rapid</strong>Miner</strong> Daten aus<br />
Anwendungsdisziplinen analysieren lassen.<br />
Alle hier erwähnten Prozesse befinden sich in einem Beispielrepository, das unter<br />
http://rapid-i.com/downloads/documentation/academia/repository_de.zip<br />
zum Download bereitsteht. Um es zu verwenden, muss die ZIP-Datei extrahiert<br />
werden und das so entstandene Verzeichnis als lokales Repository zu <strong><strong>Rapid</strong>Miner</strong><br />
hinzugefügt werden. Klicken Sie dazu in der Werkzeugleiste der Ansicht Repositories<br />
auf die erste Schaltfläche und wählen Sie “New local repository”. Anschließend<br />
geben Sie den Namen des Verzeichnisses an. Alle Beispielprozesse finden Sie<br />
nun <strong>im</strong> Repository-Baum, der in dieser Ansicht angezeigt wird.<br />
Bei der Lektüre dieses Kapitels empfiehlt es sich, die in diesem Repository enthal-<br />
9
2. Die Anwendungsfälle<br />
tenen Prozesse in <strong><strong>Rapid</strong>Miner</strong> zu öffnen um ihre Funktionsweise nachzuvollziehen.<br />
<strong><strong>Rapid</strong>Miner</strong> kann dazu unter http://www.rapidminer.com heruntergeladen<br />
werden. Als Einstieg empfiehlt sich außerdem das <strong><strong>Rapid</strong>Miner</strong> Benutzerhandbuch<br />
[3].<br />
2.1 Evaluierung von Lernverfahren<br />
Eine typische und wiederkehrende Aufgabe <strong>im</strong> Bereich des maschinellen Lernens<br />
ist es, zwei oder mehr Lernverfahren miteinander zu vergleichen. Dies kann erfolgen,<br />
um zu untersuchen, welche Verbesserungen sich durch neue Verfahren<br />
erzielen lassen, kann aber auch einfach dazu dienen, für einen Anwendungsfall<br />
ein geeignetes Verfahren auszuwählen. In diesem Abschnitt zeigen wir, wie dies<br />
mit <strong><strong>Rapid</strong>Miner</strong> möglich ist.<br />
2.1.1 Performance-Evaluation und Kreuzvalidierung<br />
Die zahlreichen Operatoren, die maschinelle Lernverfahren auf Datensätze anwenden,<br />
lassen sich einfach <strong>im</strong> Zusammenspiel mit anderen Operatoren nutzen. Typische<br />
Beispiele von Operatoren, die bei der Evaluierung von Lernverfahren zum<br />
<strong>Einsatz</strong> kommen, sind Kreuzvalidierung, Operatoren zur Berechnung von Standardgütemaßen,<br />
Parameteropt<strong>im</strong>ierungen und nicht zuletzt Logging-Operatoren,<br />
um Profile der Leistung des Verfahrens zu erstellen. Da <strong><strong>Rapid</strong>Miner</strong> Schleifen<br />
unterstützt, können auch Prozesse erstellt werden, die das neue Verfahren an<br />
mehreren Datensätzen anwenden und mit anderen Verfahren vergleichen. Ein<br />
Prozess, der eine solche Validierung des eigenen Verfahrens ermöglicht, befindet<br />
sich <strong>im</strong> Beispielrepository.<br />
Wenn man den Prozess 00.1 - Loop Datasets betrachtet, besteht er vor allem aus<br />
drei Blöcken: Im ersten Block laden einige Operatoren eine Auswahl von Datensätzen,<br />
die dann mit dem Collect-Operator zu einer Collection zusammengefasst<br />
werden. Hier können natürlich beliebige eigene Datensätze geladen werden.<br />
Im zweiten Block wird über die Datensätze iteriert: Dazu wird der innere Prozess<br />
10
2.1. Evaluierung von Lernverfahren<br />
vom Loop Collection-Operator für jeden einzelnen Datensatz der Collection durchgeführt.<br />
Im Subprozess der Schleife wird der Datensatz direkt kopiert und zu drei<br />
Kreuzvalidierungen geführt. In jeder Kreuzvalidierung befindet sich ein anderes<br />
Lernverfahren. So wird die Performance aller drei Lernverfahren gegeneinander<br />
verglichen.<br />
Innerhalb der Schleife protokolliert ein Log-Operator die jeweiligen Ergebnisse<br />
der Verfahren. Dieses Protokoll wird <strong>im</strong> dritten Block in einen Datensatz umgewandelt,<br />
in dem alle Ergebnisse zusammengefasst werden. Er kann nun wie jeder<br />
andere Datensatz gespeichert, exportiert und betrachtet werden.<br />
Ganz ähnlich arbeitet der zweite Prozess 00.2 - Loop Files. Statt die Datensätze<br />
einzeln aus dem Repository zu laden, werden sie hier automatisch aus einer<br />
Sammlung von CSV-Dateien geladen. Liegen mehrere Datensätze vor, lassen sie<br />
sich so einfach und automatisiert zum Testen verwenden. Der Rest des Prozesses<br />
kann hierbei unverändert bleiben. Natürlich können so auch andere Aufgaben<br />
erledigt werden, wie zum Beispiel das Überführen der Datensätze in das Repository.<br />
2.1.2 Vorverarbeitung<br />
In vielen Fällen benötigen Verfahren zunächst Vorverarbeitungsschritte, um mit<br />
den Daten überhaupt umgehen zu können. Wollen wir den Operator k-NN für das<br />
k-Nächste-Nachbarn-Verfahren verwenden, müssen wir zum Beispiel beachten,<br />
dass Skalenunterschiede in den einzelnen Attributen dafür sorgen können, dass ein<br />
einziges Attribut wichtiger wird als alle anderen und die Nachbarschaftsrelation<br />
<strong>im</strong> euklidischen Raum dominiert. Daher müssen wir in diesem Fall die Daten<br />
durch das Hinzufügen eines Normalize-Operators zunächst normalisieren.<br />
Fügen wir den Normalize Operator allerdings vor der Kreuzvalidierung hinzu, werden<br />
alle Daten zur Best<strong>im</strong>mung des Mittelwerts und der Standardabweichung benutzt.<br />
Dadurch steckt <strong>im</strong> Trainingsteil des normalisierten Datensatzes innerhalb<br />
der Kreuzvalidierung allerdings <strong>im</strong>plizit schon Wissen über den Testteil. Eventuelle<br />
Ausreißer, die lediglich <strong>im</strong> Testteil des Datensatzes vorhanden sind, haben ja<br />
bereits die Skalierung beeinflusst, weshalb die Attribute anders gewichtet werden.<br />
11
2. Die Anwendungsfälle<br />
Dies ist ein häufiger Fehler, der zu statistisch invaliden Güteabschätzungen führt.<br />
Um das zu verhindern, müssen wir sämtliche Vorverarbeitungsschritte mit in die<br />
Kreuzvalidierung hereinziehen und <strong>im</strong> Trainingssubprozess durchführen. Führen<br />
wir keine weitere Anpassung <strong>im</strong> Prozess durch, wird das <strong>im</strong> Trainingsprozess generierte<br />
Modell <strong>im</strong> Testprozess natürlich mit den noch nicht normalisierten Daten<br />
konfrontiert. Deshalb bieten alle Vorverarbeitungsoperatoren, deren Ergebnisse<br />
von den verarbeiteten Daten abhängen, sogenannte Vorverarbeitungsmodelle<br />
(Preprocessing Model) an. Diese können verwendet werden, um eine identische<br />
Transformation erneut auszuführen. Bei der Normalisierung wird also mit den<br />
gleichen Mittelwerten und Standardabweichungen transformiert, statt diese auf<br />
den aktuellen Daten neu zu berechnen.<br />
Um diese Modelle zu verwenden, müssen sie lediglich aus dem Trainings- in den<br />
Testsubprozess der Kreuzvalidierung übergeben werden. Dort können sie mit einem<br />
gewöhnlichen Apply Model-Operator, wie <strong>im</strong> Prozess 00.3 - Include Preprocessing<br />
in Validation, angewendet werden, bevor das eigentliche Modell angewendet<br />
wird.<br />
2.1.3 Parameteropt<strong>im</strong>ierung<br />
Es ist also insgesamt sehr einfach, in <strong><strong>Rapid</strong>Miner</strong> eine echte Validierung eines<br />
Verfahrens durchzuführen. Allerdings besitzt fast jedes Verfahren best<strong>im</strong>mte Parameter,<br />
anhand derer sich die Qualität der Modelle beeinflussen lässt. Je nach<br />
Einstellung werden die Ergebnisse besser oder schlechter sein. Soll also gezeigt<br />
werden, dass ein neues Verfahren einem existierenden überlegen ist, darf man<br />
nicht einfach nur die Parameter des eigenen Verfahrens opt<strong>im</strong>ieren oder gar die<br />
Parameter willkürlich setzen. Gerade die Leistung von Verfahren wie der Support<br />
Vector Machine oder einem neuronalen Netz hängen sehr stark von den<br />
Parametereinstellungen ab.<br />
Deswegen bietet <strong><strong>Rapid</strong>Miner</strong> die Möglichkeit, automatisiert nach den besten Parametereinstellungen<br />
zu suchen. Dazu verwendet man einen der Opt<strong>im</strong>ize Parameters-Operatoren.<br />
Am einfachsten lässt sich der Operator Opt<strong>im</strong>ize Parameters<br />
(Grid) kontrollieren. Dieser iteriert über eine zuvor vom Benutzer definierte An-<br />
12
2.1. Evaluierung von Lernverfahren<br />
zahl von Kombinationen der zu opt<strong>im</strong>ierenden Parameter. Für jede Parameterkombination<br />
führt er seinen inneren Subprozess aus. Entsprechend können auch<br />
nur Parameter von Operatoren dieses Subprozesses opt<strong>im</strong>iert werden. Der Subprozess<br />
muss dabei einen Performance Vector (z.B. die Accuracy) zurückliefern,<br />
anhand dessen Opt<strong>im</strong>ize Parameters die Güte der aktuellen Kombination erkennen<br />
kann. Der Opt<strong>im</strong>ize Parameters-Operator liefert, nachdem er alle Parameterkombinationen<br />
getetst hat, diejenige zurück, in deren Durchlauf die gemessene<br />
Performanz max<strong>im</strong>al war.<br />
Ist man nicht nur an dem Ergebnis der besten Kombination interessiert, sondern<br />
zum Beispiel am generellen Verlauf, dann lohnt sich der <strong>Einsatz</strong> eines Log-<br />
Operators. Wird dieser ausgeführt, schreibt er eine neue Zeile in sein Protokoll,<br />
das alle Werte enthält, die vom Benutzer angegeben werden. Diese Werte können<br />
entweder die aktuellen Werte beliebiger Parameter beliebiger Operatoren <strong>im</strong> Prozess<br />
sein oder spezielle Werte, die von Operator zu Operator variieren. Alle Operatoren<br />
geben beispielsweise an, wie häufig sie bereits ausgeführt wurden, die<br />
Ausführungszeit und Ähnliches. Darüber hinaus geben einige Operatoren zusätzliche<br />
Informationen. Beispielsweise liefert die Kreuzvalidierung die Güte und deren<br />
Standardabweichung, die bei der letzten Ausführung erreicht wurden. Ein<br />
Beispiel, das eine solche Opt<strong>im</strong>ierung vorn<strong>im</strong>mt und dabei alle Kombinationen<br />
protokolliert, findet sich <strong>im</strong> Prozess 00.4 - Opt<strong>im</strong>ize Parameters.<br />
Eine weitere Anwendung für den Log-Operator findet sich <strong>im</strong> Prozess 00.5 - Create<br />
Learning Curve. Dieser untersucht, wie sich ein Lernverfahren bei unterschiedlichen<br />
Größen des Trainingsdatensatzes verhält. Dazu wird mit einem Sample-<br />
Operator eine Stichprobe einer best<strong>im</strong>mten Größe des gesamten Datensatzes gebildet.<br />
Auf dieser Stichprobe kann nun die Güte des Verfahrens mit Hilfe der<br />
Kreuzvalidierung best<strong>im</strong>mt werden. Da die Güte dadurch sehr stark von der<br />
gezogenen Stichprobe abhängt, müssen wir dieses mehrmals durchführen, um<br />
zufällige Abweichungen in einer Stichprobe auszugleichen. Dabei gilt: Je kleiner<br />
der Ursprungsdatensatz, desto mehr Wiederholungen sind notwendig. Um einen<br />
Teil eines Prozesses mehrmals auszuführen, kann der Loop-Operator verwendet<br />
werden. Er bietet mit dem Parameter iterations die Möglichkeit, anzugeben, wie<br />
häufig sein Subprozess ausgeführt werden soll.<br />
13
2. Die Anwendungsfälle<br />
Dieser ganze Vorgang muss natürlich für alle verschiedenen Stichprobengrößen<br />
durchgeführt werden. Dafür verwenden wir den Loop Parameters-Operator, mit<br />
dem wir konfigurieren können, mit welchen Parameterkombinationen sein Subprozess<br />
ausgeführt werden soll. In diesem Fall variieren wir schrittweise den Parameter<br />
sample ratio des Sample-Operators <strong>im</strong> Subprozess zwischen einem und<br />
hundert Prozent. Wir erhalten also eine sehr feine Kurve. Falls die Untersuchung<br />
zu lange dauert, lässt sich die Schrittanzahl reduzieren, so dass der Subprozess<br />
weniger häufig ausgeführt werden muss.<br />
Innerhalb des Subprozesses des Loop-Operators müssen wir jetzt nur noch die<br />
jeweils aktuelle sample ratio und die erzielte Accuracy messen. Da wir für jede<br />
sample ratio aber mehrere Ergebnisse erhalten, müssen wir noch einen Nachverarbeitungsschritt<br />
einführen, um den Durchschnitt und die Standardabweichung<br />
der Güte über die verschiedenen Samples zu best<strong>im</strong>men. Dazu wird in diesem<br />
Prozess mit dem Operator Log to Data das Protokoll in ein Example Set verwandelt,<br />
so dass wir anschließend über die Samplegrößen aggregieren und den<br />
Durchschnitt und die Standardabweichung best<strong>im</strong>men können. Dadurch ergibt<br />
sich ein Datensatz, von dem wir die Güte in Abhängigkeit von der Größe des<br />
Trainingsdatensatzes ablesen können. Um diesen für eine Veröffentlichung zu visualisieren,<br />
können wir die Advanced Charts-Ansicht verwenden. Ein mögliches<br />
Ergebnis könnte dann aussehen wie in Abbildung 2.1.<br />
Wollen wir nicht nur die binäre Entscheidung eines Modells begutachten, sondern<br />
auch, wie die Konfidenzen verteilt werden, lohnt sich ein Blick auf den ROC-<br />
Plot, der die sogenannte Receiver Operator Characteristic visuell darstellt. Dabei<br />
gilt, dass Kurven, die weiter oben links verlaufen, besser sind, als Kurven weiter<br />
unten. Der perfekte Klassifikator würde eine Kurve erzeugen, die vom Ursprung<br />
aus senkrecht nach oben bis zur 1 verläuft und von dort waagerecht nach rechts.<br />
In <strong><strong>Rapid</strong>Miner</strong> lässt sich eine solche Kurve sehr einfach erzeugen und auch sehr<br />
einfach mit anderen Verfahren vergleichen. Dazu muss lediglich der Testdatensatz<br />
geladen werden und an den Eingansport eines Compare ROCs-Operators gelegt<br />
werden. Alle zu testenden Lernverfahren können daraufhin in den Subprozess<br />
eingefügt werden. Die Ergebnisse der Verfahren werden gemeinsam in einem Plot<br />
dargestellt, wie in Abbildung 2.2 gezeigt. Die halbtransparenten Bereiche geben<br />
14
2.1. Evaluierung von Lernverfahren<br />
Abbildung 2.1: Eine Grafik, die die Güte der Ergebnisse visualisiert<br />
15
2. Die Anwendungsfälle<br />
Abbildung 2.2: Ein ROCChart zum Vergleich dreier Modelle<br />
die Standardabweichung an, die sich über die verschiedenen Durchläufe der intern<br />
verwendeten Kreuzvalidierung ergibt. Ein Beispiel für den Vergleich von Naive<br />
Bayes, Decision Tree und einem Rule Set finden sich <strong>im</strong> Prozess 00.6 - Comparing<br />
ROCs.<br />
Zu guter Letzt sollte man beachten, dass alle Plots und Ergebnisse von zufälligen<br />
Schwankungen abhängen können. Daher sollte man sich nicht alleine auf ein Vergleich<br />
der Gütekriterien verlassen, sondern auch testen, ob Unterschiede signifikant<br />
sind. In <strong><strong>Rapid</strong>Miner</strong> können dafür die Ergebnisse mehrerer Kreuzvalidierung<br />
einfach an einen T-Test oder Anova-Operator angelegt werden. Man erhält dann<br />
eine Tabelle, die die jeweiligen Testresultate anzeigt. Das Signifikanzniveau kann<br />
dabei als Parameter angegeben werden. Ein Prozess, der diese Tests beispielhaft<br />
auf mehreren Datensätzen durchführt findet sich in 00.7 - Significance Test.<br />
16
2.2. Implementierung neuer Algorithmen<br />
2.2 Implementierung neuer Algorithmen<br />
Wir haben nun gesehen, wie sich Algorithmen vergleichen lassen. Um allerdings<br />
neue, d.h. selbst entwickelte, Algorithmen auf diese Weise evaluieren zu können,<br />
müssen diese natürlich in <strong><strong>Rapid</strong>Miner</strong> integriert werden. Ursprünglich wurde <strong><strong>Rapid</strong>Miner</strong><br />
genau für diese Anwendung entwickelt: Neue Algorithmen sollten komfortabel,<br />
schnell und einfach mit anderen Algorithmen verglichen werden können.<br />
Das Implementieren neuer Lernverfahren in <strong><strong>Rapid</strong>Miner</strong> ist denkbar einfach. Es<br />
ist lediglich notwendig, zwei Java-Klassen zu erstellen, von denen eine das Lernen<br />
auf dem Trainingsdatensatz durchführt, also das Schätzen der Modellparameter<br />
übern<strong>im</strong>mt. Die andere Klasse muss diese Parameter speichern das Modell auf<br />
neuen Daten anwenden. Im Folgenden wird dies kurz anhand eines fiktiven Lernverfahrens<br />
vorgestellt.<br />
Dieser Abschnitt soll keine vollständige Einführung in die Programmierung mit<br />
<strong><strong>Rapid</strong>Miner</strong> sein. Sie soll nur kurz einige Prinzipien anreißen und zeigen, wie einfach<br />
sich neue Operatoren in das Framework integrieren lassen, so dass Sie die <strong>im</strong><br />
vorhergehenden Abschnitt beschriebenen Evaluierungsverfahren auf Ihre eigenen<br />
Algorithmen anwenden können. Eine vollständige Dokumentation für Entwickler<br />
von <strong><strong>Rapid</strong>Miner</strong>-Erweiterungen findet sich <strong>im</strong> White Paper “How to extend<br />
<strong><strong>Rapid</strong>Miner</strong>” [6] und in der API-Dokumentation [4]. Sind Sie kein Entwickler,<br />
sondern wollen <strong><strong>Rapid</strong>Miner</strong> aus Anwendersicht kennen lernen, können Sie diesen<br />
Abschnitt getrost überspringen.<br />
2.2.1 Der Operator<br />
Um ein Lernverfahren in <strong><strong>Rapid</strong>Miner</strong> anwenden zu können, muss es wie jeder<br />
andere Analyseschritt von einem Operator bereit gestellt werden. Dazu müssen<br />
wir lediglich eine neue Subklasse von Operator erstellen. Für viele Arten von<br />
Operatoren existieren spezialisierte Unterklassen, die bereits diverse Funktionen<br />
bereitstellen. In unserem Fall ist dies die Klasse AbstractLearner, von der alle<br />
überwachten Lernverfahren erben. Eine beispielhafte Implementierung eines<br />
solchen Verfahrens ist in Abbildung 2.3 zu sehen.<br />
17
2. Die Anwendungsfälle<br />
1 public class MyLearner extends AbstractLearner {<br />
2<br />
3 public s t a t i c void S t r i n g PARAMETER ALPHA = ” alpha ” ;<br />
4<br />
5 /** Constructor called via reflection . */<br />
6 public MyLearner ( O p e r a t o r D e s c r i p t i o n d e s c r i p t i o n ) {<br />
7 super ( d e s c r i p t i o n ) ;<br />
8 }<br />
9<br />
10 /** Main method generating the prediction model . */<br />
11 @Override<br />
12 public Model l e a r n ( ExampleSet data ) throws OperatorException {<br />
13 // Obtain user - specified parameter<br />
14 int alpha = getParameterAsInt (PARAMETER ALPHA) ;<br />
15 MyPredictionModel model ;<br />
16 // use data to create prediction model here<br />
17 return model ;<br />
18 }<br />
19<br />
20 /** Define user - configurable parameters here . */<br />
21 @Override<br />
22 public L i s t getParameterTypes ( ) {<br />
23 L i s t parameterTypes = super . getParameterTypes ( ) ;<br />
24 parameterTypes . add (new ParameterTypeInt ( ” alpha ” ,<br />
25 ”The parameter alpha ” , 0 , 100 , 10) ) ;<br />
26 return parameterTypes ;<br />
27 }<br />
28<br />
29 /** Tell the user what kind of input the algorithm supports . */<br />
30 @Override<br />
31 public boolean s u p p o r t s C a p a b i l i t y ( O p e r a t o r C a p a b i l i t y c a p a b i l i t y ) {<br />
32 switch ( c a p a b i l i t y ) {<br />
33 case NUMERICAL ATTRIBUTES:<br />
34 case BINOMINAL LABEL:<br />
35 return true ;<br />
36 }<br />
37 return f a l s e ;<br />
38 }<br />
39 }<br />
Abbildung 2.3: Eine beispielhafte Implementierung eines Lernverfahrens in<br />
<strong><strong>Rapid</strong>Miner</strong><br />
18
2.2. Implementierung neuer Algorithmen<br />
Im Wesentlichen muss nur eine einzige Methode <strong>im</strong>plementiert werden, die das<br />
Training durchführt und anschließend ein Modell mit den geschätzten Modellparametern<br />
zurückliefert, learn(). Als Eingabe erhält sie eine Datentabelle in<br />
Form eines ExampleSets.<br />
In der Regel wird ein Lernverfahren dem Benutzer verschiedene Optionen bieten,<br />
um sein Verhalten zu konfigurieren. Im Falle eines k-Nächste-Nachbarn-<br />
Verfahrens wäre die Anzahl der Nachbarn k eine solche Option. Diese heißen<br />
in <strong><strong>Rapid</strong>Miner</strong> Parameter und sollten nicht mit den Modellparametern (beispielsweise<br />
die Koeffizientenmatrix einer linearen Regression) verwechselt werden.<br />
Jeder Operator kann diese Parameter durch Überschreiben der Methode<br />
getParameterTypes() spezifizieren. Dabei kann der Wertebereich (Zahl aus einem<br />
best<strong>im</strong>mten Intervall, Zeichenkette, Auswahl aus einer Menge möglicher<br />
Werte, usw.) festgelegt werden. Das Benutzerinterface von <strong><strong>Rapid</strong>Miner</strong> stellt<br />
dann für die Konfiguration des Operators automatisch geeignete Eingabefelder<br />
zur Verfügung. Die vom Benutzer gewählten Parameterwerte können dann beispielsweise<br />
in der Methode learn() abgefragt und verwendet werden. In unserem<br />
Beispiel definiert der Operator einen Parameter mit dem Namen alpha.<br />
Die <strong><strong>Rapid</strong>Miner</strong>-API bietet zahlreiche Möglichkeiten, den Benutzer be<strong>im</strong> Prozessdesign<br />
zu unterstützen, beispielsweise durch frühzeitige und hilfreiche Fehlermelungen.<br />
Beispielsweise kann man durch Überschreiben der Methode supportsCapability()<br />
spezifizieren, mit welchen Daten das Lernverfahren umgehen kann.<br />
Liegen unpassende Daten vor, wird automatisch eine passende Fehlermeldung geliefert<br />
und entsprechende Lösungsvorschläge unterbreitet. Dies kann bereits zur<br />
Prozessdesign-Zeit erfolgen und erfordert nicht das testweise Ausführen des Prozesses.<br />
In unserem Beispiel kann der Algorithmus nur mit einem Zwei-Klassen-<br />
Problem und numerischen Einflussgrößen umgehen.<br />
2.2.2 Das Modell<br />
Nun muss nur noch das Modell <strong>im</strong>plementiert werden, welches die geschätzten<br />
Modellparameter speichert und diese benutzt, um Vorhersagen mit dem Modell<br />
machen zu können. In der Klassenhierarchie muss die neue Klasse unterhalb von<br />
19
2. Die Anwendungsfälle<br />
1 public class MyPredictionModel extends PredictionModel {<br />
2<br />
3 private int alpha ;<br />
4 private double [ ] est<strong>im</strong>atedModelParameters ;<br />
5<br />
6 protected MyFancyPredictionModel ( ExampleSet trainingExampleSet ,<br />
7 int alpha ,<br />
8 double [ ] est<strong>im</strong>atedModelParameters ) {<br />
9 super ( trainingExampleSet ) ;<br />
10 this . alpha = alpha ;<br />
11 this . est<strong>im</strong>atedModelParameters = est<strong>im</strong>atedModelParameters ;<br />
12 }<br />
13<br />
14 @Override<br />
15 public ExampleSet p e r f o r m P r e d i c t i o n ( ExampleSet exampleSet ,<br />
A t t r i b u t e p r e d i c t e d L a b e l ) throws OperatorException {<br />
16 // iterate over examples and perform prediction<br />
17 return exampleSet ;<br />
18 }<br />
19 }<br />
Abbildung 2.4: Eie beispielhafte Implementierung eines Vorhersagemodells<br />
Model angeordnet werden. Für ein Vorhersagemodell bietet es sich an, entweder<br />
PredictionModel oder S<strong>im</strong>plePredictionModel zu erweitern, die ein vereinfachtes<br />
Interface bereitstellen. Eine solche Klasse ist in Abbildung 2.4 skizziert.<br />
Im Wesentlichen muss die Methode learn() <strong>im</strong>plementiert werden, indem über<br />
das ExampleSet iteriert wird und mittels der geschätzten Modellparameter ein<br />
Vorhersageattribut generiert wird. In unserer learn()-Methode könnten wir ein<br />
solches Modell instanziieren und zurückgeben.<br />
Über die Möglichkeit der Anwendung zur Vorhersage hinaus bieten viele Modelle<br />
einen für den Benutzer interpretierbaren Erkenntnisgewinn. Dazu sollte das<br />
Modell auf geeignete Weise visualisiert werden, was über einen Renderer erfolgen<br />
kann. Details dazu befinden sich in der API-Dokumentation [4] der Klasse<br />
RendererService und <strong>im</strong> WhitePaper “How to extend <strong><strong>Rapid</strong>Miner</strong>” [6].<br />
20
2.3. <strong><strong>Rapid</strong>Miner</strong> für die deskriptive Analyse<br />
2.2.3 Die Integration in <strong><strong>Rapid</strong>Miner</strong><br />
Um den Operator in <strong><strong>Rapid</strong>Miner</strong> verfügbar zu machen, müssen die Klassen in<br />
eine Extension eingebunden werden. Dazu werden die <strong>im</strong>plementierten Operatoren<br />
in einer XML-Konfigurationsdatei gelistet, so dass sie von <strong><strong>Rapid</strong>Miner</strong> an<br />
der richtigen Stelle <strong>im</strong> Operatorbaum eingehängt werden können. Es existiert zu<br />
diesem Zweck ein Template-Projekt, das sich beispielsweise in Eclipse <strong>im</strong>portieren<br />
lässt und ein entsprechendes Ant-Skript zum Bauen der Extension enthält.<br />
Es stellt auch zahlreiche Möglichkeiten zur Verfügung, um komfortabel Dokumentation<br />
und andere Elemente zu erstellen. Die erzeugte Jar-Datei kopieren Sie<br />
einfach in das Plugins-Verzeichnis von <strong><strong>Rapid</strong>Miner</strong>, und schon steht Ihre Erweiterung<br />
zur Verfügung. Auch dies ist ausführlich <strong>im</strong> WhitePaper “How to extend<br />
<strong><strong>Rapid</strong>Miner</strong>” [6] beschrieben<br />
2.3 <strong><strong>Rapid</strong>Miner</strong> für die deskriptive Analyse<br />
Obwohl die Hauptanwendung von <strong><strong>Rapid</strong>Miner</strong> <strong>im</strong> Bereich der schließenden Statistik<br />
liegt, können die zahlreichen Möglichkeiten in der Vorverarbeitung auch in<br />
der deskriptiven Statistik sehr nützlich sein. Die Herangehensweise der Prozessmetapher<br />
bietet dabei ganz andere Möglichkeiten, komplexere Datenstrukturen<br />
zu bearbeiten, als dies bei herkömmlichen Statistiklösungen der Fall ist. Handelt<br />
es sich zum Beispiel um regelmäßig erhobene Daten, kann so der Verabeitungsprozess<br />
ohne Analyseaufwand weitestgehend automatisiert werden.<br />
Ist man vom Erstellen von Skripten nicht abgeschreckt, bietet die R Extension<br />
von <strong><strong>Rapid</strong>Miner</strong> Zugriff auf alle statistischen Funktionen, die das weltweit verbreitetste<br />
Statistiktool bietet. Diese können auch direkt in den Prozess integriert<br />
werden, um die komplette Verarbeitung vollständig zu automatisieren.<br />
Im Weiteren werden wir einen Datensatz betrachten, der Angaben aus einem Fragebogen<br />
beinhaltet. Die Fragen wurden an verschiedenen Schulen verschiedener<br />
Schulformen erhoben, sowie an einer Universität. Uns stehen hier Angaben über<br />
das Geschlecht und das Alter der Befragten zur Verfügung, ansonsten bleiben<br />
21
2. Die Anwendungsfälle<br />
Abbildung 2.5: Ein Ausschnitt der Beispieldaten<br />
die Daten anonymisiert. Alle Angaben wurden in einer Excel-Tabelle eingegeben,<br />
und wir haben diese Daten bereits über das File-Menü und den Eintrag<br />
Import Data <strong>im</strong> Repository als 01 - Questionare Results gespeichert. Jede Frage<br />
des Bogens hatte unterschiedlich viele Antworten, wobei nur jeweils eine Antwort<br />
angekreuzt werden durfte. Um Zeit während der manuellen Eingabe zu sparen,<br />
wurden die Antworten durchnummeriert und lediglich die Nummer der angekreuzten<br />
Antwort in der Tabelle angegeben. Eine 0 bezeichnet eine falsche oder<br />
fehlende Antwort. Einen Ausschnitt aus der Tabelle zeigt Abbildung 2.5.<br />
2.3.1 Datentransformationen<br />
In einer ersten Analyse wollen wir zunächst einmal nur eine grobe Übersicht<br />
über das allgemeine Antwortverhalten erlangen. Wir möchten hier zunächst alle<br />
22
2.3. <strong><strong>Rapid</strong>Miner</strong> für die deskriptive Analyse<br />
Gruppen gemeinsam betrachten, d.h. keine Aufteilung nach Geschlecht oder Alter<br />
vornehmen. Unsere Ziel ist es, eine Tabelle zu erzeugen, in der jede Zeile eine Frage<br />
repräsentiert und jede Spalte eine Antwort. In den Zellen der Tabellen sollen die<br />
relativen Häufigkeiten der Antworten der jeweiligen Fragen angegeben werden.<br />
Da wir zunächst nicht gruppieren wollen, entfernen wir alle Spalten bis auf diejenigen,<br />
die die Antworten enthalten. Dazu verwenden wir den Operator Select<br />
Attributes, wie <strong>im</strong> Prozess 01.1.1 - Count Answers demonstriert.<br />
Während des Importierens haben wir die Spalten als numerischen Datentyp deklariert.<br />
Zwar handelt es sich um Ziffern, aber dennoch repräsentieren diese keinen<br />
numerischen Wert in dem Sinne, dass man mit ihnen Abstände best<strong>im</strong>men oder<br />
allgemeine Rechenoperationen ausführen könnte. Wir wollen daher zunächst den<br />
Datentypen der Spalte in einen kategorischen Typ verwandeln. In <strong><strong>Rapid</strong>Miner</strong><br />
werden Attribute, die mehrere kategorische Ausprägungen annehmen können,<br />
als polynominal bezeichnet. Dazu verwenden wir den Operator Numerical to Polynominal.<br />
Um für jede Antwort eine eigene Spalte zu bekommen, können wir jetzt die polynominale<br />
Spalte in ein sogenanntes Dummy Encoding überführen. Diese Standardtechnik,<br />
die man häufig anwendet, wenn man nominale Werte numerisch repräsentieren<br />
möchte, führt für jeden nominalen Wert eine neue Spalte ein, die die<br />
Werte null oder eins annehmen kann. Eine Eins zeigt an, dass die ursprüngliche<br />
Spalte den nominalen Wert enthielt, den die neue Spalte repräsentiert. Entsprechend<br />
gibt es in jeder Zeile <strong>im</strong>mer genau eine eins in den so erzeugten Spalten,<br />
wie man leicht an dem Ergebnis der Transformation in Abbildung 2.6 sieht.<br />
Sind wir an den durchschnittlichen Antworthäufigkeiten interessiert, müssen wir<br />
jetzt noch den Durchschnitt über alle abgegebenen Fragebögen berechnen, wozu<br />
das Anwenden des Aggregate-Operators mit der voreingestellten Aggregationsfunktion<br />
average genügt. Da wir den Durchschnitt über alle Zeilen berechnen<br />
wollen, wählen wir keine Attribute zur Gruppierung aus. So fallen jetzt alle Zeilen<br />
in eine Gruppe. Als Ergebnis erhalten wir eine Tabelle mit einer Zeile pro<br />
Gruppe, hier also nur einer einzigen Zeile, die die relative Antworthäufigkeit angibt.<br />
23
2. Die Anwendungsfälle<br />
(a) Vor der Transformation<br />
(b) Nach der Transformation<br />
Abbildung 2.6: Dummycodierung des Antwortverhaltens<br />
Der Ablauf des Prozesses wird dabei durch Haltepunkte (Breakpoints) unterbrochen,<br />
so dass man wichtige Zwischenergebnisse, wie den Ausgangsdatensatz<br />
und die dummy-codierten Daten betrachten kann. Sie können durch wiederholtes<br />
Drücken der, nun grün dargestellten, Ausführen-Schaltfläche in der Hauptwerkzeugleiste<br />
die Ausführung des Prozesses fortsetzen.<br />
Weder für das menschliche Auge, noch für den Abdruck in einer Arbeit lässt sich<br />
dieses Ergebnis bisher verwenden. Natürlich könnte man jetzt diese Werte alle<br />
in eine Excel-Tabelle kopieren und sie sinnvoll manuell anordnen, aber da wir<br />
dieselben Zahlen noch für Subgruppen berechnen wollen, wäre es an dieser Stelle<br />
besser, direkt eine automatisierte Variante zu finden, da sie uns später viel Arbeit<br />
ersparen wird.<br />
Dazu wollen wir zunächst das überflüssige average aus den Spaltennamen entfernen.<br />
Dazu verwenden wir den Operator Rename by Replacing, wie <strong>im</strong> Prozess<br />
01.1.2 - Count Answers gezeigt. Wir fügen hier die Änderungen einfach an unseren<br />
Prozess an. Dieser Operator verwendet für die Umbenennung von Attributen<br />
sogenannte regulären Ausdrücke. Dabei handelt es sich um ein auch an anderer<br />
Stelle häufig verwendetes Werkzeug. Da <strong>im</strong> Internet zu diesem Thema zahlreiche<br />
gute Einführungen leicht zu finden sind, wird hier auf eine tiefergehende Erläuterung<br />
verzichtet. Sie können für ihre Exper<strong>im</strong>ente den Assistenten verwenden, der<br />
über die Schaltfläche neben dem Eingabefeld für den regulären Ausdruck zu er-<br />
24
2.3. <strong><strong>Rapid</strong>Miner</strong> für die deskriptive Analyse<br />
reichen ist. Hier kann man einen Ausdruck auf eine Testzeichenkette anwenden<br />
und bekommt sofort Rückmeldung, ob und auf welchen Teil der Ausdruck passt.<br />
In unserem Beispiel ersetzen wir mittels einer sogenannten Capturing Group den<br />
Attributnamen durch den Inhalt der runden Klammern <strong>im</strong> Attributnamen. Aus<br />
average(Frage1) wird so Frage1.<br />
Im nächsten Schritt kommen wir zum Transpose-Operator, der die Datentabelle<br />
transponiert. Aus allen Spalten werden Zeilen, während jede Zeile eine Spalte<br />
wird. Da der Datensatz nach der Aggregation nur noch eine Zeile hatte, bekommen<br />
wir jetzt genau eine reguläre Spalte, während die neu erzeugte id-Spalte den<br />
Namen der Attribute beinhaltet, aus denen die Zeile gebaut wurde.<br />
Anhand des id-Attributs können wir jetzt erkennen, von welcher Antwort zu<br />
welcher Frage der berechnete Häufigkeitswert <strong>im</strong> regulären Attribut att 1 stammt.<br />
Die Werte in der id-Spalte haben die Form ”<br />
Frage X = Y“, wobei X die Nummer<br />
der Frage und Y die Nummmer der Antwort kennzeichnet. Wir wollen diese<br />
Information etwas klarer strukturiert in zwei zusätzliche neue Attribute speichern.<br />
Dazu werden wir einfach das id-Attribut zwe<strong>im</strong>al kopieren und anschließend die<br />
Werte durch einen Replace Operator so ändern, dass sie zum einen eindeutig die<br />
Frage identifizieren und zum anderen die Antwort. Auch der Replace-Operator<br />
verwendet wieder reguläre Ausdrücke. Auch hier werden wir den Mechanismus<br />
der Capturing Group benutzen um zu spezifizieren, welcher Wert übernommen<br />
werden soll. Das Ergebnis nach diesen beiden Operatoren sieht schon viel lesbarer<br />
aus, allerdings ist es noch <strong>im</strong>mer ungeeignet zum Abdrucken. Ein breites Format,<br />
in dem jede Frage eine Zeile belegt und die Antworten in den Spalten angeordnet<br />
werden, wäre deutlich praktischer und kompakter.<br />
Wir werden jetzt zum letzten großen Schritt ansetzen, um die Daten entsprechend<br />
zu transformieren. Dazu hängen wir wie <strong>im</strong> Prozess 01.1.3 - Count Answers einen<br />
Pivot-Operator an unsere bisherige Prozesskette. Dieser wird dafür sorgen, dass<br />
alle Zeilen, die in dem durch den Parameter group attribute bezeichneten Attribut<br />
denselben Wert haben, zu einer Zeile zusammengefasst werden. Da wir jede Frage<br />
mit einer Zeile beschreiben wollen, wählen wir das Attribut Frage zur Gruppierung<br />
aus. Damit wir für jede Antwortalternative eine Spalte erhalten, wählen wir<br />
das Attribut Antwort als Indexattribut aus. Jetzt wird für jede mögliche Antwort<br />
25
2. Die Anwendungsfälle<br />
eine neue Spalte angelegt. Kommt die Kombination Frage / Antwort <strong>im</strong> Datensatz<br />
vor, wird die entsprechende Zelle in der Zeile der Frage und der Spalte der<br />
Antwort eingetragen. Kommt eine Kombination nicht vor, wird dies mit einem<br />
fehlenden Wert gekennzeichnet. Dies können wir gut <strong>im</strong> Ergebnis beobachten,<br />
da überhaupt nur eine Frage, nämlich Frage 1, fünf Antwortalternativen besitzt,<br />
alle anderen Werte in der entsprechenden Spalte sind entsprechend als fehlend<br />
gekennzeichnet. Einige Antworten, wie zum Beispiel Antwort 1 von Frage 17,<br />
wurde niemals gegeben. Entsprechend ist auch dieser Wert fehlend.<br />
Wir schließen den Prozess ab mit einigen Schönheitskorrekturen, indem wir fehlende<br />
Werte durch eine Null ersetzen und die generierten Namen der Spalten, die<br />
aus der Pivotisierung hervorgegangen sind, mittels Rename by Replacing in die<br />
Form ”<br />
Antwort X“ bringen.<br />
2.3.2 Reporting<br />
Dieses Vorgehen unterscheidet sich deutlich von dem gewohnten Manipulieren von<br />
Tabellen, wie es von Tabellenkalkulationen und ähnlicher Software bekannt ist.<br />
Warum lohnt sich der Umstieg auf eine solche prozessorientierte Vorgehensweise?<br />
Dies sehen wir, sobald wir wiederkehrende Aufgaben mehrfach ausführen wollen.<br />
Wir illustrieren dies wieder anhand unseres Beispiels. Wir hatten die erstellte<br />
Tabelle bisher nur für alle Teilnehmer ausgewertet und wollen nun verschiedene<br />
Gruppierungen betrachten, beispielsweise nach Schulform, Jahrgangsstufe oder<br />
Geschlecht.<br />
Dabei lernen wir eine Möglichkeit kennen, Ergebnisse automatisiert aus <strong>Rapid</strong>-<br />
Miner zu exportieren. Dabei hilft uns die Reporting Extension. Wir können Sie<br />
komfortabel über das Help-Menü mit dem Eintrag Update <strong><strong>Rapid</strong>Miner</strong> nachinstallieren,<br />
falls das noch nicht geschehen ist. (Ein Hinweis: Die Reporting Extension<br />
für <strong><strong>Rapid</strong>Miner</strong> erlaubt es, statische Berichte zu erzeugen. Mit dem Server<br />
<strong>Rapid</strong>Analytics ist es möglich, dynamische Web-basierte Berichte zu erstellen.<br />
Dies soll hier jedoch nicht diskutiert werden.)<br />
Nach der Installation steht uns in der Operators-Ansicht eine neue Gruppe von<br />
Operatoren zur Verfügung, mit denen wir jetzt automatisiert Prozessergebnisse<br />
26
2.3. <strong><strong>Rapid</strong>Miner</strong> für die deskriptive Analyse<br />
Abbildung 2.7: Die Reporting-Operatoren<br />
in einen Bericht schreiben können, beispielsweise <strong>im</strong> PDF-, HTML-, oder Excel-<br />
Format. Wenn wir die Gruppe aufklappen, wie in Abbildung 2.7 dargestellt, sehen<br />
wir sechs neue Operatoren. Für jeden Bericht benötigt werden davon Generate<br />
Report, der einen neuen Bericht unter einem best<strong>im</strong>mten Namen beginnt, und<br />
Report, der Daten aus dem Prozess entgegen n<strong>im</strong>mt und diese in einem anzugebenden<br />
Format an den Bericht anhängt.<br />
Damit ist bereits klar, das der Operator Generate Report vor dem Report-Operator<br />
ausgeführt werden muss. Auch die anderen relevanten Operatoren wie Add Text,<br />
Add Section und Add Pagebreak greifen jeweils auf einen geöffneten Bericht zurück.<br />
Add Text fügt an der aktuellen Position des Berichts einen Text hinzu, Add Section<br />
beginnt eine neue Gliederungsebene und Add Pagebreak eine neue Seite. Je<br />
nach Format kann das Ergebnis unterschiedlich aussehen. Im Fall von Excel-<br />
Dateien entsprechen Seitenumbrüche beispielsweise dem Wechsel auf ein neues<br />
Tabellenblatt.<br />
Um einen ersten Bericht zu erstellen, öffnen wir direkt nach dem Laden der Daten<br />
einen neuen Bericht. Beachten Sie, dass der Bericht in eine Datei geschrieben<br />
27
2. Die Anwendungsfälle<br />
Abbildung 2.8: Ein einfacher Reporting Prozess<br />
wird, sie müssen also den Pfad anpassen, wenn Sie den Prozess 01.2 - Report<br />
Counts benutzen. Ein Add Section-Operator erzeugt ein neues Excel-Sheet, dem<br />
wir mit dem Parameter report section name einen Namen geben können. Danach<br />
führen wir die bisherigen Verarbeitungsschritte aus, die man zur besseren Trennung<br />
in einen Subprozess verschieben kann. Sind die Ergebnisse berechnet, fehlt<br />
nur noch der Report-Operator. Mit der Schaltfläche Configure Report kann man<br />
auswählen, welche Darstellung des entsprechenden Objekts man in den Bericht<br />
einfügen möchte. Da wir hier an den Daten interessiert sind, wählen wir unter<br />
Data Table die Darstellung Data View. Danach kann noch konfiguriert werden,<br />
welche Spalten und welche Zeilen man in den Bericht übernehmen will, wir wählen<br />
hier jeweils alle. Unser Prozess sollte jetzt ungefähr aussehen wie in Abbildung 2.8<br />
gezeigt.<br />
Wie wir sehen, fügt sich das Reporting nahtlos in die Prozesslogik ein. Aber<br />
natürlich sind wir nicht nur an dem Gesamtantwortverhalten interessiert, sondern<br />
wollen vor allem Unterschiede zwischen den Subgruppen der Teilnehmer<br />
entdecken. Dazu werden wir folgenden Trick verwenden: Wir benutzen einen<br />
Loop Values-Operator, der seinen inneren Subprozess für jeden vorkommenden<br />
Wert eines best<strong>im</strong>mten Attributs durchführt. In diesem Subprozess werden wir<br />
den Datensatz auf die Zeilen mit dem aktuellen Wert reduzieren, dann wie gehabt<br />
aggregieren und schließlich als Berichtselement anfügen.<br />
Da wir an verschiedenen Gruppierungen interessiert sind, verwenden wir einen<br />
Multiply-Operator, um den ursprünglichen Datensatz mehrfach zu verarbeiten<br />
und unterschiedliche Darstellungen in den Bericht einzufügen. In Abbildung 2.9<br />
28
2.3. <strong><strong>Rapid</strong>Miner</strong> für die deskriptive Analyse<br />
Abbildung 2.9: Ein Reporting-Prozess<br />
erkennt man die verzweigung des Prozesses am Multiply-Operator.<br />
Um Schleifen effektiv verwenden zu können, lernen wir eine weitere Facette der<br />
<strong><strong>Rapid</strong>Miner</strong> Prozesssprache kennen, und zwar die der Makros. Diese Prozessvariablen<br />
können überall dort verwendet werden, wo Parameter definiert werden.<br />
Ein Makro hat ein best<strong>im</strong>mten Wert und wird zur Laufzeit durch diesen Wert<br />
ersetzt. In diesem Fall definiert der Operator Loop Values ein Makro, das den<br />
aktuellen Wert des Attributs zugewiesen wird. Das Makro wird hier also als<br />
Schleifenvariable verwendet und erhält in jedem Schleifendurchlauf einen neuen<br />
Wert. Makros können <strong>im</strong> Prozess auch explizt über einen Set Macro oder Generate<br />
Macro-Operator gesetzt werden oder in der Context-Ansicht für den Prozess<br />
definiert werden.<br />
Man kann in beliebigen Parametern auf den Wert eines Makros zugreifen, indem<br />
man seinen Namen mit %{ und } einschließt. In der Standardeinstellung wird<br />
der Operator Loop Values ein Makro mit dem Namen loop value setzen. Dann<br />
29
2. Die Anwendungsfälle<br />
greift man auf seinen Wert über %{loop value} zu. Dies läßt sich <strong>im</strong> Prozess<br />
01.3 - Report Counts with groups zum Beispiel <strong>im</strong> ersten Loop Values-Operator<br />
sehen, der Geschlecht genannt wurde, da dieser über die beiden Ausprägungen<br />
des Attributs ”<br />
Geschlecht“ iteriert. Öffnet man per Doppelklick den Subprozess,<br />
sieht man als ersten Operator einen Filter Examples-Operator, der nur Zeilen<br />
behält, deren Attribut Geschlecht gleich dem Wert des Makros loop value ist.<br />
Führen wir den Prozess durch, sehen wir, dass in der generierten Excel-Datei<br />
für jede Gruppierung ein eigenes Tabellenblatt angelegt wird, während die einzelnen<br />
Gruppen untereinander aufgeführt werden. Einziger Schönheitsfehler ist<br />
die Gruppe der Studenten, die in der Gruppierung nach Jahrgangsstufe als Jahrgangsstufe<br />
“0” erscheint. Obwohl das natürlich schnell manuell beseitigt ist, wollen<br />
wir das direkt <strong>im</strong> Prozess bereinigen.<br />
Um dies zu beheben, müssen wir eigentlich weniger tun als bisher, wir müssen<br />
eben das Schreiben in den Bericht unterlassen, wenn wir bei Jahrgangsstufe den<br />
Wert 0 erreichen. Glücklicherweise stehen uns nicht nur Operatoren für Schleifen<br />
zur Verfügung, sondern auch eine bedingte Verzweigung. Dazu können wir den<br />
Operator Branch verwenden, der zwei Subprozesse hat. Einer wird ausgeführt,<br />
wenn die angegebene Bedingung erfüllt ist, der andere wenn sie nicht erfüllt<br />
ist. Die Bedingung lässt sich dabei in den Parametern einstellen. Neben datenabhängigen<br />
Bedingungen, wie zum Beispiel einer min<strong>im</strong>alen Größe der Eingabetabelle<br />
oder ähnlichem, lässt sich auch ein einfacher Ausdruck evaluieren. Ein<br />
Ausdruck wie ”%{loop value}”==”0” ist genau dann wahr, wenn der aktuelle<br />
Wert 0 ist. In unserem Beispiel wollen wir den inneren Subprozess genau dann<br />
ausführen, wenn diese Bedingung nicht erfüllt ist. Entsprechend brauchen wir unseren<br />
bisherigen Prozess für die Jahrgangsstufe also nur in den Else-Subprozess<br />
zu verschieben, wie in Abbildung 2.10 zu sehen.<br />
Das Ergebnis dieser Änderung kann in Prozess 01.04 - Report Counts with groups<br />
and exceptions betrachtet werden. Nach der Durchführung steht uns die bereinigte<br />
Excel-Datei zur Verfügung. Das einzig Ärgerliche bei der Erstellung unseres<br />
Berichts ist die Tatsache, dass wir jeweils exakt die gleiche Funktionalität <strong>im</strong>mer<br />
wieder und wieder in den Subprozessen eingefügt haben, einmal für jede Art von<br />
Gruppierung. Natürlich lassen sich die kompletten Subprozesse einfach kopieren,<br />
30
2.3. <strong><strong>Rapid</strong>Miner</strong> für die deskriptive Analyse<br />
Abbildung 2.10: Die Fallunterscheidung <strong>im</strong> Branch Operator<br />
aber will man später ein Detail ergänzen oder modifizieren, muss man dies in<br />
jedem einzelnen Subprozess wiederholen.<br />
Um diese Arbeit zu vermeiden, kann man die gesamte Logik in einen eigenständigen<br />
Prozess auslagern und diesen mehrmals von einem anderen Prozess aus aufrufen.<br />
Will man etwas ändern, muss man dies jetzt nur noch an einer zentralen<br />
Stelle tun. Dazu können wir einfach die Logik des Subprozesses in einen neuen<br />
Prozess kopieren, wie in 0.1.5 - Counting Process gesehen. Dieser Prozess ist<br />
vollständig in Abbildung 2.11 gezeigt. Diesen Prozess kann man nun einfach per<br />
Drag and Drop in einen anderen Prozess befördern. Dort wird er dann durch<br />
einen Execute Process-Operator repräsentiert. Dessen Eingangs- und Ausgangsports<br />
repräsentieren die Eingangsports des Prozesses, wenn der Parameter use<br />
inputs des Operators eingeschaltet wurde. Nun können wir also alle Subprozesse<br />
einfach durch ein Aufruf dieses Prozesses ersetzen und von da an Änderungen<br />
zentral vornehmen. Das Ergebnis kann man in 01.5 - Reusing Processes betrachten.<br />
Wenn Sie den Prozess durchführen, werden Sie keinen Unterschied in den<br />
Ergebnissen bemerken.<br />
Wir haben also gesehen, wie Sie mit <strong><strong>Rapid</strong>Miner</strong> einen Bericht mit statistischen<br />
Auswertungen auf einfache Art und Weise erzeugen können. Ändern sich die<br />
31
2. Die Anwendungsfälle<br />
Abbildung 2.11: Die gesamte Verarbeitungslogik als eigener Prozess<br />
unterliegenden Daten oder werden diese ergänzt, können Sie den Bericht durch<br />
erneutes Ausführen des Prozesses schnell aktualisieren, insbesondere bei vollautomatischer<br />
Ausführung in <strong>Rapid</strong>Analytics.<br />
Selbstverständlich ist es auch möglich, Prognosemodelle, wie sie in Abschnitt 2.1<br />
verwendet wurden, auf diese Daten anzuwenden. So wäre es <strong>im</strong> vorliegenden Anwendungsfall<br />
beispielsweise sinnvoll, mittels einer linearen Regression den Einfluss<br />
der Jahrgangsstufe auf die gewählten Antworten zu ermitteln oder ähnliche<br />
Zusammenhänge mit Hilfe von bayesschen Verfahren zu extrahieren. Wie sie sehen,<br />
sind die Möglichkeiten praktisch unbegrenzt. Wenn Sie <strong><strong>Rapid</strong>Miner</strong> ausprobieren,<br />
werden Sie sicher schnell eigene Ideen entwickeln und umsetzen können.<br />
32
3 Transparenz von Veröffenlichungen<br />
In Abschnitt 2.1 haben wir <strong><strong>Rapid</strong>Miner</strong> eingesetzt, um mit wenig Aufwand eine<br />
möglichst vollständige Evaluierung eines neuen Verfahrens durchzuführen. Wir<br />
haben gesehen, wie wir die Evaluierung auf eine breite Datenbasis stellen können,<br />
die Parameter fair für alle Verfahren opt<strong>im</strong>ieren und wie wir die Ergebnisse auswerten<br />
können. Wenn die Ergebnisse Sie zufrieden stellen, werden Sie nun möglicherweise<br />
Ihre Ergebnisse in einer Zeitschrift, auf einer Konferenz oder in einem<br />
Buch veröffentlichen wollen. Eine gute Veröffentlichung sollte den Leser in die<br />
Lage versetzen, die erzielten Ergebnisse nachzuvollziehen, zu vegleichen, weiterzuentwickeln<br />
und auf Ihnen aufbauend weitere Analysen durchzuführen.<br />
Um dies zu gewährleisten, sind drei Komponenten nötig: Die <strong>im</strong>plementierten<br />
neuen Algorithmen, die durchgeführten Prozesse und die verwendeten Daten.<br />
Diese können selbstverständlich nicht oder nur unzureichend <strong>im</strong> Rahmen der<br />
Veröffentlichung abgedruckt werden, könnten aber leicht durch Verweis auf Internetquellen<br />
zugänglich gemacht werden.<br />
Die Erfahrung zeigt hier leider, dass dies oft nicht der Fall ist. Dies führt dazu,<br />
dass ein großer Teil der wissenschaftlichen Arbeit darauf verwendet wird, bereits<br />
geleistete Arbeit zu Vergleichszwecken zu reproduzieren, statt Ergebnisse<br />
wiederzuverwenden.<br />
In diesem Kapitel zeigen wir, wie mit Hilfe geeigneter Portale <strong>im</strong> Internet Algorithmen,<br />
Prozesse und Daten auf einfache Weise veröffentlicht und der akademi-<br />
33
3. Transparenz von Veröffenlichungen<br />
schen Welt sowie möglichen Anwendern zugänglich gemacht werden können.<br />
Dadurch erhöhen Sie signifikant die Qualität Ihrer Veröffentlichung und die Sichtbarkeit<br />
und Zitierbarkeit Ihrer Ergebnisse.<br />
3.1 <strong>Rapid</strong>-I Marketplace: App Store für<br />
<strong><strong>Rapid</strong>Miner</strong>-Erweiterungen<br />
Um selbst<strong>im</strong>plementierte Verfahren für die Allgemeinheit zugänglich zu machen,<br />
bietet es sich an, sie auf dem Marketplace für <strong><strong>Rapid</strong>Miner</strong> anzubieten. Dieser ist<br />
unter http://marketplace.rapid-i.com erreichbar. Auf dieser Plattform kann<br />
jeder Entwickler seine <strong><strong>Rapid</strong>Miner</strong>-Erweiterungen anbieten und von anderen Entwicklern<br />
bereitgestellte Erweiterungen nutzen. Die Nutzung ist für <strong><strong>Rapid</strong>Miner</strong>-<br />
Anwender und für Anbieter von Erweiterungen kostenlos möglich. Erweiterungen,<br />
die <strong>im</strong> Marketplace angeboten werden, können direkt aus dem Benutzerinterface<br />
von <strong><strong>Rapid</strong>Miner</strong> installiert und aktualisiert werden. Dazu steht die Funktion Update<br />
<strong><strong>Rapid</strong>Miner</strong> <strong>im</strong> Help-Menü zur Verfügung. Es stellt damit für den Benutzer<br />
die einfachste Art der Installation dar.<br />
Gegenüber einer Veröffentlichung auf internen Institutsseiten bietet der Marketplace<br />
einige Vorteile: Dazu zählen die bestmögliche Sichtbarkeit in der <strong><strong>Rapid</strong>Miner</strong>-<br />
Community, die einfache Installation sowie Kommentar- und Bewertungsfunktionen.<br />
Öffnet ein Benutzer einen Prozess, der Ihre Erweiterung benötigt, hat diese<br />
aber nicht insalliert, schlägt <strong><strong>Rapid</strong>Miner</strong> automatisch die Installation vor.<br />
Auch wenn Sie sich für eine Veröffentlichung auf dem Marketplcae entscheiden,<br />
spricht nichts dagegen, weiterhin eine eigene Seite zu betreiben, in der Sie Dokumentation,<br />
Beispiele, Hintergrundinformationen und eventuell Sourcecode anbieten.<br />
Dies wird sogar explizit empfohlen, und ein Verweis auf diese Seite kann <strong>im</strong><br />
Marketplace plaziert werden.<br />
Um eine Erweiterung anzubieten, registrieren Sie sich einfach auf http://marketplace.<br />
rapid-i.com und senden dann über das Kontakt-Menü eine Hostinganfrage ab.<br />
Diese wird von <strong>Rapid</strong>-I kurz auf Plausibiltät und Konflikte mit anderen Erwei-<br />
34
3.2. Prozesse veröffentlichen auf myExper<strong>im</strong>ent<br />
terungen überprüft und innerhalb kürzester Zeit bestätigt.<br />
Bitte beachten Sie, dass es natürlich umso wichtiger wird, sich an die allgemeinen<br />
Namenskonventionen, Schreibweisen und Dokumentationsrichtlinien zu halten,<br />
wenn man die Erweiterung anderen Nutzern zugänglich machen will. Dies<br />
sollte man unbedingt von Anfang an beachten, da zum Beispiel die Änderung von<br />
Parameternamen oder Operatorschlüsseln bis dahin erstellte Prozesse unbrauchbar<br />
macht. Auch sollten für andere Benutzer die Parameter möglichst sprechend<br />
benannt und mit guten Kommentaren versehen werden. Eine ausführliche Dokumentation<br />
und Beispielprozesse bilden dann natürlich das i-Tüpfelchen an Komfort.<br />
3.2 Prozesse veröffentlichen auf myExper<strong>im</strong>ent<br />
Unabhängig davon, ob Sie in Ihren Prozessen eine selbst <strong>im</strong>plementierte <strong><strong>Rapid</strong>Miner</strong>-Erweiterung<br />
verwenden oder nicht, ist es oft wünschenswert, eigene Prozesse<br />
auf einfache Art mit der Gemeinschaft von Wissenschaftlern und Datenanalysten<br />
zu teilen. Das Portal myExper<strong>im</strong>ent.org ist ein soziales Netzwerk, das sich an<br />
Wissenschaftler richtet und die Möglichkeit bietet, Datenanalyseprozesse auszutauschen<br />
und darüber zu diskutieren.<br />
Indem Sie Ihre <strong><strong>Rapid</strong>Miner</strong>-Prozesse auf dieser Seite zur Verfügung stellen, erreichen<br />
Sie eine höhere Verbreitung Ihrer Ergebnisse und stellen gleichzeitig eine<br />
eindeutige und dauerhafte Zitierbarkeit sicher. Weiterhin profitieren Sie von<br />
der Gelegenheit, in Austausch mit anderen Wissenschaftlern zu treten und neue<br />
Forschungskontakte zu knüpfen. Nicht zuletzt kann myExper<strong>im</strong>ent eine hervorragende<br />
Quelle sein, wenn Sie für die Lösung eines Datenanalyseproblems nach<br />
Inspiration suchen – best<strong>im</strong>mt haben sich auch schon Andere mit ähnlichen Problemen<br />
auseinandergesetzt.<br />
Um myExper<strong>im</strong>ent zu benutzen, müssen Sie die Prozesse nicht umständlich über<br />
einen Web-Browser hoch- oder herunterladen. Dies können Sie stattdessen mithilfe<br />
der Community Extension direkt aus der Benutzeroberfläche von <strong><strong>Rapid</strong>Miner</strong><br />
heraus tun. Diese können Sie ebenfalls über den Marketplace (und den <strong>Rapid</strong>Mi-<br />
35
3. Transparenz von Veröffenlichungen<br />
Abbildung 3.1: Die Beschreibung von <strong><strong>Rapid</strong>Miner</strong>-Erweiterungen können <strong>im</strong><br />
Marketplace bearbeitet werden (hier die Community-Extension,<br />
die weiter unten bechrieben wird).<br />
36
3.2. Prozesse veröffentlichen auf myExper<strong>im</strong>ent<br />
Abbildung 3.2: Die Community-Extension von <strong><strong>Rapid</strong>Miner</strong> zum Zugriff auf<br />
myExper<strong>im</strong>ent<br />
ner Update-Server) installieren. Sobald Sie dies getan haben, verfügt <strong><strong>Rapid</strong>Miner</strong><br />
über einen neue Ansicht namens MyExper<strong>im</strong>ent Browser. Sie können diese über<br />
das View-Menü und den Eintrag Show View aktivieren. Sie können diese Ansicht<br />
in jeder Perspektive an einem beliebigen Ort einsortieren und natürlich auch wieder<br />
ausblenden.<br />
Der Browser erlaubt es Ihnen, sich mit einem existierenden Benutzeraccount einzuloggen,<br />
oder sich bei MyExper<strong>im</strong>ent zu registrieren um einen Benuzteraccount<br />
anzulegen. Sie werden diesen Account benötigen, um Prozesse hochzuladen. In<br />
der Liste werden alle auf MyExper<strong>im</strong>ent gespeicherten Prozesse angezeigt. Wenn<br />
Sie in der Liste einen Eintrag auswählen, erscheint <strong>im</strong> rechten Fenster das Bild<br />
des entsprechenden Prozesses sowie die Beschreibung und Metadaten wie Autor<br />
und Erstellungsdatum. Dieser Prozess lässt sich dann einfach mit der Open-<br />
Schaltfläche herunterladen und in <strong><strong>Rapid</strong>Miner</strong> öffnen und direkt ausführen. Alternativ<br />
können Sie den Prozess auch über die myExper<strong>im</strong>ent-Webseite <strong>im</strong> Browser<br />
betrachten. Klicken Sie dazu einfach auf die Browse-Schaltfläche. Mit der URL,<br />
37
3. Transparenz von Veröffenlichungen<br />
die hier geöffnet wird, lässt sich ein Prozess auch eindeutig identifizieren, wodurch<br />
sie zum Zitieren verwendet werden kann.<br />
Um einen eigenen Prozess auf myExper<strong>im</strong>ent hochzuladen, öffnen Sie den gewünschten<br />
Prozess und arrangieren ihn in der gewünschten Weise. Der aktuell angezeigte<br />
Subprozess wird als Bild auf myExper<strong>im</strong>ent hochgeladen und erscheint<br />
be<strong>im</strong> Browsen. Eine hübsche und übersichtliche Anordnung macht sich hier also<br />
bezahlt. Danach können Sie in der Browse MyExper<strong>im</strong>ent-Ansicht auf Upload<br />
klicken. Das in Abbildung 3.2 dargestellte Fenster öffnet sich und bietet Ihnen<br />
Felder zum Eingeben eines Titels und einer Beschreibung an. Die allgemeine Umgangssprache<br />
auf myExper<strong>im</strong>ent ist Englisch.<br />
3.3 Verfügbarmachen der Daten<br />
Da myExper<strong>im</strong>ent das Speichern von Daten aus Kapazitätsgründen nicht übern<strong>im</strong>mt,<br />
müssen wir für die Veröffentlichung der verwendeten Daten einen anderen<br />
Weg beschreiten, sofern die Daten überhaupt veröffentlicht werden dürfen und<br />
keiner Beschränkung aufgrund von Urheberrecht oder Vertraulichkeit unterliegen.<br />
Hierbei kommt uns die Fähigkeit von <strong><strong>Rapid</strong>Miner</strong> sehr entgegen, mit Daten<br />
von fast beliebigen Quellen umzugehen.<br />
Der häufig wohl einfachste Weg wäre, die Daten zunächst als CSV-Datei zu exportieren<br />
und die exportierte Datei auf einem beliebigen Webserver abzulegen. In<br />
<strong><strong>Rapid</strong>Miner</strong> können wir jetzt diese Adresse mit einem Open File-Operator öffnen,<br />
der auch Daten aus Internetquellen verarbeiten kann. Dieser Operator interpretiert<br />
die Daten zunächst nicht, sondern liefert ein File-Objekt für diese Datei. Wir<br />
können dann dieses Objekt an den file Eingang des Read CSV-Operators legen,<br />
um die Datei als CSV zu interpretieren und den Datensatz zu laden. Den Read<br />
CSV-Operator kann man dabei mit dem Wizard einfach konfigurieren, wobei der<br />
Wizard bequemlichkeitshalber auf einer lokalen Kopie der Datei ausgeführt werden<br />
kann. Denkt man jetzt noch daran, be<strong>im</strong> Export als CSV und be<strong>im</strong> Import<br />
dasselbe Encoding zu setzen, steht der Veröffentlichung kein Problem mehr <strong>im</strong><br />
Weg.<br />
38
3.3. Verfügbarmachen der Daten<br />
Führt man Exper<strong>im</strong>ente auf großen Datensätzen oder Datensätzen, die viel Text<br />
enthalten, aus, kann man die Datensätze auch kompr<strong>im</strong>iert in einer Zip-Datei ablegen<br />
und diese von <strong><strong>Rapid</strong>Miner</strong> extrahieren lassen. Dieses vermeidet überflüssige<br />
Wartezeiten be<strong>im</strong> Download und hohe Auslastung des Servers. Beide Fälle werden<br />
<strong>im</strong> Prozess 00.8 - Load Data from URL demonstriert.<br />
39
4 <strong><strong>Rapid</strong>Miner</strong> in der Lehre<br />
Auch in der Lehre bietet sich ein <strong>Einsatz</strong> von <strong><strong>Rapid</strong>Miner</strong> an. Dies bietet mehrere<br />
Vorteile.<br />
Einer der größten Vorteile ist sicherlich die Tatsache, dass <strong><strong>Rapid</strong>Miner</strong> in der<br />
Community Edition frei zum Download verfügbar steht. Studierende können es<br />
somit auf ihren privaten Rechnern genauso installieren wie die Hochschule die<br />
Möglichkeit hat, <strong><strong>Rapid</strong>Miner</strong>-Installationen auf Institutsrechnern zur Verfügung<br />
zu stellen. Der Einstieg ist somit schnell und kostenlos möglich. Aufgrund der<br />
hohen Verbreitung haben die Studierenden weiterhin die Gelegenheit, bereits<br />
<strong>im</strong> Studium mit einem Werkzeug zu arbeiten, dass sie <strong>im</strong> späteren Berufsleben<br />
tatsächlich einsetzen können.<br />
Die zahlreichen <strong>im</strong> Kern und in den Erweiterungen enthalten Lernverfahren decken<br />
den größten Teil typischer Lehrveranstaltungen <strong>im</strong> Bereich des Data Mining,<br />
maschinellen Lernens und schließender Statistik ab. Somit ist es für die Studierenden<br />
möglich, die erlernten Verfahren ohne großen Aufwand direkt einzusetzen<br />
und zu vergleichen, wodurch ein nachhaltigerer Lerneffekt erzielt wird als durch<br />
eine rein theoretische Betrachtung der Algorithmen und ihrer Eigenschaften.<br />
Es ist nicht ungewöhnlich, dass Studierende <strong>im</strong> Rahmen von Praktika, Seminaren,<br />
Studienarbeiten oder Übungen selbst eigene Algorithmen und Lernverfahren<br />
entwickeln. Geschieht dies <strong>im</strong> Rahmen des <strong><strong>Rapid</strong>Miner</strong>-Frameworks, kann dabei<br />
vorhandene Infrastruktur wiederverwendet werden. Beispielsweise ist die Evaluierung<br />
des Verfahrens oder die Anbindung an Datenquellen erheblich erleichtert.<br />
Somit können sich die Studierenden auf die Implementierung des eigentlichen<br />
41
4. <strong><strong>Rapid</strong>Miner</strong> in der Lehre<br />
Algorithmus konzentrieren. Außerdem ist es für die Studierenden eine große Motivation,<br />
wenn das Ergebnis einer solchen Arbeit auch nach deren Abschluss noch<br />
weiter verwendet werden kann. Bei einer Verbreitung als <strong><strong>Rapid</strong>Miner</strong>-Erweiterung<br />
ist dies erheblich wahrscheinlicher als bei einer Einzellösung, die in kein Framework<br />
eingebunden ist. Dies wird noch verstärkt durch die erhöhte Sichtbarkeit<br />
bei Verwendung des <strong>Rapid</strong>-I Marketplace.<br />
Da bereits viele Hochschulen <strong><strong>Rapid</strong>Miner</strong> in der Lehre einsetzen, existiert bereits<br />
ein Erfahrungsschatz sowie Unterrichtsmaterialien, die wiederverwendet werden<br />
können.<br />
Zum Austausch von Erfahrungen, Materialien und Ideen für die Lehre mit <strong>Rapid</strong>-<br />
Miner bietet sich die Teilnahme an der Mailingliste https://lists.sourceforge.<br />
net/lists/listinfo/rapidminer-sig-teaching an.<br />
42
5 Forschungsprojekte<br />
Abschließend wollen wir hier noch einmal einen Überblick darüber geben, wie<br />
<strong><strong>Rapid</strong>Miner</strong> eigentlich bei <strong>Rapid</strong>-I zu Forschungszwecken eingesetzt wird. Dieses<br />
Kapitel gibt einen Überblick darüber, in welch vielfältiger Weise Data Mining<br />
Techniken in verschiedenen Disziplinen eingesetzt werden können und kann<br />
möglicherweise auch eine Anregung für zukünftige Projekte sein.<br />
e-LICO. (http://www.e-lico.eu) In diesem EU-Projekt, an dem außer <strong>Rapid</strong>-<br />
I acht Universitäten und Forschungseinrichtungen beteiligt waren, wurde von<br />
2009 bis 2012 eine Platform entwickelt, die es auch Fachwissenschaftlern ohne statistischen<br />
oder technischen Hintergrund ermöglicht, Data-Mining-Technologien<br />
zu verwenden. Unter anderem entstand ein Assistent, der Data-Mining-Prozesse<br />
vollautomatisch generiert, nachdem der Benutzer mit wenigen Klicks Eingabedaten<br />
und Analyseziel spezifiziert hat. Im Rahmen dieses Projektes begann auch<br />
die Entwicklung der Server-Lösung <strong>Rapid</strong>Analytics.<br />
ViSTA-TV. (http://vista-tv.eu/) Dieses ebenfalls von der EU <strong>im</strong> siebten<br />
Rahmenprogramm geförderte Projekt beschäftigt sich mit der Analyse von Datenströmen,<br />
wie sie von IPTV und klassischen Fernsehanbietern generiert werden.<br />
Ziel ist die Verbesserung des Benutzererlebnisses beispielsweise durch Anbieten<br />
geeigneter Empfehlungen sowie eine Auswertung zu Marktforschungszwecken.<br />
SustainHub. (http://www.sustainhub-research.eu/) Im Gegensatz zu den<br />
beiden erstgenannten Projekten ist das SustainHub-Projekt nicht in einem IT-<br />
43
5. Forschungsprojekte<br />
orientierten, sondern in einem anwendungsorientierten EU-Förderprogramm angesiedelt.<br />
Es geht dabei um die Nutzbarmachung von Nachhaltigkeitsinformationen<br />
in Zulieferketten und die Erkennung von Auffälligkeiten zum Zweck der<br />
Risikomin<strong>im</strong>ierung. Auch Methoden der statistischen Textanalyse kommen zum<br />
<strong>Einsatz</strong>, um automatisiert Nachrichten auf Ihren Bezug zu dieser Thematik zu<br />
untersuchen.<br />
ProMondi. Ziel des vom BMBF geförderten Projekts ProMondi ist die Opt<strong>im</strong>ierung<br />
des Produktenstehungsprozesses in der produzierenden Industrie. Beispielsweise<br />
sollen mit Hilfe von Data-Mining-Techniken bereits zur Konstruktionszeit<br />
die Einflüsse auf die Montagezeit erkannt und geeignete Alternativen best<strong>im</strong>mt<br />
werden.<br />
Healthy Greenhouse. (http://www.gezondekas.eu) Das Projekt Gezonde ”<br />
Kas“ ist ein Interreg IV A EU-Programm, in dessen Rahmen zehn Forschungseinrichtungen<br />
und 22 Unternehmen aus dem deutsch-niederländischen Grenzgebiet<br />
ein neuartiges integriertes Pflanzenschutzsystem entwickeln, das ein nachhaltiges<br />
Management moderner Gartenbauunternehmen ermöglichen soll. Data Mining<br />
Techniken werden hier beispielsweise angewendet, um frühzeitig mögliche Krankheiten<br />
und Schädlinge zu erkennen und mit weniger Pestiziden auszukommen<br />
oder um den Einfluss von Umweltgrößen auf Pflanzenwachstum und -gesundheit<br />
zu analysieren.<br />
Diese Übersicht kann vielleicht eine Anregung für eigene Forschungsideen sein.<br />
<strong>Rapid</strong>-I wird auch weiterhin sowohl anwendungsorientierte Projekte als auch Projekte<br />
<strong>im</strong> Bereich Data Mining auf nationaler und internationaler Ebene durchführen.<br />
Falls Sie Interesse an einer Forschungspartnerschaft haben, melden Sie sich bei<br />
research@rapid-i.com.<br />
44
Literaturverzeichnis<br />
[1] The R project for statistical computing. http://www.r-project.org/.<br />
[2] Weka 3: Data mining software in Java. http://www.cs.waikato.ac.nz/ml/<br />
weka/.<br />
[3] <strong>Rapid</strong>-I GmbH. <strong><strong>Rapid</strong>Miner</strong> Benutzerhandbuch, 2010. http://rapid-i.<br />
com/content/view/26/84/.<br />
[4] <strong>Rapid</strong>-I GmbH. <strong><strong>Rapid</strong>Miner</strong> API documentation. http://rapid-i.com/<br />
api/rapidminer-5.1/index.html, July 2012.<br />
[5] Marius Helf and Nils Wöhler. <strong><strong>Rapid</strong>Miner</strong>: Advanced Charts, 2011. <strong>Rapid</strong>-I<br />
GmbH.<br />
[6] Sebastian Land. How to extend <strong><strong>Rapid</strong>Miner</strong> 5. http://rapid-i.<br />
com/component/page,shop.product_details/flypage,flypage.tpl/<br />
product_id,52/category_id,5/option,com_virtuemart/Itemid,180/,<br />
2012. <strong>Rapid</strong>-I GmbH.<br />
45