Das Zeitalter der Daten

09. Mär 2017 | Blog

VON Johannes Moosbrugger

Wer sich dieser Tage mit den großen Zukunftstrends der Branche oder allgemein der westlichen Gesellschaft befasst, der kommt am Thema Daten nicht vorbei. Schlagwörter wie „Big Data“ oder „Data Analytics“ dominieren die Schlagzeilen. Fakt ist, die Menschheit produziert so viele Daten wie noch nie zuvor und diesen Datenschatz gilt es zu heben. Doch anstatt über theoretische Aspekte zu philosophieren, wollen wir uns an dieser Stelle mit den Werkzeugen zur Bearbeitung „des wertvollsten Rohstoffs des 21. Jahrhunderts“ beschäftigen.


Wer jetzt sofort an Excel oder ähnliche Tabellenkalkulationsprogramme denkt, hat sicher nicht ganz Unrecht. Excel hat im Zusammenhang mit Datenanalyse durchaus seine Berechtigung, ist jedoch eher mit einem Werkzeugkoffer für den privaten Haushalt zu vergleichen. Wer wirklich professionell mit seinen Daten arbeiten will, der braucht auch professionelles Werkzeug. Und dabei bieten sich einem heutzutage zwei Optionen: R (https://www.r-project.org/) und Python (https://www.python.org/).


Obwohl die Frage „R oder Python“ wohl am besten mit „R und Python“ beantwortet wird, wollen wir hier die Gemeinsamkeiten und Unterschiede dieser beiden Programmiersprachen vergleichen. Sowohl R als auch Python können also zur professionellen Datenanalyse verwendet werden. Doch woher kommen diese beiden Sprachen und wer steckt dahinter?


R ist eine Weiterentwicklung von S, einer statistischen Programmiersprache die in den Bell Laboratories (https://www.bell-labs.com/) entwickelt wurde. Ross Ihaka und Robert Gentleman veröffentlichten im Jahr 1995 die erste R-Version. Seit damals erfreut sich R vor allem im akademischen Bereich und in der Forschung großer Beliebtheit, findet heutzutage aber auch zunehmend in der Privatwirtschaft seine Anwendung. Als Beispiel sei hier die Heartland Bank of New Zealand genannt, die ihre komplette Analyse-Plattform auf einen R-Server migrierte (https://customers.microsoft.com/en-US/story/heartlandbank). Das Design und die Weiterentwicklung von R obliegen der sogenannten R-Core Group und der R-Foundation.


Python wurde im Jahr 1991 von Guido Van Rossum entwickelt. Im Gegensatz zu R besteht die Gruppe der Python-Anwender schon seit jeher vornehmlich aus Softwareentwicklern und klassischen Programmierern. Die Weiterentwicklung von Python wird von der Python Software Foundation (PSF) vorangetrieben.


Die große Gemeinsamkeit und Stärke von R und Python ist die freie Verfügbarkeit beider Technologien (Open Source). Dabei spielt der monetäre Aspekt nur indirekt eine Rolle. Viel wichtiger ist die dadurch entstandene große Gemeinschaft an R- und Python-Entwicklern, die sich über unzählige Foren, Blogs und Tutorials austauschen. Außerdem ist es jedem Anwender möglich, die Grundfunktionalitäten durch sogenannte „Libraries“ zu erweitern. Diese Zusatzpakete können dann einfach mit den anderen Anwendern geteilt werden, womit wiederum alle Zugriff auf diese Neuerungen erhalten. Da diese Praxis des „freien Softwarevertriebes“ vor allem an den Universitäten gelebt wird, ermöglicht dies einen denkbar einfachen und in dieser Form noch nie dagewesenen Zugang zu den aktuellsten Ergebnissen aus der (vordringlich mathematischen und statistischen) Forschung.


Es ist genau diese ständige Weiterentwicklung und Erweiterung der Funktionalitäten durch die weltweite Community (zurzeit gibt es in etwa 60.000 Zusatzpakete für R), die R und Python von kommerziellen Lösungen wie SAS (https://www.sas.com) und SPSS (https://www-01.ibm.com/software/at/analytics/spss/) abheben. Dieses Potential wurde mittlerweile auch von großen Akteuren erkannt. So veröffentlichte Microsoft vor kurzem seine eigene R-Distribution „Microsoft R Open“ (https://mran.microsoft.com/open/) und treibt die Integration von R in eigene Systeme, wie dem Microsoft SQL-Server, voran (https://msdn.microsoft.com/en-us/library/mt604845.aspx). Auch Facebook nimmt am freien Austausch von Datenanalyse Know-how teil. So wurde vor kurzem die R-Library „Prophet“ (https://facebookincubator.github.io/prophet/) veröffentlicht. Dieses Zusatzpaket beinhaltet jene Methoden zur Zeitreihenanalyse, die von Facebook zur Prognose von unzähligen der eigenen Geschäftsbereiche verwendet wird.


Natürlich birgt die Anwendung von R und Python für die Datenanalyse auch Nachteile. Im Vergleich zum klassischen „Werkzeugkoffer“ (Excel und Co.) ist die Lernkurve ungleich steiler. Eine gewisse IT-Affinität sowie Grundkenntnisse der Programmierung helfen hier enorm weiter. Dabei erspart ein versierter Umgang mit R oder Python aber auch viel Zeit. Die Automatisierung von repetitiven Arbeitsschritten ist zum Beispiel in den meisten Fällen leicht umsetzbar.


Ein weiterer Kritikpunkt an R und Python ist oft die fehlende Haftung. So garantiert kein Entwickler für die Korrektheit der von ihm veröffentlichten Libraries, die Verantwortung liegt ganz beim Anwender. Kommerzielle Technologieanbieter können dies zwar bieten, doch nicht ansatzweise mit der rasanten Entwicklung neuer Technologien durch die Community mithalten. Somit stellt sich für viele Anwendungszwecke die Frage, ob Open Source oder Kommerziell erst gar nicht, da keine kommerzielle Software die erwünschten Funktionalitäten bietet, bzw. diese zuerst selbst implementiert werden müssten. Einen Kompromiss stellen hier kommerzielle Distributionen von R und Python dar, die naturgemäß allerdings nicht alle aktuellen Erweiterungen abdecken.


Zum Abschluss wollen wir R und Python noch einmal direkt gegenüberstellen. R stammt aus einem starken akademischen Umfeld, wird aber durch die aktuellsten Entwicklungen und den Support von Größen wie Microsoft auch für den praktischen Einsatz immer interessanter. Daten können mit R flexibel eingelesen werden, sind schnell aufbereitet und komplexe statistische Modelle sind vergleichsweise einfach umzusetzen. Python hingegen ist eine „klassische“ Programmiersprache, welche sich in der jüngeren Vergangenheit immer mehr dem Thema Datenanalyse widmet. Somit eignet sich Python sehr gut für Enduser-orientierte robuste Softwarelösungen. Und das Beste zum Schluss: R und Python lassen sich einfach vereinen! Sowohl für R (rPython - https://rpython.readthedocs.io/en/latest/) als auch für Python (RPy2 - https://rpy2.bitbucket.io/) existieren Zusatzpakete, die einen Zugriff auf Funktionen und Methoden der jeweils anderen Technologie ermöglichen.

Hier können Sie den Verfasser gerne kontaktieren: johannes.moosbrugger@grawe.at