Webworker Logo

Machine Learning mit Python

So gelingt Dir der Einstieg

3 hilfreiche Data Science Tools

Als Digitalagentur lieben wir natürlich Javascript und Typescript. Nur wenn es um das Thema „Machine Learning“ geht, setzen wir ganz auf Python. Der Grund dafür ist einfach: kaum eine andere Programmiersprache bietet so mächtige und populäre Libraries für Machine Learning. Wir zeigen Dir, welche Tools Du Dir auf jeden Fall anschauen solltest.

1. SciKit Learn

Wenn es um Supervised Learning im Small-Data Bereich geht, steht SciKit Learn ganz weit oben auf der Liste. Das Toolkit umfasst nahezu alle klassischen Algorithmen für Supervised Learning und stellt sie in einer intuitiven API zur Verfügung. Anfänger können schnell erste Erfolge  erzielen und bei Fragen auf eine ausgezeichnete Dokumentation zurückgreifen. Auch ist die Wahrscheinlichkeit hoch, die Antwort auf eine Frage bereits auf Stackoverflow zu finden, dank des hohen Verbreitungsgrades der Library.

Nicht zu vergessen sind auch die nützlichen Helfer, die SciKit Learn mitbringt und damit sowohl das Vorbereiten der Daten als auch das Evaluieren des erstellten Modells vereinfacht. Selbst wenn Du ein Classification Model mit einem Gradient Boosting Algorithmus wie LightBoost erstellst, kann der ROC-AUC Score von SciKit Learn verwendet werden, um eine verlässliche Aussage über die Qualität der gewonnenen Ergebnisse zu liefern. Egal wo Dich Deine Reise mit Machine Learning später einmal hinführen wird: mit SciKit Learn wird der Einstieg in Dein neues Aufgabengebiet fast schon zum Kinderspiel!

2. Pandas

Pandas ist eine mächtige Library zur Manipulation von Daten in tabellarischem Format. Wenn Du aus der Javascript Welt kommst und dort schon mal umfangreichere Transformationen an Arrays vornehmen musstest, wirst Du sehr zu schätzen wissen, wie elegant dieselben Aufgaben mit Pandas gelingen – und zwar in der Regel ganz ohne Loops! Die meisten Machine Learning Tools in der Python Welt bieten Support für Pandas Dataframes und auch im Zuge des Preprocessings und Feature Engineerings muss vielfach auf die Fähigkeiten von Pandas zurückgegriffen werden. Aus diesem Grund empfehlen wir Dir wirklich eine gründliche Beschäftigung mit Pandas. Nur wenn Du die Ins- and Outs- von dieser Library so gut kennst wie Deine Westentasche, kannst Du den zahlreichen Machine Learning Tutorials im Internet problemlos folgen und bei eigenen Projekten in annehmbarer Geschwindigkeit zum Ergebnis kommen. Du sparst Dir viel Frust und Rätselraten, wenn Du Dir Zeit nimmst und Dich in Pandas einarbeitest!

Du kannst einen DataFrame ganz einfach erstellen, indem Du sowohl die Spaltennamen als auch die Daten als normale Python Liste übergibst. Im Jupyter Notebook kannst Du Dir das Ergebnis dann als schön formatierte Tabelle anzeigen lassen.

Eines der nützlichsten, aber für Neulinge auch verwirrendsten Features ist das Auswählen von Teilbereichen der Tabelle über definierte Bedingungen. Haben wir es beispielsweise mit einer Liste von Personen und ihren Daten wie Name, Alter und Augenfarbe zu tun, können wir in nur einer Zeile leicht definieren, dass wir nur die ersten drei Einträge der Tabelle haben wollen, oder nur die Augenfarbe von allen Personen, oder nur alle Personen, die jünger sind als 30 Jahre. Dies gelingt Dir durch das Benutzen von “loc”, “iloc” und das direkte Übergeben einer Bedingung in eckigen Klammern. Je nachdem, welchen Background Du in der Software Entwicklung hast, kann der Syntax erstmal sehr gewöhnungsbedürftig sein. Es lohnt sich aber definitiv sich damit zu befassen, denn es ist eine der Aufgaben, die Du im Small-Data Bereich mit Python häufig erledigen musst.

Eines der am meisten verwendeten Features von Pandas: das Auswählen von bestimmten Tabellenbereichen mithilfe von loc, iloc und Bedingungen. Für den Einsteiger erstmal sehr befremdlich, aber unerlässlich, wenn Du Machine Learning in Python machen willst!

3. Seaborn

Eine Erweiterung der populären Plotting Software “Matplotlib” ist eine nützliche Library namens “Seaborn”. Sie beherrscht noch mehr Plot Typen und bietet eine vereinfachte Handhabung. Außerdem sind die erstellten Grafiken ein echter Hingucker – ideal also, um Dir einen visuellen Überblick über Deine Daten zu verschaffen und in Präsentationen eine gute Figur zu machen.

Einen guten Überblick über die Korrelation zwischen Deinen Features kann Dir die “Heatmap” Funktion von Seaborn geben. Im obigen Beispiel kannst Du zum Beispiel sofort erkennen, dass der Preis eines Diamanten stark mit der Karat-Zahl korreliert und wenig mit seiner Höhe (bzw. “Tiefe”).
Der Violinplot ist eine sehr gute Möglichkeit, die Verteilung Deiner Daten im Bezug auf verschiedene Kategorien zu überschauen. Der obige Plot zeigt zum Beispiel die Verteilung des Alters aller Passagiere der Titanic sowohl für die überlebenden, als auch für die nicht überlebenden Personen. Wir sehen auf den ersten Blick, dass sich die beiden Verteilungen bei niedrigem Alter unterscheiden: die Erwachsenen bemühten sich, kleine Kinder bevorzugt zu retten.

Das Repertoire von Seaborn geht über die bekannten Standardplots hinaus und beinhaltet unter anderem fortgeschrittene Techniken wie den “Violinplot”. Dieser eignet sich hervorragend dazu, um die Verteilung der Daten im Hinblick auf eine bestimmte Variable für mehrere Kategorien gleichzeitig darzustellen. Viel Information auf einmal, zugegeben – aber wenn Du einmal weißt, wie Du den Violinplot interpretieren kannst, dann liefert er Dir auf einen Schlag eine Menge Informationen über die Daten, mit denen Du arbeitest. Bei Data Science ist der Schlüssel zum Erfolg in aller Regel die zugrundeliegenden Daten sehr tiefgehend zu verstehen. Unerlässlich dafür ist die Fähigkeit, schnell den richtigen Plot im Kopf zu haben und ohne großes Nachdenken erstellen zu können. Natürlich wirst Du am Anfang oft die Dokumentation konsultieren müssen, um Befehle nachzuschlagen, aber mit etwas Übung wirst Du immer besser werden und die Plots einfach aus dem Gedächtnis erstellen können. Wenn Du einmal auf diesem Level bist, wird die Arbeit erst richtig Spaß machen und effizient vor sich gehen. Deshalb raten wir Dir dringend ab von mechanischem Copy & Paste. Nimm Dir Zeit und lerne die Möglichkeiten von Seaborn kennen – Du wirst definitiv davon profitieren!

Was kommt nach den Basics?

Die vorgestellten Libraries bieten Dir einen sehr guten Einstieg in die Welt von Machine Learning in Python. Wenn Du allerdings über die Basics hinausgehen willst, wirst Du irgendwann mit ihnen an Deine Grenzen stoßen. Pandas ist sehr nützlich im Umgang mit tabellarischen Daten, aber wenn diese eine bestimmte Größe überschreiten, dann benötigst Du ein Werkzeug wie Apache Spark, das in der Lage ist, die Arbeit auf mehrere Rechner zu verteilen. Auch kann es sein, dass Du beim Trainieren von komplexen Modellen an die Grenzen Deines Rechners stößt. Speziell für diese Aufgaben optimierte Services in der Cloud wie Amazon Sagemaker oder GCP Machine Learning Engine (MLE) können Dir helfen, die harte Arbeit auf speziell für diese Zwecke optimierte Maschinen auszulagern und damit das Maximum aus Deinen Daten rauszuholen. Der Workflow aus dem Bereitstellen der Daten, dem Trainieren Deines Modells und dem Deployment in ein Production Environment ist komplex und bedarf einiges an Wissen über verschiedene Cloud Services.

Wir werden Dir bald in einem neuen Blogbeitrag einen Überblick über die verfügbaren Möglichkeiten verschaffen und Dir helfen, auch diesen Schritt zu gehen. Bis dahin wünschen wir Dir viel Erfolg mit Deinen ersten Experimenten in der Welt des maschinellen Lernens mit Python!

Pfeil nach oben