JupyterLab-Lab für Data Science: pandas, Matplotlib und scikit-learn im Browser

Dieses Lab gibt allen Lernenden ein eigenes JupyterLab, in dem die Python-Bibliotheken für Data Science schon installiert sind: pandas für Tabellen, NumPy für Zahlen, Matplotlib für Diagramme und scikit-learn für Modelle. Im Arbeitsordner liegen ein Jahr erfundener Ausleihen eines Fahrradverleihs, eine Zeile pro Tag mit dem Wetter, und ein Start-Notebook, das die Daten lädt, zusammenfasst, darstellt und modelliert.

Es ist kein Angriffs-Lab. Keine Kopie hat einen Weg ins Internet oder zu anderen Lernenden, also kann nichts hineingeladen werden und nichts darin jemand anderen erreichen.

Was die Lernenden lernen

Wie aus einer CSV-Datei mit pandas ein DataFrame wird und wie describe und groupby eine Spalte zusammenfassen und Gruppen vergleichen: An sonnigen Tagen gibt es die meisten Ausleihen, an Regentagen die wenigsten. Dann ein Streudiagramm mit Matplotlib, das zeigt, dass an wärmeren Tagen mehr los ist, und eine erste lineare Regression mit scikit-learn, die aus diesem Muster eine Regel macht, mit dem Bestimmtheitsmaß R², das sagt, wie viel der Schwankung sie erklärt. Dabei arbeiten sie in einem Notebook, Zelle für Zelle, wie es in der Data Science üblich ist. Es passt zu Einführungen in Data Science, Statistik mit Code und maschinelles Lernen; prüfen Sie den genauen Wortlaut in der Einheit Ihrer eigenen Prüfungsstelle, hier wird keine zitiert.

Im Browser ausführen

Das Lab startet einen Dienst, jupyter, der die Daten, das Notebook und die kurzen Skripte in seinen Arbeitsordner schreibt und nach wenigen Sekunden bereit ist. Er braucht im Leerlauf etwa 75 MB und mit einem laufenden Notebook etwa 235 MB, innerhalb der 512 MB, die ein Dienst haben darf. JupyterLab fragt nach keinem Token, weil die Tür der Plattform schon weiß, wer es öffnet. Das Terminal neben dem Lab hat kein eigenes Python und erreicht deshalb das des Labs mit docker exec jupyter, gefolgt von dem Befehl, der darin laufen soll.

  1. Container-Seite öffnen. Öffnen Sie in der Leiste „Entwickeln“ und wählen Sie „Einen Container ausführen“. Die Seite kann jeder öffnen, und das Git-Lab und das SQL-Lab starten ohne Konto. Alle anderen Labs brauchen ein kostenloses Konto: Erstellen Sie eines, melden Sie sich an und klicken Sie dann auf „Starten“.
  2. Lab suchen. Die Karte „Beispiel-Labs“ listet alle Beispiele auf. Suchen Sie JupyterLab: Data Science mit pandas.
  3. Auf „Starten“ klicken. „Starten“ führt das Lab unverändert mit einem einzigen Klick aus. „Zuerst die Datei bearbeiten“ öffnet die Compose-Datei, damit Sie sie vor dem Start ändern können.
  4. Öffnen. Auf der Seite des Labs hat die Lab-Leiste einen Link namens JupyterLab: Klicken Sie darauf, um JupyterLab im Browser zu öffnen, und doppelklicken Sie auf start.ipynb. Klicken Sie dann auf „Terminal öffnen“ und tippen Sie docker exec jupyter python3 steps/load.py, um die Größe der Daten zu sehen, 365 Zeilen und 7 Spalten, und ihre ersten fünf Zeilen.

Was die Lernenden abgeben sollen

Ein eigenes Notebook zu hires.csv, das eine selbst gewählte Frage beantwortet, etwa bei welchem Wetter am Wochenende am meisten los ist, welcher Monat der ruhigste ist oder ob ein Modell besser wird, wenn es den Wochentag kennt, aus JupyterLab mit File, Download heruntergeladen. Dazu ein oder zwei Sätze in eigenen Worten dazu, was die Daten gezeigt haben und was sie nicht beweisen. Nichts wird automatisch bewertet: Der Satz zeigt, ob es verstanden wurde. Für anspruchsvollere Arbeit verlangen Sie ein Diagramm, das die Antwort stützt, und einen Vergleich mit einem einfacheren Modell.

Eine Grundlagenlektion zu diesem Lab

JupyterLab Basics ist eine kleine Lektion, die in diesem Lab abläuft. Darin listen die Lernenden den Arbeitsordner auf, laden die Daten mit pandas, fassen die Ausleihen zusammen und vergleichen sie nach dem Wetter, speichern ein Diagramm, passen eine lineare Regression an und öffnen dann dieselbe Arbeit im Start-Notebook.

Kostenlose persönliche Konten haben sie im Modul Basics, das auf der Startseite liegt, jede Schule kann sie aus dem Ordner Basics der Bibliothek kopieren, und eine neue Schule startet mit ihr in einem Modul namens Data Labs (Sample). Sie ist absichtlich klein: Sie zeigt einer Lehrkraft, was eine Lektion in einem Lab ist, und das Lab erledigt den Rest. Kopieren Sie sie in ein eigenes Modul, um sie zu ändern.

Der Code auf GitHub

Die Compose-Datei hat kein Dockerfile: Sie startet ein einziges öffentliches Image, scipy-notebook der Jupyter Docker Stacks, auf einen datierten Tag festgelegt, mit einem eigenen Konto ohne Privilegien und 512 MB Arbeitsspeicher. Das Image steht unter der Lizenz BSD-3-Clause und wird nicht von uns verbreitet. Die Datei erzeugt die Daten beim Start aus einem festen Startwert, also hat jede Kopie dieselben Zahlen und nichts wird heruntergeladen. Die Grenzen sind ehrlich benannt: Die Daten sind erfunden und klein, es gibt keine GPU, nichts lässt sich aus dem Internet installieren, und ein Modell, das weit mehr Speicher braucht, als die Kopie hat, scheitert. Wenn das Lab stoppt, bleibt nichts erhalten, daher laden die Lernenden ihr Notebook vorher herunter.

Als Aufgabe stellen

Schreiben Sie in die Aufgabe, was abzugeben ist.

  1. Lab erstellen. Fügen Sie in Ihrem Modul eine Aufgabe hinzu und wählen Sie die Karte „Container-Lab“, dann „In einem GitHub-Repository“. Geben Sie https://github.com/mitsurutech/lab-jupyter-data mit dem Branch main an. Die Compose-Datei ist standardmäßig compose.yaml. Forken Sie das Repository zuerst, wenn Sie es ändern möchten, zum Beispiel um Ihre eigene CSV-Datei zu verwenden.
  2. Veröffentlichen und ausprobieren. „Veröffentlichen“ legt den Commit fest, den Sie gesehen haben. Eine spätere Änderung im Repository verändert also kein Lab, das Sie bereits gestellt haben. Starten Sie zuerst Ihre eigene Kopie.
  3. Zuweisen. Weisen Sie es wie jede Aufgabe zu, auf Wunsch mit Fälligkeitsdatum, und schreiben Sie in die Aufgabe, was zu tun ist und was abgegeben werden soll.
  4. Abgaben bewerten. Öffnen Sie die Kopie einer lernenden Person und die abgegebene Arbeit, bewerten Sie sie und geben Sie sie mit einer Begründung zur Überarbeitung zurück, wenn mehr nötig ist.

Häufige Fragen

Warum muss ich kein Token und kein Passwort eingeben?
Die Webseite eines Labs ist nur durch die Tür der Plattform erreichbar, und die weiß schon, wer Sie sind, und lässt nur Sie und die Lehrkräfte Ihres Moduls hinein. Deshalb startet JupyterLab ohne Token. Betreiben Sie es so nicht auf einem Rechner, den andere erreichen können.
Warum nutzt das Terminal docker exec jupyter?
Das Terminal des Labs hat curl, psql und einige andere Clients, aber kein Python. docker exec jupyter führt einen Befehl im Container des Labs aus, der Python und alle Bibliotheken hat. JupyterLab hat außerdem ein eigenes Terminal, unter File, New, Terminal.
Können Lernende weitere Pakete installieren oder eigene Daten nutzen?
Nicht aus dem Internet, das eine Kopie nicht erreicht, also sind die Bibliotheken die des Images. Für andere Daten forken Sie das Repository, ändern die Zeilen, die die Compose-Datei schreibt, und stellen den Fork als Lab ein.