Python-Workshop in Dortmund

Letzte Woche wurden in einem viertägigen Workshop zur Vorbereitung auf die Lehrveranstaltung „Industrial Data Science 2“ die Grundlagen der Programmierung in Python vermittelt. Über den gesamten Workshop hinweg wurden im Anschluss an alle theoretischen Erläuterungen praktische Programmieraufgaben (Coding Challenges) von den Teilnehmenden umgesetzt. Durch die direkte Anwendung der gelernten Inhalte werden diese verfestigt und es findet eine aktive Beteiligung und ein guter Austausch im Workshop statt.

Inhalte

Der Workshop startet auf Anfängerniveau und umfasst die Erstellung des Setups, sowie eine Einführung in die Syntax von Python. Anschließend wird die Anwendung der Pakete Numpy und Pandas behandelt. Numpy ermöglicht den Umgang mit Vektoren, Matritzen und mehrdimensionalen Arrays. Pandas wird zur Verarbeitung, Analyse und Darstellung von Daten verwendet. Zum Ende des Workshops wird die Visualisierung von Daten mit Matplotlib behandelt und erste maschinelle Lernmethoden mit Scikit-learn umgesetzt. Im Folgenden werden die Inhalte des Workshops genauer erläutert.

Setup

Nach einer kleinen Einführung und der Installation der notwendigen Software wurde zunächst die Verwendung vom Command Line Interface für einige Python-Befehle im interaktiven Modus thematisiert. Darauf aufbauend wurden die Grundlagen zu Environments und Packeges, deren Vorteile und Verwendung erläutert sowie zwei Möglichkeiten – venv und conda – zur Erstellung einer virtuellen Python-Umgebung (Virtual Environment) vorgestellt. Zudem wurden verschiedene integrierte Entwicklungsumgebungen (Integrated Development Environments) mit ihren Eigenschaften aufgezeigt. Im Rahmen des Workshops wurde Visual Studio Code verwendet. In der ersten Übungseinheit haben die Teilnehmenden abschließend Möglichkeiten und Hinweise zur Strukturierung von Projekten und die Grundlagen von Versionskontrolle mit Git kennengelernt. Die Teilnehmenden haben eine virtuelle Python-Umgebung erstellt, die für die Durchführung der Coding Challenges des Workshops verwendet wird, und sie haben eine Projektstruktur für den Workshop angelegt.

Syntax

In der zweiten Übungseinheit wurden die Grundlagen der Programmierung mit Schwerpunkt auf die Programmiersprache Python vermittelt. Bei dem ersten Python-Programm „Hello world!“ angefangen, wurden danach die Grundlagen über Variablen und Datentypen, Operatoren sowie Strings und Benutzer-Eingaben erlernt. In der anschließenden Coding Challenge wurde von den Teilnehmenden ein Programm zur Berechnung von Spannung und Dehnung nach vorheriger Benutzer-Eingabe der benötigten Material- und Geometrieparameter geschrieben. Diese Coding Challenge wurde später erweitert, nachdem die Themen Kontrollstrukturen (Bedingungen, Schleifen, Fehler & Ausnahmen), Datenstrukturen (Listen, Dictionaries, Tupel & Sets) sowie Funktionen und Module (Definition, Argumente, Module & Pakete) behandelt wurden. Abschließend haben die Teilnehmenden eine Einführung in die objektorientierte Programmierung erhalten.

NumPy & Pandas

Nach der Installation der Pakete wurden die zahlreichen Anwendungsmöglichkeiten erläutert. Es wurden zum Einen die Grundlagen von Numpy, wie Array Attribute, Build-in Funktionen, Indexierung und Slicing vermittelt und zum Anderen mögliche Operationen und erweiterte Techniken, wie arithmetische und statistische Funktionen, Broadcasting, Reshaping und Transponieren von Arrays, Stacking und Splitting und die Verwendung von universellen Funktionen behandelt. Praktisch wird das gelernte an einer Coding Challenge umgesetzt, in der die Simulation der Spannungsverteilung eines Metall-Balkens nach unterschiedlichen Prozessschritten wie beispielsweise Wärmebehandlung mit NumPy durchgeführt wird (siehe folgende Abbildung).

Die Bibliothek Pandas ist besonders gut zur Datenverarbeitung geeignet. Nach dem Datenimport können die Daten mit Hilfe von den tabellenartigen Datenstrukturen Series und DataFrame übersichtlich zusammengefasst werden. Es können ausgewählte Zeilen, Spalten und Werte analysiert, bearbeitet, hinzugefügt und gelöscht werden. Außerdem können die Daten mit Pandas gefiltert, sortiert und gruppiert werden sowie Pivot- und Kreuz-Tabellen erstellt werden. All diese nützlichen Funktionen wurden im Workshop vermittelt und in einer Coding Challenge umgesetzt. In der Coding Challenge wurde ein Datensatz aus dem Bereich Kunststoff-Spritzguss verwendet und alle gelernten Möglichkeiten zur Datenverarbeitung mit Pandas angewandt.

Matplotlib

In der Übungseinheit zur Bibliothek Matplotlib haben die Teilnehmenden gelernt, wie verschiedene Diagrammtypen mit dem Modul Pyplot erstellt werden können. Zum Einstieg haben sie einfache Linien-, Streu- und Balkendiagramme sowie Histogramme mit entsprechenden Überschriften, Achsbeschriftungen und einer Legende erstellt. Außerdem wurden zu jedem Diagrammtyp einige sinnvolle Features vermittelt, wie zum Beispiel das Hinzufügen von Gitterlinien, das Ändern der Farbe, Größe, Form und Transparenz einer Datenreihe oder der Datenpunkte. Zusätzlich zu diesen Basis-Funktionen wurden im Rahmen von Coding Challenges mehrere Subplots erstellt, ähnlich wie in der folgenden Abbildung dargestellt. Zum Abschluss haben die Teilnehmenden weitere Diagrammtypen, wie Pie-Charts, Heatmaps und 3D-Plots kennengelernt.

Scikit-learn

In der letzten Übungseinheit des Workshops haben die Teilnehmenden die Grundlagen der Bibliothek Scikit-learn gelernt. Mit Scikit-learn können unterschiedliche Methoden maschineller Lernverfahren umgesetzt werden. Dazu werden die Daten zunächst vorbereitet, indem beispielsweise fehlende Werte mithilfe des SimpleImputer ersetzt, Werte mit dem StandardScaler skaliert oder mit einem Normalizer normalisiert werden. Anschließend wurde der verwendete Datensatz in Trainings- und Testdaten unterteilt und sowohl ein Klassifikationsmodell als auch ein Regressionsmodell angewandt. Mit entsprechenden Kennwerten wie der Accuracy (Genauigkeit), der Precision (Präzision), dem Recall und dem F1-score wurden die Modelle evaluiert. Außerdem haben die Teilnehmenden die Kreuzvalidierung kennengelernt und angewandt.

Abschluss & Fazit

Zum Abschluss des Python-Workshops haben die Teilnehmenden alle gelernten Inhalte an einem Datensatz zur Anomalieerkennung im Schraubprozess genutzt, um ein maschinelles Lernmodell zu erstellen, das gelungene Verschraubungen von defekten Verschraubungen unterscheiden soll.

Trotz sehr unterschiedlicher Erfahrungen im Umgang mit anderen Programmiersprachen oder mit Anwendungen in Python, konnten alle Teilnehmenden dem Workshop gut folgen und durch entsprechende Inhalte und Anwendungsaufgaben individuelle Fortschritte machen. In Zukunft soll der Workshop ebenfalls eigenständig zu bearbeiten sein. Die Workshopinhalte werden dann den Studenten entsprechend zur Verfügung gestellt.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert