library(tidymodels)
library(tictoc) # Zeitmessung
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).
Der Reiseführer erzählt uns zu diesem Bild folgende 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
Beispiel für Prognosemodellierung 1, grundlegender Anspruch, Video
Beispiel für Ihre Prognosemodellierung 2, mittlerer Anspruch
Fallstudie Einfache lineare Regression in Base-R, Anfängerniveau, Kaggle-Competition TMDB
YouTube-PLAYLISTS
MASCHINELLES LERNEN MIT TIDYMODELS
Experimenting with machine learning in R with tidymodels and the Kaggle titanic dataset
Sehr einfache Fallstudie zur Modellierung einer Regression mit tidymodels
Fallstudie zur Modellierung einer logististischen Regression mit tidymodels
Fallstudie Einfache lineare Regression mit Tidymodels, Kaggle-Competition TMDB
Fallstudie Einfaches Random-Forest-Modell mit Tidymodels, Kaggle-Competition TMDB
Fallstudie Workflow-Set mit Tidymodels, Kaggle-Competition TMDB
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:
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:
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- Einfache Random-Forest-Modellierung bei Kaggle (TMDB)
- Einfache Workflow-Set-Modellierung bei Kaggle (TMDB)
- Bearbeiten Sie so viele Fallstudien der Fallstudiensammlung wie nötig, um den Stoff flüssig zu beherrschen
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:
<- "Enter data path here"
d_path <- read_csv(d_path)
d
set.seed(42)
<- initial_split(d)
d_split <- training(d_split)
d_train <- testing(d_split)
d_test
# model:
<-
mod1 <enter_parsnip_model_name_here>(mode = "<choose_regression_or_classification>",
cost_complexity = tune())
# cv:
set.seed(42)
<- vfold_cv(d_train)
rsmpl
# recipe:
<- recipe(<enter_output_variable> ~ ., data = d_train)
rec1
# 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
- Mathematische Grundlagen können Sie z.B. hier vertiefen
- Gute Fallstudie bei Kaggle für Regressionsprobleme: House Prices
- Sie möchten schnell ein Code-Schnipsel (öffentlich sichtbar) teilen? Probieren Sie Github Gists aus
- If in doubt, scream and shout … and ask ChatGPT: ChatGPT kann Ihnen Code-Schnipsel erstellen, wenn Sie ihn nach einer bestimmten Aufgabenstellung fragen.
Wem das Bild zu klein gezeichnet ist, der nehme entweder eine Lupe oder öffne das Bild per Rechtsklick in einem neuen Tab.↩︎