Processing math: 100%
+ - 0:00:00
Notes for current slide
Notes for next slide

Predicting

Maschinelles Lernen mit R
The R Bootcamp

April 2020

1 / 24

Prediction...

Prediction is very difficult, especially if it's about the future.

Nils Bohr, Nobelpreisträger in Physik

An economist is an expert who will know tomorrow why the things he predicted yesterday didn't happen today.

Evan Esar, Satiriker

2 / 24

"Hold-out"-Daten

  • Die Performanz eines Models wird i.a.R. über die Vorhersage ungesehener Daten evaluiert.

  • Die ungesehenen Daten können natürlich vorkommen.
    • zB. Aktiendaten aus 2019 für ein Modell auf Basis von Aktiendaten aus 2018

  • Meist werden die ungesehenen Daten manuell kreiert in dem die verfügbaren Daten in Training und Test aufgeteilt werden.

3 / 24

Warum wird Training und Test getrennt?


"Könnt ihr euch ein Modell vorstellen, das perfekten Fit im Training liefert und in der Vorhersage nutzlos ist?"

Trainingsdaten

id sex age fam_history smoking criterion
1 f 45 No TRUE 0
2 m 43 No FALSE 0
3 f 40 Yes FALSE 1
4 f 51 Yes TRUE 1
5 m 44 Yes FALSE 0

Testdaten

id sex age fam_history smoking criterion
91 f 51 No FALSE ?
92 m 47 No TRUE ?
93 f 39 Yes TRUE ?
94 f 51 Yes TRUE ?
95 f 50 No TRUE ?
6 / 24



Overfitting

  • Tritt ein, wenn ein Modell die Daten zu genau fitted und deswegen keine guten Vorhersagen liefert.

  • Ein zu genauer fit bedeutet, dass z.T. züfällige Tendenzen, sog. Rauschen gefittet wird.

  • "Komplexere" Modelle neigen mehr zu overfitting.




7 / 24

Regression

Decision Trees

Random Forests

10 / 24

CART

  • CART = Classification And Regression trees

  • Modelliert das Kriterium als Sequenz logischer Entscheidungen.

11 / 24

Classificiation trees

  • Classification und regression trees werden mit dem folgengen Algorithmus gefitted:

    • 1 - Trenne Knoten so, dass purity gain (zB., Gini gain) maximiert wird.

    • 2 - Wiederhole bis zu einer vordefinierten Schwelle (zB. minsplit).

    • 3 - Stutze den Baum gemäss complexity parameter

12 / 24

Auftrennen der Knoten

  • Classification trees versuchen ingesammt impurity zu minimieren.

Gini(S)=1kjp2j

  • Durch das Auftrennen eines Knotens werden Cases so aufgeteilt, dass der resultierende purity gain maxmial ist.

Ginigain=Gini(S)Gini(A,S)

mit

Gini(A,S)=ninGini(Si)

13 / 24

Stutzen der Bäume

  • Classification trees werden schlussendlich gestutzt (pruned) sodass jedes Auftrennen eines Knotens einen gain von mindestens cp.


Loss=Impurity+cp(nterminalnodes)

14 / 24

Regression trees

  • Regression trees minimieren die Binnenvarianz der Knoten, bzw. maximieren Homogenität innerhalb der Knoten.

SSE=iS1(yiˉy1)2+iS2(yiˉy2)2

  • Algorithmus:
    • 1 - Trenne Knoten, sodass der grösste Zugewinn an Homogenität entsteht.

    • 2 - Wiederhole bis zu einer vordefinierten Schwelle (zB. minsplit).

    • 3 - Stutze den Baum gemäss complexity parameter

15 / 24

CART in caret

  • Fitte einen decision tree in caret mit method = "rpart".
  • Wenn das Kriterium ein factor ist, verwendet caret einen Classificaton tree, anonsten einen Regression tree.
# Fitte einen decision tree
train(form = verzug ~ ., # factor
data = Darlehen,
method = "rpart",
trControl = ctrl)
# Fitte einen regression tree
train(form = einkommen ~ ., # kein factor
data = basel,
method = "rpart",
trControl = ctrl)
16 / 24

Regression

Decision Trees

Random Forests

17 / 24

Random Forest

  • In Random Forests wird das Kriterium als Aggregat vieler Entscheidungsbäume modelliert.
  • Algorithmus:
    • 1 - Wiederhole n mal.

      • 1 - Resample die Daten.

      • 2 - Fitte nicht-gestutzte Entscheidungsbäume.

        Berücksichtige bei jeder Auftrennung nur m Features.

    • 2 - Mittle die gefitteten Werte.


18 / 24

Random Forest

  • Random Forests bedienen sich des Baggings (Resampling und Averaging) um höhere Vorhersageleistungen zu erzielen.


Element Beschreibung
Resampling Kreiert neue Datensätze die in ihrer Komposition variieren. Dabei werden Eigenheiten der vorhandenen Daten weniger Gewicht gegeben.
Averaging Das Kombinieren von Vorhersagen gleicht typischerweise Eigenheiten der aus einzelnen Datensätzen erstellten Modelle aus.

19 / 24

Random forests in caret

  • Fitte einen Random Forest in caret mit method = "rf".
  • Wenn das Kriterium ein factor ist, verwendet caret Classificaton trees, anonsten einen Regression trees als Grundlage des Random Forest.
# Fitte ein random forest
train(form = verzug ~ ., # factor
data = Darlehen,
method = "rf",
trControl = ctrl)
# Fitte ein random forest
train(form = einkommen ~ ., # kein factor
data = basel,
method = "rf",
trControl = ctrl)
20 / 24

createDataPartition()

  • Verwende createDataPartition() um den Datensatz aufzuteilen in Trainings- und Testdaten.


Argument Beschreibung
y Das Kriterion. Wichtig für eine ausgewogene Aufteilung der Daten.
p Der Antei der Daten der den Trainingsdaten zugewisen wird. Oft .8 oder .5.
# Wichtig für konstante Ergebnisse
set.seed(100)
# Indizes für Training
index <-
createDataPartition(y = basel$einkommen,
p = .8,
list = FALSE)
# Kreiere Trainingsdaten
basel_train <- basel %>%
slice(index)
# Kreiere Testdaten
basel_test <- basel %>%
slice(-index)
22 / 24

predict(, newdata)

  • Verwende predict() um auf Basis des Testdatensatzes neue Vorhersagen zu berechnen.


Argument Beschreibung
object caret Objekt nach dem Fitten.
newdata Testdaten (Muss alle Features in object beinhalten).
# Fitte das Modell zu dne Trainingsdaten
mod <- train(form = einkommen ~ .,
method = "glm",
data = basel_train)
# Extrahiere die gefitteten Werte
mod_fit <- predict(mod)
# Berechne echte Vorhersagen für Testdaten
mod_pred <- predict(mod,
newdata = basel_test)
# Evaluiere das Ergebnis
postResample(pred = mod_pred,
obs = basel_test$einkommen)
23 / 24

Prediction...

Prediction is very difficult, especially if it's about the future.

Nils Bohr, Nobelpreisträger in Physik

An economist is an expert who will know tomorrow why the things he predicted yesterday didn't happen today.

Evan Esar, Satiriker

2 / 24
Paused

Help

Keyboard shortcuts

, , Pg Up, k Go to previous slide
, , Pg Dn, Space, j Go to next slide
Home Go to first slide
End Go to last slide
Number + Return Go to specific slide
b / m / f Toggle blackout / mirrored / fullscreen mode
c Clone slideshow
p Toggle presenter mode
t Restart the presentation timer
?, h Toggle this help
Esc Back to slideshow