Erstellen einer Kaggle InClass Competition

Kaggle

Eine der bekanntesten Online Plattformen für Machine Learning und Data Science Projekte ist Kaggle. Bereits sieben Jahre nach ihrer Gründung im Jahr 2010 verzeichnete sie bereits über eine halbe Millionen Mitglieder und verfolgt dabei ein simples Prinzip. Viele Unternehmen besitzen Unmengen von Daten, wissen aber nicht wie sie damit umgehen sollen und welcher Mehrwert aus ihnen gewonnen werden kann. Aus diesem Grund können auf Kaggle sogenannte Competition erstellt werden, in welchen die Unternehmen ihre Daten der Community mit einer präzisen Fragestellung frei zur verfügung stellen [1]. Jedes Mitglied, egal ob Hobby Tüftler oder hoch angestellter Data Engineer kann an der Competition teilnehmen, welche meist mit einem hohen Geldpreis versehen sind.


Dieses Prinzip möchte sich auch die FH Wedel zu nutzen machen, um Studenten einen Einstieg in das Thema Machine Learning zu gewährleisten. Dabei soll eine Kaggle Academic InClass Competition erstellt werden, in welcher Teilnehmer der Modul-Übung in Gruppen an einer konkreten Fragestellung arbeiten und einen praktischen Umgang mit verschiedenen Methoden und Algorithmen erlernen.

Was ist Machine Learning?

Machine Learning ist ein Teilgebiet der künstlichen Intelligenz und beschreibt die selbstständige Aufnahme und Erweiterung von Wissen in Systemen durch Anwendung geeigneter Verfahren. Dabei lernt ein Algorithmus mit einem bestehenden Problem umzugehen und dieses besser zu lösen als zuvor [2]. Es wird zwischen überwachten und unüberwachten Lernen unterschieden. Während das unüberwachte Lernen meist im Bereich Big Data Anwendung findet, bezieht sich das überwachte Lernen auf bekannte meist historische Daten. Diese werden in Trainings- und Testdaten aufgeteilt. Ziel ist es den Algorithmus anhand der Trainingsdaten zu verbessern und auf unbekannte Testdaten anzuwenden. Daraus können zum Teil sehr präzise Vorhersagen für verschiedene Bereiche getroffen werden [3]. Eines der gängigen Verfahren ist der “CRoss-Industry Standard Process for Data Mining” – kurz CRISP-DM.

CRoss-Industry Process for Data Mining (CRISP-DM)

Der CRISP-DM Prozess wurde 1996 von Teilnehmer wie DaimlerCrysler oder IBM im Rahmen eines EU-Förderprojektes entwickelt und hatte das Ziel einen einheitlichen und branchenübergreifenden Prozess für Data Mining Projekte zu formulieren. Aufgeteilt wird der Prozess sechs Kernfaktoren [4]:


Business Understanding: Festlegen der Ziele und Anforderungen.

Data Understanding: Datensammlung und Ermittlung möglicher Probleme der Datenqualität.

Data Preparation: Datenaufbereitung und Bereitstellen des endgültigen Datensatzes

Modeling: Anwendung geeigneter Machine Learning Verfahren.

Evaluation: Auswahl eines geeigneten Modells.

Deployment: Aufbereitung und Präsentation der Ergebnisse.

CRISP-DM Lebenszyklusmodell
Abbildung 1: CRISP-DM Lebenszyklusmodell [5]

Beim Durchlauf den CRISP-DM Prozesses gibt es eine Vielzahl an möglichen Verfahren und Herangehensweisen. Jede davon ist auf eine bestimmte Fragestellung geeignet und wird in verschiedene Aufgabentypen unterteilt:

  • Klassifikation: Bewertung der Daten Anhand von vorher festgelegten Klassen.
  • Segmentierung: Zusammenfassung der Daten in Gruppen auf Basis von Ähnlichkeitsmaßen.
  • Abweichungs-/Änderungsanalyse: Überprüfung von signifikanten Abweichungen des Datensatzen von einem oder mehreren definierten Referenzwerten.
  • Abhängigkeitsanalyse: Aufdecken von von Beziehungen zwischen verschiedenen Objekten oder zwischen Merkmalen eines Objektes.

Kaggle InClass Competition

Das erstellen einer InClass Competition in Kaggle untergliedert sich in das Einrichten der Competition und der Auswahl/Bewertung des Datensatzes. Kaggle stellt hierfür einen englischsprachigen Setup Guide zur Verfügung, welcher wie eine Schritt für Schritt Anleitung verwendet werden kann [6]. Das Erstellen der Competition bezieht sich zu Anfang auf die Darstellung des User Interfaces. So werden der Title, Description und URL festgelegt. Im Menüpunkt “Overview” können alle Parameter bezüglich Aufgabenstellung, Evaluation, wichtige Hinweise und Timeline definiert werden. Wichtig hierbei ist die Competition anschließend auf Private (limited) zu stellen, da sie per Default auf “Public” gesetzt ist und dies nach Veröffentlichung nicht mehr rückgängig zu machen ist.

Anschließend werden unter dem Menüpunkt “Data” alle notwendigen Rohdaten hochgeladen. Kaggle besitzt hier eine Übersicht Funktion, welche direkt einen Einblick in die Daten gewährt. Weiter werden unter dem Menüpunkt „Host“ im Unterpunkt „Evaluation“, Solution File und Sample Submission File als .csv-Datei hochgeladen.

  • Solution File: ein bereits gelöster Datensatz, welcher für die Bewertung notwendig ist und nur aus den Spalten “ID” und “Output” besteht. Der „Output“ ist hierbei abhängig von der ursprünglichen Fragestellung der Competition. In unserem Fall orientieren wir uns an der Fehlerabweichung (MAE).
  • Sample Submission: Ein bearbeiteter Datensatz, welcher ebenfalls aus den Spalten “ID” und “Output” besteht und dem Solution File als Referenz dient.

Durch den Abgleich von Solution File und Sample Submission kann die Plattform eine Score Metric ermitteln. Welche Metrik hierfür verwendet werden soll kann von dem Host der Competition unter dem Unterpunkt „Evaluation“ selber bestimmt werden. Eine bewährte Metrik ist die Fehlerabweichung (MAE).

Vorteile
Die Vorteile einer Kaggle InClass Competition bestehen in der Übersichtlichkeit und Struktur des Projektes. Kaggle bietet eine zentrale Plattform, auf welcher Studenten sich neben der eigentlichen Aufgabe austauschen und gegenseitig fördern können. Alle Hinweise und benötigte Unterlagen sind zentral hinterlegt. Die dauerhafte Einsehbarkeit der Ergebnisse schafft Transparenz und ermöglicht es den Studenten untereinander Hilfestellung zu leisten. Das Diff-Programm erlaubt eine direkte Code Vergleichbarkeit von zwei Notebook, dieser Punkt ist gerade für die Evaluation hilfreich.

Nachteile
Die Nachteile einer InClass Competition bestehen in der Bewertung der Ergebnisse. Die Plattform evaluiert den Output anhand einer einzigen Metrik. Voraussetzung dafür ist ein gut ausgearbeitetes Solution File und eine von den Studenten erstelltes Submission File, welche am Ende der Competition hochgeladen wird. Das eigentliche Notebook und die damit verbundene Ausarbeitung wird nicht berücksichtigt. Gerade für Einsteiger kann es allerdings schwer sein ein perfektes Modell zu entwickeln, wodurch explorative Erkenntnisse von der Bewertung außen vor gelassen werden.

Ablauf der Übung und Evaluierung der Ergebnisse
Um eine InClass Competition erfolgreich abschließen zu können, sollte diese frühestens im 5. Fachsemester angeboten werden. Dadurch haben Studenten ausreichend Grundkenntnisse in Bereichen wie diskrete Mathematik, Statistik, Programmierung oder Datenbanken. Eine Modul-Übung sollte hierbei das gesamte Semester umfassen und eine ausgewogene Aufteilung von Theorie und Praxis besitzen. Zu Beginn werden die Studenten auf die kommenden Herausforderungen vorbereitet und erhalten in den ersten Wochen genügend theoretischen Input in den Bereichen Business Intelligence, Data Science und Programmieren mit Python. Die praktische Übung sollte in Gruppenarbeiten vorgenommen werden. Für einen Einstieg bietet die Plattform Kaggle einige Kurse an, welche als Grundlage bearbeitet werden sollten. Darunter fallen unter anderem Python, Machine Learning und Data Exploration.

Für die Durchführung der Übung sollte ein Datensatz gewählt werden, welcher keine zu komplexer Datenstruktur aufweist, aber dennoch signifikante Merkmalsausprägungen besitzt. Kaggle stellt hierfür Einsteiger gerechte Datensätze zur Verfügung. Studenten könnten hierbei zum einen vordefinierte Fragen beantworten und zum anderen durch “Learning by doing” eigene Erkenntnisse erlangen. Die Evaluierung der Ergebnisse sollte unabhängig von Kaggle vorgenommen werden und selbstständig von dem jeweiligen Dozenten bestimmt werden. Dadurch kann mehr als eine Metrik beurteilt werden und die Studenten haben die Möglichkeit, sich auf die Ausarbeitung des Notebooks zu konzentrieren. In die finale Bewertung fließt sowohl der Inhalt des Notebooks, die Qualität und die daraus gewonnen Ergebnisse sowie eine Abschlusspräsentation der Gruppen mit ein.

Quellen:

[1] Usmani, Zeeshan-ul-hassan, What is Kaggle (2017), https://www.kaggle.com/getting-started/44916 (Stand:2017,Abruf: 04.06.2019)

[2] Siepermann, M. (2017). Maschinelles Lernen. http://wirtschaftslexikon.gabler.de/Definition/maschinelles-lernen.html (Stand: 2017, Abruf: 01.06.2019)

[3] Aunkofer B., Überwachtes und unüberwachtes Lernen (2017), https://data-science-blog.com/blog/2017/07/02/uberwachtes-vs-unuberwachtes-maschinelles-lernen/ (Stand: 2017, Abruf: 01.06.2019)

[4] IBM, CRISP-DM (2019) https://www.ibm.com/support/knowledgecenter/de/SS3RA7_sub/modeler_crispdm_ddita/clementine/crisp_help/crisp_overview.html (Stand: 2019, Abruf: 27.05.2019)

[5] Chapman, P., Clinton, J., Kerber, R., Khabaza, T., Reinartz, T., Shearer, C., CRISP-DM 1.0. https://www.the-modeling-agency.com/crisp-dm.pdf (Stand: 2019, Abruf: 04.06.2019)

[6] Kaggle, Setup Guide (2019), https://storage.googleapis.com/kaggle-media/random/InClassSetupGuide.pdf (Stand:2019,Abruf: 01.05.2019)


Schreibe einen Kommentar

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