15  Der rote Faden

15.1 Lernsteuerung

15.1.1 Überblick

Mittlerweile haben wir einiges zum Thema Data Science bzw. maschinelles Lernen behandelt (und sie hoffentlich viel gelernt).

Da ist es an der Zeit, einen Schritt zurück zu treten, um sich einen Überblick über den gegangenen Weg zu verschaffen, den berühmten “roten Faden” zu sehen, den zurückgelegten Weg nachzuzeichnen in den groben Linien, um einen (klareren) Überblick über das Terrain zu bekommen.

In diesem Kapitel werden wir verschiedene “Aussichtspfade” suchen, um im Bild zu bleiben, die uns einen Überblick über das Gelände versprechen.

15.1.2 Lernziele

  • Sie erarbeiten sich einen Überblick über den bisher gelernten Stoff bzw. verfeinern Ihren bestehenden Überblick

15.1.3 Literatur

  • Rhys im Überblick

15.1.4 R-Pakete und Daten

In diesem Kapitel werden folgende R-Pakete benötigt:

15.2 Aussichtspunkt 1: Blick vom hohen Berg

Und so zeigt sich ein “Flussbild”1 (Abbildung 15.1).

flowchart LR
  Vv[Vorverarbeitung] --> W[Workflow]
  MF[Modellformel] --> W[Workflow]
  Mo[Modell] --> W[Workflow]
  Al[Algorithmus] --> Mo
  Im[Implementierung] --> Mo
  Mod[Modus] --> Mo
  St[z.B. Standardisierung] --> Vv
  FW[z.B. Fehlende Werte] --> Vv
  W -- für jeden Workflow --> Tuning
  subgraph Tuning
subgraph Resampling
  subgraph Fitten
  end
end
  end
  Tuning --> bM[bester Modellkandidat]
  bM --> FT[Fitten auf ganz Train-Sample]
  FT --> PT[Predict auf Test-Sample]
  PT -->  MG[Modellgüte]
  MG --> num[numerisch]
  MG --> klas[klassifikatorisch]

Abbildung 15.1: Ein Flussbild des maschinellen Lernens

Der Reiseführer erzählt uns zu diesem Bild folgende Geschichte:

Video-Geschichte

15.3 Aussichtspunkt 2: Blick in den Hof der Handwerker

Wenn man auf einem hohen Berg gestanden ist, hat man zwar einen guten Überblick über das Land bekommen, aber das konkrete Tun bleibt auf solchen Höhen verborgen.

Möchte man wissen, wie das geschäftige Leben abläuft, muss man also den tätigen Menschen über die Schulter schauen. Werfen wir also einen Blick in den “Hof der Handwerker”, wo grundlegende Werkstücke gefertigt werden, und wir jeden Handgriff aus der Nähe mitverfolgen können.

15.3.1 Ein maximale einfaches Werkstück mit Tidymodels

Weniger blumig ausgedrückt: Schauen wir uns ein maximal einfaches Beispiel an, wie man mit Tidymodels Vorhersagen tätigt. Genauer gesagt bearbeiten wir einen sehr einfachen Ansatz für einen Kaggle-Prognosewettbewerb.

15.3.2 Ein immer noch recht einfaches Werkstück mit Tidymodels

Dieses Beispiel ist nur wenig aufwändiger als das vorherige.

15.4 Aussichtspunkt 3: Der Nebelberg (Quiz)

Da der “Nebelberg” zumeist in Wolken verhüllt ist, muss man, wenn man ihn ersteigt und ins Land hinunterschaut, erraten, welche Teile zu sehen sind. Sozusagen eine Art Landschafts-Quiz.

Voilà, hier ist es, das Quiz zum maschinellen Lernen:

15.5 Aussichtspunkt 4: Der Exerzitien-Park

Wir stehen vor dem Eingang zu einem Park, in dem sich viele Menschen an merkwürdigen Übungen, Exerzitien, befleißigen. Vielleicht wollen Sie sich auch an einigen Übungen abhärten? Bitte schön, lassen Sie sich nicht von mir aufhalten.

YACSDA: Yet Another Case Study on Data Analysis

NUR EXPLORATIVE DATENANALYSE

NUR LINEARE MODELL

YouTube-PLAYLISTS

MASCHINELLES LERNEN MIT TIDYMODELS

15.6 Aussichtspunkt 5: In der Bibliothek

Einen Überblick über eine Landschaft gewinnt man nicht nur von ausgesetzten Wegpunkten aus, sondern auch, manchmal, aus Schriftstücken. Hier ist eine Auswahl an Literatur, die Grundlagen zu unserem Landstrich erläutert.

Etwas weiter leiten uns diese Erzähler:

  • James u. a. (2021)
  • Kuhn und Johnson (2013)

15.7 Krafttraining

Um die Aussicht genießen zu können, muss man manchmal ausgesetzte Plätze in schwindelerregenden einigermaßen steilen als Hügel erkennbaren Höhen erreichen…

Sportliche Leistungen erreicht nur, wer trainiert ist. Das ist im Land des Data Science nicht anders.

Hier ist eine Liste von Übungen, die Ihre Datenkraft stählen soll:

  1. Lerngruppe: Den Wert einer Lerngruppe kann man kaum unterschätzen. Die Motivation, der Austausch, der Zwang seine Gedanken geordnet darzustellen, das wechselseitige Abfragen - diese Dinge machen eine Lerngruppe zu einem der wichtigsten Erfolgsgarant in Ihren Lernbemühungen.
  2. Exzerpte: Exzerpte, Zusammenfassungen also, sind nötig, um von einer vermeintlichen “Jaja, easy, versthe ich alles” Oberflächen-Verarbeitung zu einem (ausgeprägterem) Tiefenverständnis vorzudringen.
  3. Aufgaben: Manchmal stellt ein Dozent Aufgaben ein. Die Chance sollte man nutzen, denn zwar ist vieles in der Didaktikforschung noch unsicher, aber dass Aufgaben lösen beim Lernen hilft, und zwar viel, ist eines der wenigen unstrittigen Erkenntnisse.
  4. Fallstudien: Ähnliches wie Aufgaben, die oft kleinteilig-akademisch angelegt sind, hilft die große Schwester der schnöden Aufgabe, die Fallstudie, beim Vordringen in Verständnistiefen.
  5. Lesen: Ja, Lesen ist voll Old School. Aber so was Ähnliches wie Updaten der Brain-Software. Nützlich, weil die alte Software irgendwann nicht mehr supported wird.
  6. Forum: Sie haben eine Frage, aber Sie können unmöglich ein paar Tage warten, bis Sie den Dozenten im Unterricht sprechen? Posten Sie die Frage in einem Forum! Vielleicht im Forum des Moduls oder aber in einem geeigneten Forum im Internet.
  7. Youtube: Zwar wettern Dozentis gerne über die mangelnde Verarbeitungstiefe beim Fern schauen. Außerdem sind Lehrvideos didaktisch echt asbachuralt. Aber okay, manchmal und in überschaubarer Dosis ist ein Lehrvideo eine nützliche Ergänzung zu den übrigen Maßnahmen.

15.8 Ressourcen

15.8.1 Aufgaben

Im Datenwerk unter dem Tag stat-learning und tidymodels finden Sie einen Fundus an Aufgaben zur prädiktiven Modellierung.

15.8.2 Kaggle-Fallstudien

In Kapitel 16.4 finden Sie eine Fallstudien-Sammlung.

15.8.3 Rollenspiel: Ace your Case

Die Lernziele dieses Moduls sind kompetenzorientiert; Theorie spielt nur die zweite Geige. Aber im praktischem Leben genügt es (oft) nicht, bestimmte Kompetenzen zu besitzen. Man muss auch Menschen überzeugen, dass man diese Kompetenzen besitzt. Daher sollten Sie sich darin üben, andere von Ihrer Kompetenz zu überzeugen.

Dazu simulieren wir im Rahmen eines Rollenspiels eine Bewerbungsinterview, in dem Sie Fachfragen oder eine Fallstudie (“Case”) durchsprechen und hier brillieren wollen (“Ace your Case”).

  • Studenti A 🧑‍🎓 - Bewerber
  • Studenti B 👩‍🎓 - Interviewer

15.8.4 LinkedIn Skill Assessments

Die LinkedIn Skill Assessments sind eine Sammlung von Quizzen, die LinkedIn bereitstellt. Man kann diese Quizze antreten, und wenn man besteht, fügt LinkedIn ein entsprechendes Badge zum persönlichen Profil hinzu.

Für Data Science sind z.B. die Quizze für Machine Learning und Programmiersprachen wie R interessant.

Praktischerweise kann man sich anhand relevanter Fragen (und deren Lösungen) üben; hier finden sich Fragen und Antworten zum Data Science Quiz. Für R findet sich in diesem R eine Auswahl von Quizfragen sowie deren Lösungen.

15.8.5 Blaupausen (Template) via usemodel

Eine Möglichkeit, sich die Syntax für eine typische Tidymodels-Analyse ausgeben zu lassen, bietet das Paket usemodels.

Lassen wir uns einen Code-Schnipsel ausgeben für ein Random-Forest-Modell mit dem Engine ranger:

library(usemodels)
use_ranger(am ~ ., data = mtcars)
## ranger_recipe <- 
##   recipe(formula = am ~ ., data = mtcars) 
## 
## ranger_spec <- 
##   rand_forest(mtry = tune(), min_n = tune(), trees = 1000) %>% 
##   set_mode("classification") %>% 
##   set_engine("ranger") 
## 
## ranger_workflow <- 
##   workflow() %>% 
##   add_recipe(ranger_recipe) %>% 
##   add_model(ranger_spec) 
## 
## set.seed(4113)
## ranger_tune <-
##   tune_grid(ranger_workflow, resamples = stop("add your rsample object"), grid = stop("add number of candidate points"))

15.8.6 Blaupause: Code-Schnipsel für tidymodels

# Setup:
library(tidymodels)
library(tidyverse)
library(tictoc)  # Zeitmessung
library(<other_package_you_might_need_for_modelling>)  # tidymodels uses existing packages for modelling so you need to make them available


# Data:
d_path <- "Enter data path here"
d <- read_csv(d_path)

set.seed(42)
d_split <- initial_split(d)
d_train <- training(d_split)
d_test <- testing(d_split)


# model:
mod1 <-
  <enter_parsnip_model_name_here>(mode = "<choose_regression_or_classification>",
           cost_complexity = tune())


# cv:
set.seed(42)
rsmpl <- vfold_cv(d_train)


# recipe:
rec1 <- recipe(<enter_output_variable> ~  ., data = d_train)


# workflow:
wf1 <-
  workflow() %>% 
  add_model(mod1) %>% 
  add_recipe(rec1)


# tuning:
tic()
wf1_fit <-
  wf1 %>% 
  tune_grid(
    resamples = rsmpl)
toc()

# best candidate:
show_best(wf1_fit)


# finalize wf:
wf1_final <-
  wf1 %>% 
  finalize_workflow(select_best(wf1_fit))


wf1_fit_final <-
  wf1_final %>% 
  last_fit(d_split)


# Modellgüte im Test-Set:
collect_metrics(wf1_fit_final)

Tipp: Copy-Paste me 😄

Auch hier auf dem Datenwerk finden Sie ähnliche Vorlagen.

15.9 Vertiefung


  1. Wem das Bild zu klein gezeichnet ist, der nehme entweder eine Lupe oder öffne das Bild per Rechtsklick in einem neuen Tab.↩︎