class: center, middle, inverse, title-slide # Wiederholung ### Maschinelles Lernen mit R
The R Bootcamp
### Oktober 2020 --- layout: true <div class="my-footer"> <span style="text-align:center"> <span> <img src="https://raw.githubusercontent.com/therbootcamp/therbootcamp.github.io/master/_sessions/_image/by-sa.png" height=14 style="vertical-align: middle"/> </span> <a href="https://therbootcamp.github.io/"> <span style="padding-left:82px"> <font color="#7E7E7E"> www.therbootcamp.com </font> </span> </a> <a href="https://therbootcamp.github.io/"> <font color="#7E7E7E"> Maschinelles Lernen mit R | Oktober 2020 </font> </a> </span> </div> --- # Was ist maschinelles Lernen? .pull-left45[ <ul> <li class="m1"><span><b>Maschinelles Lernen ist</b>...</span></li><br> <ul class="level"> <li><span>...ein <high>Bereich der künstlichen Intelligenz</high>...</span></li><br> <li><span>...der mittels <high>statistischer Methoden</high>...</span></li><br> <li><span>...es Computern ermöglicht zu <high>lernen</high>...</span></li><br> <li><span>...d.h., fortwährend die eigene <high>Leistung</high> in (spezifischen) Aufgaben zu verbessert...</span></li><br> <li><span>...<high>ohne explizit programmiert</high> worden zu sein.</span></li> </ul> </ul> ] .pull-right45[ <p align = "center"> <img src="image/ml_robot.jpg" height=380px><br> <font style="font-size:10px">from <a href="https://medium.com/@dkwok94/machine-learning-for-my-grandma-ca242e97ef62">medium.com</a></font> </p> ] --- .pull-left3[ # Bereiche des maschinellen Lernens <ul> <li class="m1"><span>Es gibt verschiedene Bereiche des maschinellen Lernens mit jeweils eigenen Algorithmen.</span></li> <li class="m2"><span>Wir fokussieren auf den Bereich des <high>Supervised Learning</high> (Deutsch: überwachtes Lernen).</span></li> </ul> ] .pull-right65[ <br><br> <p align = "center"> <img src="image/mltypes.png" height=500px><br> <font style="font-size:10px">from <a href="image/mltypes.png">amazonaws.com</a></font> </p> ] --- # Loss Funktion .pull-left45[ <ul> <li class="m1"><span>Ein <high>zentrales Konzept</high> in der Statistik und im maschinellen Lernen.</span></li> <li class="m2"><span>Die Loss Funktion fasst die <high>Fehler eines Modells zusammen</high>.</span></li> </ul> <p style="padding-top:7px"> `$$\Large Loss = f(Fehler)$$` <p style="padding-top:7px"> <u>Zwei Zwecke</u> <table style="cellspacing:0; cellpadding:0; border:none;"> <tr> <td> <b>Zweck</b> </td> <td> <b>Beschreibung</b> </td> </tr> <tr> <td bgcolor="white"> Fitting </td> <td bgcolor="white"> Finde Parameter, die die Verlustfunktion minimieren. </td> </tr> <tr> <td> Evaluation </td> <td> Berechne den Verlust für ein gefittetes Modell. </td> </tr> </table> ] .pull-right45[ <img src="Recap_files/figure-html/unnamed-chunk-2-1.png" width="90%" /> ] --- # Zwei Problemtypen .pull-left5[ <ul> <li class="m1"><span><b>Regression</b></span></li> <br> <ul class="level"> <li><span>Vorhersage eines <high>numerischen, kontinuierlichen Kriteriums</high>.</span></li><br> <li><span><i>Vorhersage des Cholesterinspiegels mit Alter</i></span></li> </ul><br> <li class="m2"><span><b>Klassifikation</b></span></li> <br> <ul class="level"> <li><span>Vorhersage eines <high>kategorialen, diskreten Kriteriums</high>.</span></li><br> <li><span><i>Vorhersage, ob Herzinfarkt ja oder nein</i></span></li> </ul><br> </ul> ] .pull-right4[ <p align = "center"> <img src="image/twotypes.png" height=440px><br> </p> ] --- # Drei Modelle des Supervised Learnings <p align = "center" style="padding-top:20px"> <img src="image/models.png"><br> </p> --- # "Hold-out"-Daten .pull-left45[ <ul> <li class="m1"><span>Die Performanz eines Modells wird i.a.R. über die Vorhersage <high><i>ungesehener</i> Daten</high> evaluiert.</span></li><br> <li class="m2"><span>Die <i>ungesehenen</i> Daten können <high>natürlich vorkommen</high>.</span></li> <ul class="level"> <li><span>zB. Aktiendaten aus 2019 für ein Modell auf Basis von Aktiendaten aus 2018</span></li> </ul><br> <li class="m3"><span>Meist werden die <i>ungesehenen</i> Daten manuell kreiert in dem die verfügbaren Daten in <high>Training und Test</high> aufgeteilt werden.</span></li> </ul> ] .pull-right45[ <p align = "center"> <img src="image/testdata.png" height=430px> </p> ] --- .pull-left4[ <br><br> # Overfitting <ul> <li class="m1"><span>Tritt ein, wenn ein Modell die <high>Daten zu genau fitted</high> und deswegen <high>keine guten Vorhersagen</high> liefert.</span></li><br> <li class="m2"><span>Ein zu genauer fit bedeutet, dass z.T. züfällige Tendenzen, sog. <high>Rauschen gefittet</high> wird.</span></li><br> <li class="m3"><span><high>"Komplexere" Modelle</high> neigen mehr zu overfitting.</span></li> </ul> ] .pull-right5[ <br><br><br> <p align = "center" style="padding-top:0px"> <img src="image/overfitting.png"> </p> ] --- # 6 Schritte mit <mono>caret</mono> .pull-left5[ Schritt 0: Lade daten ```r data_train <- read_csv("1_Data/data.csv") data_test <- read_csv("1_Data/data.csv") ``` Schritt 1: Definiere Kontrollparameter ```r # Verwende Cross-Validation ctrl <- trainControl(method = "cv") ``` Schritt 3: Trainiere Modell ```r mod <- train(form = Y ~ ., data = data_train, method = "My Favorite Model", trControl = ctrl) ``` ] .pull-right45[ Schritt 4: Inspiziere Modell ```r mod # Printe Objekt mod$finalModel # Finales Modell ``` Schritt 5: Generiere Vorhersagen ```r # Generiere Vorhersagen mod_pred <- predict(object = mod, newdata = data_test) ``` Schritt 6: Evaluiere Vorhersagen ```r # Evaluiere Vorhersagen postResample(pred = mod_pred, obs = data_test$Y) ``` ] --- class: middle, center <h1><a href=https://therbootcamp.github.io/ML_2020Oct/index.html>Agenda</a></h1>