dsci 101 Leistungsnachweis

Der LN besteht darin, sich ein persönliches Skript zu erarbeiten, das man ggf. mit in die Klausur nehmen könnte. (Ob das sinnvoll und möglich ist, muss ich noch ausloten).

Dazu werden im Lauf des Semesters verschiedene Aufgaben zu bearbeiten sein, die alle im persönlichen Skript zu dokumentieren sind.

Ihr Skript in der jeweils aktuellen Version laden Sie in Moodle hoch:

Ich empfehle Ihnen, das Skript sukzessiv zu erstellen und zu verbessern. Die Moodle-Aufgabe ist daher so eingestellt, dass Sie Ihr Skript beliebig oft neu und verbessert hochladen können.

Letzter Termin der Abgabe (und Voraussetzung zur Zulasusng zur Klausur): Mo 2022-01-10 T 23:59.

LN anlegen

Das Archiv dsci-101-ln.tar.gz irgendwohin - z.B. nach ~/b - downloaden, dort mit tar -xvzf dsci-101-ln.tar.gz auspacken.

Im neu enstandenen Verzeichnis ~/b/dsci-101-ln die config-Datei _config.yml personalisieren:

  • Titel: Ihr HAW-Account

    • z.B. s-jbusse

  • Name: Familienname, Vorname, MatNr

    • z.B. Busse, Johannes, 123 45 67

Alle Ergebnisse des LN stehen in einer einzigen md-Datei, und zwar in ln-<ihr-Account>:

  • Die existierende Datei ln-s-jbusse auf ln-<ihr-Account> umbenennen, und …

  • auch in _toc.yml anpassen!

Zuerst Build der html-Dateien ausprobieren:

jb build ~/b/dsci-101-ln

Überraschung, FEHLER: Es kommt eine Website “Hallo Johannes”, die mit Ihrer Datei nichts zu tun hat. Lösung: Buildverzeichnis zurücksetzen:

jb clean ~/b/dsci-101-ln

Jetzt sollte der Build durchlaufen.

pdf über LaTeX erzeugen:

jb build ~/b/dsci-101-ln --builder pdflatex

Ggf. noch LaTeX nachinstallieren, siehe http://jbusse.de/dsci-lab/dsci-lab-build.html#latex.

Struktur des LN: siehe Datei ln-s-jbusse.md

Aufgabe 1: dsci-Jobs

Technology-Stack Markdown, Jupyterbook, Zotero:

  • Was: Definition erstellen für Data Analyst, Data Architect, Data Engineer, sowie eine beliebige weitere Rolle

  • Ergebnissicherung: DEF in den LN, sowie ‘rüberkopieren in Moodle

Einige Jobs zu diesen Rollen …

  • online recherchieren

  • mit Zotero sichern

  • die Zitation als Bsp. zu der jeweiligen Def in Markdown hinzufügen

Aufgabe 2

  • Im dsci-lab (oder anderswo) ein neues ipynb-Notebook dsci-101-ln-excercise101.ipynb anlegen, Überschrift “Exercise 1.01”

  • aus der Exercise 1.01 (p.13ff) die Items 1-13 mit Copy & Paste einfügen und ausführen.

  • das neu angelegte ipynb in den toc aufnehmen, builden

  • Seite aufrufen: Man kann jetzt im Inhaltsverzeichnis die neue Seite “Exercise 1.01” anklicken, richtig?

  • Screenshot machen und in unser Verzeichnis speichern; in der Notebook-Datei als Bild einfügen: ![Mein erstes Bild](MeinBild.png)

Lernziele:

  • Flüssiger werden mit Linux, Publishing mit jupyterbook

  • Einbindung von auführbaren Notebooks in ein jupyterbook

  • Einbinden eines Bildes in eine Markdown-Datei

Aufgabe 3: Glossar anlegen zu dsw2020, Kapitel 1, S. 2-16

“dsw2020”: The Data Science Workshop. A New, Interactive Approach to Learning Data Science. Anthony So, Thomas V. Joseph, Robert Thas John, Andrew Worsley, and Dr. Samuel Asare. First Edition 2020. (Online in der HAW-Bibliothek)

Dort Kapitel 1: Introduction to Data Science in Python, S. 2-16

In der Datei ln-s-ihraccount.md ein Glossar anlegen (wenige Stichworte reichen, aber bitte eigene Worte, DE) zu folgenden Begriffen:

  • data science project steps (7 items)

  • supervised learning

  • outcome (response variable, dependent variable, target)

  • column

  • variable

  • feature

  • independent variable (predictor variable)

  • classification problem

  • regression problem

  • unsupervised learning

  • clustering

  • dimensionality reduction

  • reinforcement learning

  • numeric variable

  • text variables

Achtung: Hier sind ein paar Synonyme dabei.

erweitern durch Begriffe aus Exercise 1.01 (S. 13ff):

  • algorithm

  • linear regression

  • logistic regression

  • randomforest

  • a3c

  • learning

  • supervised

  • reinforcement

  • algorithm_type

  • regression

  • classification

  • regression or classification

  • game ai

  • k-means

  • clustering

Aufgabe 4: Mini-Doku zu Pandas DataFrame

Was: Die wichtigsten Funktionen im LN dokumentieren:

  • eigene Erklärung

  • mit Link auf die offizielle Doku

  • mit Beispiel-Code

Warum, Lernziele:

  • sich mit der Doku vertraut machen

  • sich einen eigenen Wissensbestand anlegen für viele aufbauende Kurse

  • Vorbereitung für die Klausur

| pd.read_excel(file_url) | df.shape | df.columns | df.dtypes | df.info() | df.head() | df.tail() | df.sample() | df[‘Country’].nunique() | df[‘Country’].unique() | df[‘Country’].value_counts() | df.select_dtypes() | df[‘Quantity’].max() | df[‘Quantity’].min() | df[‘Quantity’].mean() | df[‘Quantity’].median() | df[‘Quantity’].std() | df.describe()

Aufgabe 5: Einen Datensatz bereinigen

Gegeben sei aus der Demo http://jbusse.de/2021_ws_dsci/dsci-101-statur.html die CSV-Datei Moodle > statur_2021-11-11.csv:

  • downloaden

  • dann als Pandas DataFrame df = pd. ... einlesen

dann df umwandeln:

  • in Listen (Column-Namen gehen verloren):

    • df_list_zeilen: jede Zeile eine Liste

    • df_list_spalten: jede Spalte eine Liste

  • in Dicionaries:

    • df_dict_spalten: ein dict spaltenweise, column names als Schlüssel

    • df_dict_zeilen: zeilenweise ein dict (Column-Namen gehen verloren), mit künstlichem Schlüssel für jede Zeile

Wer googelt, findet als Einstieg z.B. https://datatofish.com/convert-pandas-dataframe-to-list/, vor allem aber der Parameter orient in pandas.DataFrame.to_dict: rtfm!

Aufgabe: