dl026: datathon – women in data science
Intro (00:00:00)
Thema des Podcasts (00:00:18)
Willkommen zur 26. Folge beim datenleben-Podcast, dem Podcast über Data Science. Wir sind Helena und Janine und möchten euch die Welt der Daten näher bringen. Was für Daten gibt es? Was können wir aus ihnen lernen? Und wie können wir sie überhaupt benutzen? Wer schon immer mehr darüber wissen wollte, ist hier richtig, denn diesen Fragen gehen wir nach.
Thema der Folge (00:00:39)
- Wir haben zusammen mit zwei anderen Menschen an einem datathon teilgenommen und möchten heute darüber erzählen
- Und zwar handelte es sich um den Women in Data Science Datathon der Stanfort University
- Weltweit haben mehrere Hundert Teams teilgenommen und wir wollten auch mitmischen
- Was wir dabei und wie wir das erlebt haben, wie wir uns organisiert haben und was die interessanten Probleme waren, die sich uns dabei gestellt haben
- Ausserdem welche Lösungen wir -- und auch andere -- entwickelt haben
- Dazu haben wir natürlich die anderen beiden auch eingeladen, die sich gleich noch kurz vorstellen, nachdem Helena uns jetzt erstmal erzählt, warum wir das Thema interessant genug für eine Folge finden
- Also es geht gleich darum, wie der Datathon strukturiert war, wie wir uns organisiert und wie wir gearbeitet haben und was allgemein so unsere Erfahrung damit war
Warum ist das Thema interessant? (00:01:35)
- Seit Lisa in Folge dl018: 3d-modelle aus fotos vom Coding da Vinci Datathon erzählt hat, wollten wir auch mal an einem Datathon teilnehmen
- Weil datathons bieten praxisnahe Themen und im Team arbeiten, analysieren und lernen macht Spaß
- Die Teams durften aus bis zu 4 Leuten bestehen und deswegen haben wir uns Verstärkung geholt
- Zum einen Piko, Piko war schon in der Folge dl021: python lernen! dabei
- Zum anderen Keks, die heute zum ersten Mal bei uns im Podcast ist
Wer sind Piko und Keks? (00:02:53)
- Piko wohnt in Hamburg, eigentliche Ausbildung Musik und Stimme
- ist über Hacking und Aktivismus in die Informatik gekommen
- gibt Python-Kurse und promoviert zur Anwendung von Maschinelearning im Musiktheater
- Nebenher ganz viel Feminismus; bei den Haecksen aktiv
- Keks schreibt gerade eine Masterarbeit in Astrophysik, muss dafür auch Dinge programmieren
- Am Datathon auch teilgenommen, um eingerostete Pythonkenntnisse für die Masterarbeit aufzufrischen wollen
- Ansonsten vor allem mit politischer Bildungsarbeit beschäftigt
Einspieler: Was ist ein Datathon? (00:04:02)
- Ein Datathon ist im Wesentlichen das gleiche wie ein Hackathon
- Und ein Hackathon wiederum ist eine Veranstaltung, bei der innerhalb eines bestimmtes Zeitraumes Projekte entwickelt oder weiterentwickelt werden.
- Es setzt sich zusammen aus Hacken und Marathon.
- Ziel ist es in der vorgegebenen Zeit mit technischen und kreativen Ansätzen Lösungen für die gestellte Aufgabe oder das vorliegende Problem zu finden.
- Beziehungsweise verbergen sich hinter einem Hackathon oft weitere Ziele, die über die Aufgabenstellung hinaus gehen
- Manche Firmen und Unternehmen nutzen diese als eine Form der Produktentwicklung
- Oft können auch Start-Ups aus Hackathons entstehen
- Andere richten sich eben an bestimmte Zielgruppen, zum Beispiel auch an Jugendliche, um die Auseinandersetzung mit Technologie zu fördern und einiges mehr
- Beim Datathon geht es wiederum ganz konkret um den Umgang mit Daten.
- So auch beim Datathon der Stanfort University, der zusammen mit der Konferenz Women in Data Science stattfindet.
- Im Falle des Women in Data Science Datathons ist das Ziel, Frauen zum Einstieg in Data Science zu ermutigen
- Entsprechend sieht auch das Angebot aus, sich bei der Konferenz zu beteiligen, an Workshops teilzunehmen und sich mit anderen zu vernetzen.
- Bei der diesjährigen Ausgabe war das Thema Umwelt und Klimawandel im Fokus
- Es gab einen großen Datensatz mit Gebäuden und deren spezifischen Eigenschaften wie Gebäudenutzung, Gebäudetyp, welcher von x möglichen Standorten als Variable
- Zusätzlich waren Angaben zu den klimatischen Bedingungen gegeben, wie Hitzetage, Nebel, Niederschlag und mehr
- Es wurden über 25800 Einträge auf der Plattform des Datathons vorgenommen
- Von über 4000 Registrierungen haben 1800 Personen Einträge vorgenommen
- Und die Teilnehmer*innen kamen aus über 90 Ländern
Wie war dar Datathon organisiert? (00:05:59)
- Die Anmeldung erfolgte über die Stanfort University
- Zusätzlich mussten wir uns auch auf https://kaggle.com/ anmelden
- Kaggle: bietet die Möglichkeit Datathons einzurichten, Teams zu bilden, Daten auszutauschen, sich zu vernetzen
- Ist so eine Art Social Media für Data Scientists
- Wir haben dort einen Datensatz mit über 70.000 Einträgen bekommen und einen zweiten Datensatz mit über 10.000
- Mit dem kleineren Datensatz sollten wir dann Testen den Energieverbrauch vorherzusagen und unser Ergebnis auf der Plattform hochzuladen
- Das wurde dann mit den echten Werten abgeglichen und dann tauchen die einreichenden Teams auf dem Scoreboard auf, wo zu sehen ist, wer wie nah herangekommen ist an die echten Werte
- Das wurde während des Datathons auf der Hälfte der Daten gerechnet
- Aus dem Grund, damit der eigene Algorithmus nicht nur darauf abgestimmt wird, einen besseren Score auf dem Leaderboard zu erhalten
- Es gab auf Kaggle auch Beispielauswertungen von den Veranstalter*innen, als erste Anhaltspunkte
- Der Datathon ging 2,5 Monate und wurde die ganze Zeit von weiteren Veranstaltungen begleitet
- Unter anderem: Vorträge zum Datensatz, wie bestimmte Modelle bearbeitet werden etc.
- Weil wir dort ein Team bilden mussten auf Kaggle, haben wir uns auch einen Namen gegeben: Intrusive Unicorn
- First things first: Unser Team Name lautet Intrusive Unicorn - Aufdringliches Einhorn
- Für das besteste Teamfeeling entstand dafür auch ein Logo, was sehr motivierend war
Wie haben wir uns organisiert und die Daten erschlossen? (00:10:03)
- 1 wöchentliches Treffen, wo wir zusammen Dinge besprechen, Aufgaben verteilen
- Dazwischen gab es Treffen, wo wir zu zweit an den Dingen gearbeitet haben
- Es gab 2 Arbeitstreffen um konkret am Code zu frickeln und anzupassen -> Pairprogramming
- Pairprogramming: 1 Person ist der "Driver", die Person, die alles ausführt und 1 Person (bei uns mehrere), die die Ansagen macht, was gemacht werden muss
- Es bearbeitet immer nur die 1 Person den Code, während die andere eben Vorschläge macht etc.
- Vorher mussten wir aber die Daten kennenlernen
- Wichtig: Wie kriege ich gute Daten hin? Vor allem wenn viele Informationen fehlen?
- Eine Sache war das Energy Star Rating, das nur für 70% der Gebäude vorlag
- Also erste Frage: Kann man damit was anfangen?
- Zweite Frage: Was kann man damit anfangen?
- Es gibt verschiedene Daten: einige sind Zahlen, andere nicht
- facility_type: 1 Kategorie mit 60 verschiedenen Möglichkeiten
- Wohnhäuser, Geschäftshäuser, etc.
- Einzelne davon kommen sehr oft vor, andere sehr selten
- Idee: Wir müssen die Kategorien in Zahlen umwandeln
- Piko hat dafür das Vorgehen mit One Hot Encoding vorgeschlagen
Was ist One Hot Encoding? (00:13:42)
- Nehmen wir 5 Häusertypen: Wohnhaus, Schuppen, Tiefgarage, Mehrfamilienhaus, Büroturm
- Problem: weisen wir einfach der Reihe nach die Zahlen 1 bis 5 zu, stolpert die KI darüber
- Wenn es unsicher ist, ob es 1 oder 3 ist, würde die KI die Mitte, also 2 ausgeben und damit einfach sagen: Es ist ein Schuppen!
- Das funktioniert also nicht
- Bei One Hot Encoding werden aus 1 Kategorie mit 5 Variablen erstmal 5 Kategorien gemacht
- Und dann wird geguckt zu wie viel Prozent das Ding in welche Kategorie passt
- Wenn es zu 0,4% ein Wohnhaus, zu 0,2% ein Schuppen und zu 0,3% ein Hochhaus
- So hat man zwar viele Kategorien, weiß aber, welche Ausprägung davon wahrscheinlicher ist/stattfindet
- Das ist wichtig, weil ja der Schuppen nicht das Mittelding aus Wohnhaus und Hochhaus ist
- Aus der Kategorie mit 60 Ausprägungen haben wir letztendlich 3 Kategorien gemacht, weil wir Subtypen zusammengefasst haben
Was gab es noch für Stolpersteine in den Daten? (00:16:48)
- Ein Beispiel ist die Jahr-Kategorie
- Die wich manchmal zwischen den beiden Datensätzen voneinander ab, deswegen haben wir sie erstmal ausgelassen
- Die Bundesstaaten haben wir nicht mit Namen genannte bekommen, sondern mit Zahlen von 1 bis 6
- Die waren in beiden Datensätzen jeweils unterschiedlich häufig vorhanden
- In die Daten wurde im Vorfeld viel Arbeit gesteckt, um zum Beispiel die Bundesstaaten zu anonymisieren
- Eine Idee die wir zwischendruch hatten: Die Daten deanonymisieren, aber das haben wir schnell verworfen
- Wir haben uns sehr intensiv damit befasst, wofür die Spaltennamen stehen und was wir damit tun sollen
- Janine und Keks hatten ein Treffen, um sich nur damit zu befassen, was eigentlich hinter den Daten steckt
- Teils steckten da komplexe meteorologische Rechnungen und Angeben hinter
- Es war auch sehr spannend, erstmal von den Zahlen zurückzutreten und zu überlegen, was das jeweils bedeutet und wie man damit umgehen kann
- Fragen: Was hat welchen Einfluss? Ist diese Angabe für uns überhaupt wichtig?
- Energy Star Rating spielte vermutlich eine sehr große Rolle, die maximale Windgeschwindigkeit vermutlich eher nicht
- Haben uns auch die Frage gestellt, warum diese Analyse und der Versuch so einer Vorhersage überhaupt relevant ist
- Was könnte das Ziel dieser Analyse sein? Wie und wofür kann diese angewendet werden?
- Zum Beispiel, wie wird sich der Energieverbrauch haben, welche Häuser sollten gebaut werden?
- Passt dieser Häusertyp in diese Region mit seinem Energieverbrauch?
- Könnte das Modell helfen in die Zukunft zu projizieren, wie sich die Energiebilanz der Häuser ändert, wenn sich das Klima in der jeweiligen Region wie verändert?
- Janine fand es sehr hilfreich nicht nur abstrakt mit den Daten umzugehen, sondern einen praktischen Ansatz zu wählen und zu überlegen, was diese Analyse leisten kann
- Baujahre der Gebäude: Es gab ein Gebäude das im Jahr 0 gebaut wurde
- Das stach sehr heraus und es kann vermutet werden, dass das vielleicht ein Defaultwert ist
- Die nächste Jahreszahl war dann etwas mit 1600
- Wir brauchten statt der 0 aber einen "richtigen Wert", also haben wir ein Durchschnittsbaujahr berechnet und eingetragen
- So etwas haben wir bei einigen anderen Parametern auch gemacht, fehlende Werte wurden häufiger durch Durschnittswerte ersetzt
- Oder auch mal mit dem Median, was der mittlere Wert ist zwischen allen Werten, die Existieren und nicht der Durchschnitt als allen vorhandenen Werten
- Eine andere Option: Wenn in einem Datensatz zu einem Gebäude zu viele Werte fehlen, kann man den auch mal ganz rauswerfen
- Bei Datensätzen zu 70.000 Gebäuden macht es nichts, wenn einige fehlen
- Einige Spalten/Kategorien haben wir auch entfernt, weil dort teilweise bis zu 80% der Daten fehlten
- Oder eben ob die Angabe für uns überhaupt spannend, hat es einen Effekt auf unser Modell?
- Da mussten wir eine Balance für finden
- Die Daten waren ja im Vorfeld auch schon gut bearbeitet, das war auch Teil der Herausforderung
- Einige Probleme wurden absichtlich im Datensatz belassen, da auch das Bereinigen der Daten Teil der Aufgabe von Data Scientists ist
- Für die Bereinigung der Daten haben wir uns viele Histogramme und Boxplots angeguckt, wie oft kommen welche Daten vor etc.
Unsere Einreichung: Neuronales Netz oder doch ein Entscheidungsbaum? (00:29:12)
- Danach ist die Frage: Wie kommen wir von den Daten auf die Zahlen, die wir am Ende ausrechnen wollen?
- Wir haben mit einem neuronalen Netz angefangen
- Das sind sozusagen mathematische Funktionen, die hintereinander geschaltet werden und ihre Ergebnisse aneinander übergeben
- Diese einzelnen Fuktionen werden als Neuronen, wie sie in Gehirnen existieren, bezeichnet
- So viele Zahlen, wie man in das Netz wirft, so viele Neuronen hat es zu beginn
- Am Ende wirft es dann ebenfalls Zahlen raus
- Wenn ein Ergebnis rauskommt, dass wir abgleichen können mit realen Daten und sehen, dass das nicht stimmt, können wir das neuronale Netz anpassen, bis es in diesem Punkt stimmt
- Problem Overfitting: Wenn das Modell zu gut auf die Trainingsdaten angepasst ist, funktioniert es vielleicht nicht richtig auf den echten Daten dann
- Deswegen teilt man die Daten vorher in verschiedene Gruppen auf: Trainingsdaten, Testdaten, Validierungsdaten
- Damit das neuronale Netz nicht zu spezifische Regeln "auswendig lernt" und sie auf alles anwendet, auch wenn es nicht mehr passt
- Wir haben herausgefunden, dass das Energy Star Rating die Vorhersage durchgehend besser macht, als wenn es ausgelassen würde
- Aber weil das teilweise als Angabe fehlte, und wir mit diesem Modell auch recht weit hinten im Scoreboard waren, haben wir weiter überlegt, was es für Optionen gibt
- Nur weil neuronale Netze hip und cool sind, müssen sie ja nicht die beste Lösung sein
- Helena kam darauf, dass die besseren Vorhersagen von einem Entscheidungsbaum erzeugt wurden
- Entscheidungsbäume verwenden wir selbst auch ganz oft, zum Beispiel wenn wir uns beim Aufräumen entscheiden müssen, wohin wir etwas tun
- Nimm einen Gegenstand in die Hand: Ist es ein Kleidungsstück? Wenn Ja, tu es in den Kleiderschrank. Wenn nein, ist es ein Buch? Wenn ja, tu es in das Bücherregal, etc.
- So können belieb komplizierte Bäume mit Verzweigungen entstehen und jeder Gegenstand wird dabei behandelt
- Entscheidungsbäume werden von der Maschine selber gebaut, sieht im Datensatz Dinge und errechnet daraus, welche Regeln am effizientesten sind
- Was sollte als erstes gefragt werden, um den größten Teil klar aufzuteilen?
- Wir haben die Modelle mit verschiedenen Entscheidungsbäumen gerechnet
- Um die Ergebnisse zu optimieren, hat Helena ein paar Werte mit Durchschnitten verschiedener Modelle berechnet
- Damit sind wir dann auf Platz 337 von 829 Teams gelandet, also in den Top 50% 😀
- Mit den neuronalen Netzen wären wir im letzten Zehntel gelandet
- Die ersten 6 Wochen haben wir uns fast nur damit befasst: Was passiert hier eigentlich in den Daten?
Wie sahen andere Lösungen aus? (00:40:44)
- Nach dem Datathon haben auch andere Teams ihre Einreichungen veröffentlicht?
- Die Bäume kamen auch bei den besten Einreichungen mit vor
- Es war offensichtlich, dass sie auch mehr Zeit investiert haben, um mehr Details zu testen
- Offenbar hatten die auch eine ganz wesentliche Erkenntnis: Wenn man kein Energy Star Rating hat, wird das Ergebnis immer auf die gleiche Weise unterschätzt
- Sie haben das dann immer mit einem konstanten Faktor multipliziert und da verschiedene Faktoren getestet
- Helena weiß nicht warum das funktioniert, ist aber sehr fasziniert von dem Ergebnis
- Eine konstante Verschätzung heißt, dass Modell hat einen Bias
- Eine andere Gruppe hatte Entscheidungsbäume und neuronale Netze und mehr ausprobiert, die haben die Ergebnisse aus allen Modellen genommen und dann gewichtet und daraus Durchschnittswerte gebildet, die das Modell besser gemacht haben
- Das hatte Helena innerhalb der Entscheidungsbäume auch so gemacht bei uns, aber eben nicht mit verschiedenen Modellen
Wie war der Datathon für uns? (00:43:47)
- Was war schwierig? Was hat uns sehr gefallen?
- Für Janine war der schwierige Part das Verständnis für den Datensatz zu entwickeln
- Dabei sind auch schön viele Randbereiche aufgetaucht, in die man sich einarbeiten konnte
- Es ist sehr cool mit einem Team teilzunehmen, in dem man sich wohl fühlt
- Und es ist schön zu merken, dass jede*r sich einbringen konnte mit dem eigenen Wissen
- Keks hat es Spaß gemacht im Team, auch kennen zu lernen, wie die anderen arbeiten
- Schön war auch, dass alles ohne Druck war und wir einfach nur schauen wollten, wie es ist
- Hat ein Gefühl für Data Science und Maschinelearning entwickelt und wird sich vielleicht auch beruflich in diese Richtung orientieren
- Fand es spannend zu sehen, mit was für unterschiedlichen Voraussetzungen wir was beitragen konnten
- Es macht Sinn, wenn wir was lernen wollen, auch mal was ganz anderes inhaltlich zu machen und dabei etwas zu lernen, was auch angewendet werden kann
- Für Piko war ausschlaggebend die gute Atmosphäre im Team, zum Beispiel in den Pairprogramming Sessions
- Es gab kein Ungleichgewicht, dass einzelne nur erklärt haben, sondern Austausch und Beitrag von allen
- Fand es gut Maschinlearning auch mal praktisch anzuwenden und zu merken, dass die vorher theoretisch gelernten Sachen auch verstanden waren und angewendet werden konnten
- Helena fand es auch cool im Team zu arbeiten, allein für die Motivation und die Verbindlichkeit am Ball zu bleiben
- Fand es gut Maschinelearning mal wieder aufzufrischen und anwenden zu können, weil es im Berufsalltag eher weniger vorkommt
- Inhaltliches Learning: Mit neuronalen Netzen angefangen, aber nur weil es vielseitig und komplex ist, ist es nicht unbedingt das beste, es geht auch mal mit einfacheren Prozessen
- Vorbereitung der Daten hat echt viel Zeit in Anspruch genommen
- Würden wir das wieder machen? Ja!
Fazit (00:50:26)
- Der Women of Data Science Datathon war gut aufgezogen, es gibt Infos, Veranstaltungen und Austausch auch zwischen den Teams via Kaggle
- Wir hatten eine feste Arbeitsstruktur mit regelmäßigen treffen, 1x Woche + Treffen zu Themen zu zweit
- Von den Skills her divers aufgebaute Teams können gut funktionieren, es sollten aber ein Mensch dabei sein, der*die schon Erfahrungen im Bereich Data Science hat
- Es geht super viel Zeit drauf, um die Daten kennenzulernen und zu putzen
- Für diesen Datathon hat für unser Team der Entscheidungsbaum besser funktioniert als ein neuronales Netz
- Wichtigstes Fazit: Austausch einfach super wichtig
- Feststellung: Es ist möglich Vorhersagen über den Energieverbrauch zu treffen
- Spannend, weil es zeigt, dass es möglich ist, mit dieser Datenanalyse wirklich praktische Dinge machen zu können
- Falls Menschen zuhören, die Interesse daran haben auch mal mitzumachen: der Women in Data Science Datathon findet offenbar jedes Jahr statt
- Ansonsten gibt es auch andere Datathons über Kaggle zu finden
Nächste Folge: Wasserspiegel im Juni 2022 (00:53:21)
- Es geht um das Klima, wir machen mit der klimadaten-Reihe weiter
- Wir hatten in dl007: klimadaten über die Aspekte Waldbrände, Meeresspiegelanstieg und Temperaturkurven geredet und dann zu jedem eine eigene Folge machen wollen
- Davon sind bereits erschienen: dl008: temperaturkurven und dl014: waldbrände
- Jetzt geht es in Folge 27 weiter mit Meeres- bzw. Wasserspiegel
- Dafür gucken wir uns die letzten beiden Veröffentlichung der IPCC Berichte an
- Wir gucken uns an wie sich das da mit dem Meeresspiegel und der Klimakrise und grundsätzlich Wasser auf diesem Planeten verhält
Call to Action (00:54:35)
- Wenn ihr uns weiter hören möchtet, folgt uns auf Twitter unter @datenleben & Mastodon unter @datenleben@chaos.social
- Oder besucht unsere Webseite: www.datenleben.de
- Hinterlasst uns gerne Feedback, wir würden uns darüber sehr freuen
- Ihr könnt uns als Data Scientists auch Buchen für Analysen oder Projekte
- Ausserdem hat Helena auf einen Vortrag gehalten, der inzwischen auf YouTube veröffentlicht ist:
- Guckt gerne auch Helenas Vortrag von der PyConDE & PyData Berlin, die im April stattfand: Rewriting your R analysis code in Python
- Habt ihr Fragen oder Themen, die euch interessieren? Dann schreibt uns!
Outro (00:55:41)
Schlagworte zur Folge
Hackathon, Datathon, Maschine Learning, Neuronales Netz, Neuronale Netze, Entscheidungsbaum, Entscheidungsbäume, Teamarbeit, Data Science, Datenanalyse