06.11.2013 Aufrufe

RapidMiner im akademischen Einsatz - Documentation - Rapid

RapidMiner im akademischen Einsatz - Documentation - Rapid

RapidMiner im akademischen Einsatz - Documentation - Rapid

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!