Freitag, 08.12.2017
Martin Guist
ist studierter Diplom Ingenieur und bei eoda in der Softwareentwicklung tätig. An seiner täglichen Arbeit reizt ihn nicht nur das Interdisziplinäre, sondern besonders die Möglichkeit, mit wenigen Mitteln etwas Neues zu kreieren. Martin begreift sich also als Erfinder und das passt gut: Aktuell lebt er sich in der weiteren Produktentwicklung des data science environments aus.

Florian Löwenstein
legt Wert auf Details und Abwechslung: Treffen die Analysen die Erwartungen? Sind die Ergebnisse plausibel? Wo liegt noch Optimierungspotenzial? Der Data Scientist begeistert sich für jeden einzelnen Schritt entlang eines Analyseprojektes und dabei reizt ihn besonders der Austausch mit anderen Fachexperten. Sein liebstes R-Paket ist übrigens sqldf, und Geodaten findet er nicht nur auf Datenebene spannend, sondern auch äußerst ästhetisch.

Was ist eurer Meinung nach sinnvoller: Eine Data-Science-Sprache herausragend oder die verschiedenen Sprachen grundlegend zu beherrschen?
Martin: Viel wichtiger ist für mich das Bewusstsein für die Idee: Ich möchte eine bestimmte Sache automatisiert ausführen um ein bestimmtes Ergebnis zu bekommen und verfolge damit ein langfristiges Ziel. Gleichzeitig ist es hilfreich zu verstehen, wie die dahinterstehende Analyse und der Algorithmus funktionieren. Jede Sprache kann ähnliche Analysen ausführen, jedoch unterschiedlich bequem. Wichtiger ist also die Frage: Wie gehe ich mit dieser Sprache um? Daher empfehle ich, sich nicht auf eine Sprache festzulegen, sondern zu verstehen, wie das Rezept funktioniert und dieses dann umzusetzen.

Florian: Ich halte es schon für sinnvoll, den Schwerpunkt auf die Sprache zu legen, in der sich der einzelne Data Scientist besonders gut auskennt und die ihm oder ihr liegt – allein um die Anfangshürde möglichst niedrig zu halten. An einem gewissen Punkt sollte man jedoch auch in der Lage sein, die unterschiedlichen Einsatzszenarien der Sprachen zu kennen und zu unterscheiden: Wo hat die eingesetzte Sprache Vorteile? Wie kann ich die Nachteile meiner präferierten Programmiersprache ausgleichen? Welche Sprache passt besser zum Projekt? Um dann dem Kundenwunsch gerecht zu werden, ist eine Grundkenntnis von Python und R gleichermaßen schon maßgeblich.
Unsere Überzeugung: Open Source. Die Data-Science-Sprachen R, Python und perspektivisch Julia garantieren uns in der Programmierung und Visualisierung von Analyseprojekten ein hohes Maß an Flexibilität, Transparenz und Professionalität. Besonders durch die transparente Dokumentation der Analysen sind die Ergebnisse nachvollziehbar und dadurch besonders nachhaltig. Doch auch kommerzielle Sprachen wie Matlab sind grundsätzlich für Data-Science-Anwendungen geeignet. Weitere Open-Source-Sprachen sind beispielsweise Scala und Ruby.
Die meisten Data-Science-Projekte werden bei eoda mit R realisiert. Sind andere Programmiersprachen dann überhaupt ein Thema?
Florian: Jeder Mitarbeiter bei eoda kommt zwangsläufig mit R in Kontakt – mit R hat bei uns alles begonnen. Aber Data Science funktioniert nicht ohne Weiterbildung. Außerdem macht es auch einfach Spaß, sich vielfältig mit Data Science zu beschäftigen. Um also die Frage zu beantworten: Ja, andere Programmiersprachen sind definitiv ein Thema bei uns. Neben R setzen wir zunehmend auf Python. Ein Python-Analyseprojekt können wir genauso schnell realisieren, wie ein R-Analyseprojekt. Dasselbe gilt auch für andere Data-Science-Sprachen und -Methoden wie beispielsweise Deep Learning – es gibt immer Kollegen, die sich bereits intensiv mit dem Thema auseinandergesetzt haben.
Auch wenn wir in unserem Arbeitsalltag häufig mit R arbeiten, sind wir uns den potenziellen Schwachstellen bewusst und können im Einzelfall entscheiden, wann der Einsatz einer anderen Sprache mehr Sinn macht.
Martin: Gerade in der Softwareentwicklung setze ich eigentlich voraus, dass jeder Kollege mindestens die Grundregeln jeder Sprache beherrscht und hier unterstützend tätig sein kann. Wir profitieren dabei von einem nachhaltigen Zusammenspiel zwischen Software- und Data-Science-Kompetenz.
Wann nutzt ihr R, wann Python? Was sind die Vorteile?
Florian: Bei der Prototypenentwicklung ist R ganz eindeutig das Mittel der Wahl mit dem Ziel zu evaluieren, ob sich für den jeweiligen Use Case überhaupt ein valides Analysemodell entwickeln lässt und die gewünschten Ergebnisse liefert. R als Statistiksprache wird von einer vielfältigen Methoden-Bibliothek ergänzt, ständig kommen neue Pakete hinzu. Bevor ich also aufwändig Code schreiben muss, nur um das Potenzial einer Idee zu prüfen, kann ich diesen großen Fundus nutzen und spare so Zeit. So komme ich als Coder und natürlich auch der Kunde schneller an sein Ziel.
Bei jeder Analyse, die zeitkritisch ist, bekommt R dann aber Schwierigkeiten und Python wäre die bessere Alternative. Ein Beispiel ist maßgeschneiderte Werbung oder die allbekannten Online-Empfehlungen. Hier werden die Daten sehr schnell analysiert und die Ergebnisse verwertet, wir sprechen hier von Sekunden oder wenigen Minuten. Wenn es um das Einlesen großer Daten geht und keine Datenbank zur Verfügung steht, dann ist Python flexibler in der Nutzung.

Aber es ist immer eine Frage der Zielsetzung. Ein anderes Beispiel wäre hier ein typischer Predictive-Maintenance-Case: Wann fällt meine Maschine aus? Hier ist es wichtig, die Antwort mit einem gewissen Zeitvorlauf zu erhalten um anschließend reagieren zu können; den Techniker informieren, beispielsweise. Denn was nützt mir eine Meldung wenige Sekunden vor Maschinenausfall? Das geht gut in R, auch über den Prototyp hinaus.
Martin: Prinzipiell gilt es immer abzuwägen: Was will der Kunde für ein Ergebnis? Welche Frage will er beantwortet wissen? Und wie schnell muss die Antwort wirklich zur Verfügung stehen? Dabei müssen noch weitere Faktoren als allein die Sprachwahl berücksichtigt werden, beispielsweise die richtige Hardware oder die technische Anbindung. Auf Linux-Systemen ist Python sehr angenehm in der Handhabung, das macht Python in der Linuxverwaltung zu einer Topsprache. Ich kann mit Python darüber hinaus nicht nur Data Science betreiben, sondern auch handfeste Oberflächen und Applikationen bauen – das ist ein sehr großer Vorteil. Außerdem gibt es mittlerweile viele Pakete, die sowohl in R- als auch in Python-Bibliotheken zur Verfügung stehen und ähnlich funktionieren. Beispielsweise das bekannte R-Paket ggplot. Da entwickelt sich gerade ein ähnlich vielversprechendes Ökosystem, was aber heute noch lange nicht mit den R-Bibliotheken mithalten kann.
Ein Data-Science-Projekt gliedert sich in mehrere Phasen. Sobald die Fragestellung klar ist und sämtliche Verständnis-fragen beantwortet, schaut sich der Data Scientist die Daten an und entwickelt eine Analysestrategie. Das anschließende Da-tenmanagement ist dann der zumeist umfangreichste Part: Die Daten werden aufgeräumt, andere Datensätze (sofern zielführend) hinzugefügt und fehlende Daten imputiert. Erst die Arbeit, dann das Vergnügen: Jetzt folgt die Modellierung des Analysemodells. Sobald die Ergebnisse validiert und die Analysen dokumentiert sind, folgt der Part, der fast genauso wichtig ist, wie die Analyse selbst: Der Data Scientist kommuniziert die Ergebnisse und übergibt das Projekt an den Kunden.
Jede Sprache hat also Vor- und Nachteile, die es zu berücksichtigen gilt. Wie gehen Software-Teams damit um? Sollten Softwareentwickler das aufgreifen und Data-Science-Anwendungen programmieren, die multilingual funktionieren?
Martin: Das beste Produkt kann noch so gut entwickelt sein, wenn es am Markt vorbei kreiert wird. Wir haben uns also gefragt, welche Features der Data Scientist wirklich braucht und sind in diesem Kontext immer wieder auf das Potenzial der Mehrsprachigkeit gestoßen. Also: Ja, Softwareentwickler sollten diese Wünsche unbedingt aufgreifen.
Die Vorstellung, von jeder Sprache das Beste zu nutzen, hat dabei einen unglaublichen Charme: Datenmanagement mit Python, für die Analyse nutze ich R und das alles in einer Entwicklungsumgebung, die noch viele weitere Features bietet. Oder ich habe bereits gut funktionierende Skripte, die ich unkompliziert anbinden und automatisiert ausführen kann. Wir schaffen mit dem data science environment so nicht nur zwischen den Sprachen einen Austausch, sondern auch zwischen den einzelnen Fachabteilungen – ganz ohne Sprachhürden.

Florian: Auch aus Kostensicht macht das total Sinn: Um an einem Projekt zu arbeiten und sofort loslegen zu können, braucht eine kleine Data-Science-Abteilung dann je Sprache nur noch einen Entwickler – wenn überhaupt. Die Sprachpräferenz des jeweiligen Entwicklers spielt künftig einfach nicht mehr zwingend eine so große Rolle, es gibt kaum noch sprachlich bedingte Limitierungen. Wenn dann die Rahmenbedingungen stimmen, also die Kombination mehrerer Sprachen durch technische Hürden nicht ins Stocken gerät, wird das Potenzial von Data Science gekonnt ausgeschöpft.
Wie definiert sich perspektivisch der Begriff Data Science? Welche Entwicklungen sind zu erwarten?
Martin: Die Programmiersprachen entwickeln sich stetig weiter, Julia markiert da möglicherweise einen neuen Meilenstein. Data Scientists werden unabhängiger von der Sprache: Die Idee von einer Lösung, einem Programm kann vielfältig umgesetzt werden: Sie verbiegen sich nicht mehr durch Syntax-Limitierungen sondern schreiben eher intuitiv.
Florian: Dem stimme ich zu, glaube jedoch auch, dass jeder weiterhin Sprach-Präferenzen haben wird. Es wird immer R-Entwickler geben und Data Scientists, die lieber mit Python arbeiten. Weiterhin wird das Thema Open Source großgeschrieben, da müssen sich auch die Universitäten in ihren Lehrplänen hinbewegen. Auch Konzepte wie Künstliche Intelligenz und Deep Learning werden weiter ausgereift und erhalten vermehrt Einzug in unseren Arbeitsalltag.

Jedem Data Scientist empfehle ich daher den Blick über den Tellerrand und das ständige Hinterfragen der eigenen Arbeitstechnik: Ist eine kommerzielle Sprache wirklich noch zukunftsfähig? Haben Black-Box-Lösungen eigentlich wirklich Vorteile? Auch große Konzerne entdecken aktuell den Mehrwert von Open Source – das wird den Markt weiter verändern und spiegelt unser Verständnis von Data Science wider: transparent, zielgerichtet und nachhaltig.
Martin und Florian, vielen Dank für das Gespräch.
Starten Sie jetzt durch:
Wir freuen uns auf den Austausch mit Ihnen.