• Keine Ergebnisse gefunden

Plattform R – De-facto-Standard-Tool für Data Mining

R ist eine freie Programmiersprache für statistisches Rech-nen und statistische Grafiken. R ist Teil des GNU-Projekts, auf vielen Plattformen verfügbar80 und gilt zunehmend als die statistische Standardsprache sowohl im kommerzi-ellen als auch im wissenschaftlichen Bereich81.

79 z. B. eine Reparatur an einer Pumpe bevor diese ausfällt

80 http://www.r-project.org/

81 http://r4stats.com/articles/popularity/

Der Funktionsumfang von R kann durch eine Vielzahl von Paketen erweitert und an spezifische Problemstellungen angepasst werden. Viele Pakete können dabei direkt aus einer über die R-Console abrufbaren Liste ausgewählt und automatisch installiert werden.

Zentrales Archiv für diese Pakete ist das Comprehensive R Archive Network (CRAN). Aktuell stehen über 5.000 Pakete auf CRAN82 zur Verfügung. R läuft in einer Kom-mandozeilenumgebung. Darüber hinaus hat der Nutzer die Auswahl unter mehreren grafischen Benutzeroberflä-chen (GUI), beispielsweise RStudio83 (vgl. Abbildung 14):

Abbildung 14: RStudio – freie grafische Benutzeroberflächen für R

Im Bereich Data Mining gibt es ebenfalls sehr viele frei verfügbare Pakete84 sowie GUIs.

Als Beispiel soll das Paket Rattle85 (vgl. Abbildung 15) dienen:

Abbildung 15: Rattle – freie grafische Benutzeroberfläche für Data Mining

Als Illustration dient ein vollständiges, einfaches und bewusst neutrales Beispiel86, welches einen möglichen Ablauf eines Data Mining-Projektes skizziert: Der Vorher-sage der Regenwahrscheinlichkeit auf Basis verschiedener Wetterdaten.

Die Gliederung der Benutzeroberfläche in den Reitern ist dem Data Mining-Prozess nachempfunden. Zuerst wird der mitgelieferte Beispieldatensatz weather geladen (im Data-Tab auf Execute und dann auf Yes klicken)

(vgl. Abbildung 16).

82 http://cran.r-project.org/web/packages/index.html

83 http://www.rstudio.com/

84 http://cran.r-project.org/web/views/MachineLearning.html

85 http://rattle.togaware.com/

86 Hier noch einmal detaillierter nachlesbar:

http://www.springer.com/cda/content/document/cda_downloaddocument/9781441998897-c1.pdf?SGWID=0-0-45-1277951-p174110667

Die Benutzeroberfläche ist auch in Deutsch verfügbar, die Screenshots wurden jedoch aus Konsistenzgründen zum besseren Abgleich mit dieser Quelle auf Englisch belassen.

Abbildung 16: Schritt 1 – Laden des Beispieldatensatzes

Die Variable RainTomorrow ist als Zielvariable gekenn-zeichnet, da in den Daten nach Mustern gefahndet wer-den soll, ob es morgen regnet oder nicht. Zuerst verschafft sich der Anwender einen Überblick über die Daten, in dem er sich die Verteilung in Bezug auf die Tagestemperatur und Sonnenscheindauer anschaut. Er geht hierzu auf den Reiter Explore und markieren dort unter Distributions für MinTemp und Sunshine jeweils Box Plot und Histogram (vorher deaktiviert er noch Advanced Graphics unter Settings) (vgl. Abbildung 17).

Abbildung 17: Schritt 2 – Gewinnung des Überblicks über die Daten

Danach klickt der Anwender wieder auf Execute, das Ergebnis sieht folgendermaßen aus:

Abbildung 18: Schritt 3 – erste grafische Analyse von zwei Variablen

In diesen Grafiken ist bereits sehr viel Information enthal-ten; es zeigt sich bereits auf den ersten Blick, dass beide Variablen eine gewisse Trennschärfe in Bezug auf die Prognose von Regen am nächsten Tag haben könnten. So scheinen z. B. eine höhere Temperatur und kürzere Son-nenscheindauer eine höhere Regenwahrscheinlichkeit am nächsten Tag anzukündigen. Der Anwender probiert noch einmal eine andere Variable, die morgendliche Windrich-tung, welche dedizierte Kategorien hat, d.h. er markiert Bar Plot, Dot Plot und Mosaic für WindDir9am im selben Fenster und klicken wieder Execute (vgl. Abbildung 19).

Abbildung 19: Schritt 4 – grafische Analyse einer weiteren Variablen

Ohne auch hier ins Detail zu gehen, ließe sich z. B. die These formulieren, dass nördlicher Wind zu einer erhöh-ten Regenwahrscheinlichkeit führen könnte, was genauer zu untersuchen wäre. Als nächstes will der Anwender ein Modell bauen, welches die verschiedenen Variablen in einen Zusammenhang stellt. Dafür eignet sich z. B. ein Baum, an dem sich ablesen lässt, welches die geeignets-ten Variablen zur Prognose sind. Dafür geht der Anwender auf Reiter Model und klickt Execute (vgl. Abbildung 20).

Abbildung 20: Schritt 5 – Untersuchung der verschiedenen Variablen im Zusammenhang

Zur Veranschaulichung klickt der Anwender auf Draw (vgl. Abbildung 21).

Abbildung 21: Schritt 6 – Generierung eines Entscheidungsbaums

Der Anwender sieht hier z. B. dass nach der Regel Nr. 7 eine 74%ige Regenwahrscheinlichkeit am nächsten Tag vorliegt, wenn der Luftdruck weniger als 1.012 Hektopas-cal beträgt und die Sonnenscheindauer geringer als 8,9 Stunden ist. Diese Regeln kann über die Schaltfläche Rules auch noch einmal explizit ausgelesen werden

(vgl. Abbildung 22):

Abbildung 22: Schritt 7 – Auslesen der Regeln des Entscheidungsbaums

Tree as rules:

Rule number: 7 [RainTomorrow=Yes cover=27 (11%) prob=0.74]

Pressure3pm< 1012 Sunshine< 8.85

Rule number: 5 [RainTomorrow=Yes cover=9 (4%) prob=0.67]

Pressure3pm>=1012 Cloud3pm>=7.5

Rule number: 6 [RainTomorrow=No cover=25 (10%) prob=0.20]

Pressure3pm< 1012 Sunshine>=8.85

Rule number: 4 [RainTomorrow=No cover=195 (76%) prob=0.05]

Pressure3pm>=1012 Cloud3pm< 7.5

Zum Abschluss dieses Beispiels soll noch die Güte des Modells überprüft werden (beim Reiter Evaluate auf Tes-ting und wieder auf Execute klicken) (vgl. Abbildung 23):

Abbildung 23: Schritt 8 – Überprüfung der Modellgüte

Anhand der sog. Error matrix ist sichtbar, dass das Modell bereits ohne weitere Optimierung in 62% der Fälle »kein Regen« und in 18% der Fälle »Regen« richtig vorhersagt, d.h. in über 80% richtig liegt. In 11% der Fälle macht das Modell eine falsch-positive Vorhersage, d.h. es sagt Regen voraus, es bleibt aber trocken. In der Praxis problemati-scher dürften die 9% falsch-negativen Fälle sein, in denen man ohne Regenschirm aus dem Haus geht und dann doch nass wird. An dieser Stelle würde in der Praxis eine weitere Verfeinerung des Modells ansetzen müssen.

Das Beispiel kann jedoch nur einen winzigen Teil der Möglichkeiten von Data Mining bzw. von Rattle und R aufzeigen87.

4.3.7 Machine Learning

Begriffsbestimmung

Der Begriff Machine Learning beschreibt eine Vielzahl von Anwendungen und Methoden, in denen Computerpro-gramme selbstständig neues Wissen erwerben. Übli-cherweise geschieht dies durch statistische oder logische Analysen gegebener Daten sowie durch die Anwendung rechenintensiver Algorithmen, um optimale Lösungen zu gestellten Aufgaben zu finden. Im Unterschied zu einfachen statistischen Auswertungen oder den generell ergebnisoffeneren Zielsetzungen des Data Mining88, z. B.

neue Muster zu finden, ist im Machine Learning meist das Wie im Lösen konkreter Probleme die zentrale Fragestel-lung. Zum Beispiel können in komplexen Planungsauf-gaben zwar alle nötigen Daten explizit vorliegen, aber eine optimale Strategie nur rechnergestützt ermittelbar sein, da für eine manuelle Auswertung zu viele Optionen existieren (kombinatorische Explosion).

Typischerweise wird durch Machine Learning gewonne-nes Wissen für die Analyse historischer Daten aufbereitet (vgl. Data Mining) oder in automatischen Prozessen direkt zur Anwendung gebracht. Insbesondere bei der automati-schen Anwendung ist die fehlerfreie Erfassung von Infor-mationen, eine korrekte Interpretation der Daten in ihrem Kontext sowie die Generalisierung des daraus erwor-benen Wissens von zentraler Bedeutung, da manuelle Validierung und Korrekturen meist entfallen müssen. Zum Beispiel können zeitliche Merkmale und sich ändernde Trends eine automatische Anpassung des Wissens aus historischen Daten an die zukünftige Verwendung erfordern. Daraus ergibt sich, dass Machine-Learning-Anwendungen meist als mehrschichtige Systeme anstatt isolierter Komponenten betrachtet werden und an ihrem Endergebnis, üblicherweise quantitativ, zu messen sind.

Praktische Beispiele maschinellen Lernens finden sich vor allem in der modellbasierten Datenanalyse89, der

87 Weitere Informationen im Buch »Data Mining with Rattle and R« von Graham Williams (2011), aus dem auch das Beispiel und das oben verlinkte 2. Kapitel stammen (weitere Auszüge: http://www.amazon.de/exec/obidos/ASIN/1441998896/348-62-21)

88 Data Mining verwendet meist Machine-Learning-Methoden zur Mustererkennung.

89 In verschiedenen Clustering-Verfahren werden Parameter gesucht, unter denen das Modell die Daten bestmöglich nach vorgegebenen Qualitätskriterien segmentiert.

Vorhersagen-Modellierung90 sowie der automatischen Interaktion von Maschinen mit ihrer Umwelt91.

Gemeinsam haben alle Machine-Learning-Anwendungen, dass

„ eine konkrete Aufgabendefinition vorliegt,

„ Wissen und Erfahrungen aus einer algorithmischen Anwendung gewonnen werden können und

„ der Erfolg einer Methode direkt oder in Nachbetrach-tung messbar ist.

Strikte Lösungswege zur Herbeiführung eines erwünsch-ten Ergebnisses, bzw. deren Parameter, sind in der Praxis selten im Vorfeld manuell definierbar. Die Probleme sind dafür üblicherweise zu komplex92, zu stark von den oft zuvor unbekannten Daten einer Anwendung abhängig93 oder sie unterliegen unkontrollierbaren Umwelteinflüs-sen und erfordern somit automatische Anpassungen – oftmals sogar in Echtzeit94. Machine Learning beschäftigt sich daher mit Verfahren, um günstige Lösungsansätze für Probleme, die manuell nicht oder nur unter hohem Kostenaufwand lösbar sind, automatisch zu erlernen und in der Anwendung weiterzuentwickeln.

Übliche Ansätze beruhen darauf, erhobene Daten statis-tisch auszuwerten, um Relationen zwischen beobach-teten Situationen, den Auswirkungen von ausgeführ-ten Aktionen und der eigenen Leistung aufzudecken.

Besonders hervorzuheben ist hierbei der statistische Zusammenhang von Beobachtungen mit vorherzusa-genden Eigenschaften, zum Beispiel welche aktuellen meteorologischen Messungen die besten Indikatoren für das morgige Wetter bieten. Daher finden sich im maschi-nellen Lernen viele Überschneidungen mit klassischer

Statistik, Data Mining (Mustererkennung) und auch Visu-alisierungsaufgaben zur Modellbewertung. Bei Daten- und rechenintensiven Verfahren sind insbesondere auch Lösungen aus verschiedenen Big-Data-Themenbereichen, wie der effizienten Speicherung großer Datenmengen oder der Verteilung von Rechenlast notwendig.

Supervised Learning – das Beispiel