data > opinion

Tom Alby

3 Ablauf eines Data Science-Projekts

2020-10-20


Grundlegende Überlegungen

Welches Problem soll gelöst werden?

Wie im vorherigen Abschnitt betont geht es im Data Science-Bereich darum, dass Werte generiert werden. Es reicht nicht aus, tolle Modelle aus akademischer Sicht zu erstellen. Der Projektsponsor, in der Regel ein Unternehmen, muss einen messbaren Vorteil daraus erhalten.

Um dies sicherzustellen ist es absolut notwendig, das Geschäft und seine Prozesse zu verstehen. Dies bedeutet, das in der Regel viel Zeit zusammen mit den Kollegen verbracht werden muss, um interne Abläufe zu verstehen. Umgekehrt bedeutet das, dass die Abteilungen, die von einem Data Science-Projekt profitieren wollen, auch Zeit investieren müssen, um zu erklären und frühe Prototypen zu testen.

Datensammlung, -reinigung und -transformation

Saubere Daten sind eine absolute Notwendigkeit für eine Datenanalyse, denn ansonsten können die Daten falsch interpretiert werden. Datenbereinigung nimmt häufig die meiste Zeit in Anspruch, bis zu 80% des Aufwandes sind keine Seltenheit.

Grundsätzlich lässt sich der Prozess der Datenbereinigung in die folgenden Schritte unterteilen (nach de Jonge und van der Loo):

  1. Rohdaten: unbehandelt
  2. Technisch korrekte Daten: Datentypen sind überprüft und gegebenenfalls korrigiert, Daten sind normalisiert
  3. Konsistente Daten: Korrektur und Imputation
  4. Statistische Analyse: Nutzung der sauberen Daten

Mit jedem Schritt wird die Datenqualität verbessert. Es ist empfehlenswert, dass die Daten in jedem Stadium separat gespeichert werden, so dass im Zweifelsfall noch auf eine frühere Stufe der Daten zurückgegriffen werden kann.

Innerhalb von R sehen de Jonge und van der Loo die Erfüllung der folgenden Bedingungen als notwendig an, um von einem technisch korrekten Datensatz zu sprechen:

  • Daten sind in einem Data Frame gespeichert mit passenden Spaltennamen
  • Jede Spalte hat genau den Datentyp, der die Daten am besten repräsentiert.

Dummerweise importiert read.csv und seine Geschwister die Daten nicht immer so wie sie eigentlich sollten. Mit readLines kann aber zumindest zunächst einmal geschaut werden, welcher Datentyp am besten passt. Die Umwandlung dann von einem Datentyp zu einem anderen wird als Coercion bezeichnet.

Manchmal sind die Daten aber auch nicht in dem favorisierten Format vorhanden, zum Beispiel sind Beobachtungen nicht in Zeilen organisiert. Hier kann das tidyverse gute Dienste leisten, die im nächsten Kapitel besprochen werden.

Konsistente Daten sind Daten, die zunächst einmal technisch korrekt sind und sich dann durch weitere Überprüfung und Bereinigung für die statistische Analyse eignen. Hier geht es nicht mehr um Datentypen, sondern vor allem darum, dass fehlende Daten, offensichtliche Fehler oder Ausreißer entfernt, ausgeglichen oder korrigiert werden falls notwendig. Dazu muss in der Regel Wissen über die Domaine der Daten vorhanden sein. Zum Teil wird unterschieden in

  • in-record consistency, d.h. es dürfen keine widersprüchlichen Daten vorhanden sein in einem Eintrag, und
  • cross-record consistency, d.h. dass es keine Konflikte zwischen verschiedenen statistischen Parametern der einzelnen Variablen gibt, und
  • cross-dataset consistency, d.h. es darf keine Widersprüche zu anderen Datensätzen geben.

Ein mögliche Inkonsistenz sind fehlende Werte, in R als NA gekennzeichnet. NA bedeutet zunächst einmal nicht 0 und auch nicht unknown. In R unterscheiden wir zwischen

  • NA: Not available
  • NULL: Ein Objekt, das von einer Funktion ausgegeben wird, vor allem wenn ein Wert undefiniert ist
  • NaN: Not a number

Bei NA muss entschieden werden, ob der Wert ersetzt werden kann. Gegebenenfalls ergibt es Sinn, alle Zeilen, in denen ein NA vorkommt, nicht in der Analyse zu verwenden. Dazu gibt es in vielen Funktionen die Option na.rm.

Offensichtliche Inkonsistenzen können durch Regeln abgefangen werden, zum Beispiel kann das Alter einer Person nicht unter 0 liegen, einen Führerschein erhält man nicht unter 16 Jahren in vielen Ländern, und ein Kind kann noch keine eigenen Kinder haben.

Ein Problem stellen Ausreißer / Outlier da. Diese sehen inkonsistent zu den anderen Daten aus, aber hier ist zu unterscheiden zwischen unmöglichen Daten (jemand ist über 150 Jahre alt) und unwahrscheinlichen Daten (jemand ist 110 Jahre alt.) Ausreißer sind also nicht unbedingt Fehler, und sie müssen auch nicht unbedingt entfernt werden. Boxplots mit ihren Whiskers sind eine Möglichkeit, Ausreißer zu identifizieren (siehe nächstes Kapitel).

Grundsätzliche Ansätze

Es wird unterschieden zwischen

  • Supervised Learning und
  • Unsupervised Learning

Bei dem Supervised Learning werden der Maschine Beispiele gegeben, zum Beispiel Bilder von Katzen und Hunden, um den Algorithmus darauf zu trainieren, dass er diese in Zukunft erkennen kann. Bei dem Unsupervised Learning geht es darum, dass der Algorithmus selber Muster findet, um verschiedene Cluster zu identifizieren.

Performance-Messung

Grundsätzlich sind drei verschiedene Metriken zu beachten:

  • Wie gut funktioniert ein Modell?
  • Wie viel Business Impact bringt ein Modell?
  • Wie ist der ROI des Data Science Teams?

Für die Modell-Performance existieren verschiedene Mess-Möglichkeiten:

  • ROC AUC: Receiver Operating Characteristics Area Under the Curve
  • AUPR: Area Under the Precision Recall Curve
  • Top Decile Lift

Aus dem Labor in die Welt

Ein Modell muss in der Regel in bestehende Systeme integriert werden. Dies ist häufig eine größere Herausforderung, denn dies bedeutet auch, dass bestehende Systeme “angefasst” und “modifiziert” werden müssen. Beispiel: Für die Berechnung einer Kreditausfallwahrscheinlichkeit soll ein Modell direkt in das bestehende Kundenmanagement-System eingebunden werden. Ist dies nicht möglich, so müssten Mitarbeiter die Daten aus dem Kundenmanagement-System in das ML-System eingeben, was eine Fehlerursache sein kann und zur niedrigeren Akzeptanz des Systems führen kann. Auch ergibt sich hier ein Overhead, der dazu führen kann, dass der Mehrwert des Systems zunichte gemacht wird. Die Zielapplikation sollte von Beginn an mit eingeplant werden.