Mit dem „Tutorial-Monday“ hat die useR! Conference 2016 in Stanford begonnen. Stellvertretend für die Vielzahl interessanter Tutorials möchten wir an dieser Stelle auf zwei Sessions näher eingehen:

Erin LeDell: Machine Learning Algorithmic Deep Dive

Erin LeDell von H2O.ai, dem Unternehmen hinter der Open Source Machine Learning Software H2O, hat die Tutorial Session mit einem sehr interessanten, aber leider doch zu kurzem Deep Dive in die Algorithmen des Machine Learning eröffnet.

Sehr gut besucht: Das Machine Learning Tutorial von Erin LeDell bei der useR!2016
Sehr gut besucht: Das Machine Learning Tutorial von Erin LeDell bei der useR!2016

LeDell hat dafür zunächst die Grundprobleme aufgezeigt, denen sich alle Machine Learning Algorithmen stellen müssen:

    • Hochdimensionale Daten: Daten, bei denen die Anzahl der Beobachtungen wesentlich kleiner ist als die Anzahl der Variablen.
    • Dünnbesetzte Matrizen (Sparse Data): Eine Vielzahl der Feature-Kombinationen bestehen aus Nullen.
    • Normalisierung: Manche Algorithmen erfordern eine Normalisierung der Daten um vermeidbare Redundanzen zu verhindern.
    • Kategoriale Daten: Kategorialen Daten müssen bei einigen Algorithmen dichotomisiert werden.
    • Fehlende Werte (Imputation): Nicht alle Algorithmen könne mit fehlenden Werten umgehen, diese müssen dann entsprechend imputiert werden.
    • Ungleich verteilte Klassen: Manche Algorithmen werden ungenau, wenn die Zielvariable sehr ungleich verteilt ist.
    • Overfitting: Algorithmen sind unterschiedlich anfällig für overfitting, z.B. durch eine Spezifizierung des Modells, das zu viele erklärende Variablen enthält.
    • Skalierbarkeit: Die Performance von Algorithmen ist bei Big Data nicht ausreichend

Anschließend hat LeDell verschiedene Algorithmen und ihre Varianten im erläutert:

      • Klassifikations- und Regressionsbäume
      • Random Forest
      • Gradient Boosting
      • GLM (Generalized linear Modells)
      • Deep Learning
      • Superlearner bzw. Stacking
Superpower mit dem Superlearner
Superpower mit dem Superlearner

Scott Chamberlain | Garrett Grolemund | Karthik Ram: Extracting data from the web APIs and beyond

Das Tutorium am Nachmittag widmete sich dem Thema Webscraping  und wurde von Scott Chamberlain,  Karthik Ram (beide ROpenSci) und Garrett Grolemund (R-Studio) durchgeführt.

Scott Chamberlain hat im ersten Teil die Grundlagen der Client-Server Kommunikation über HTTP mit den zentralen Verben GET, POST, PUT und DELETE erklärt und an Beispielen gezeigt, wie sich diese mit dem httr Paket in R umsetzen lassen.

Ein HTTP GET request besteht aus drei Hauptbestandteilen: Status, Header und Content/Body. Der Status enthält Informationen darüber, ob die Anfrage erfolgreich war bzw. woran sie gescheitert ist. Auf der Seite https://http.cat/ lässt sich in anschaulichen Katzenbildern nachvollziehen, wie die Statuscodes zu interpretieren sind. Hundefreunde können alternativ auf https://httpstatusdogs.com/ zurückgreifen.

Im Header finden sich, meist im Key-Value Format Metainformationen zum Request, z.B. die Uhrzeit der Anfrage oder der Content-Typ. Karthik Ram hat sich im zweiten Abschnitt auf den eigentlichen Content der GET request konzentriert. Ein httr::GET Regquest kann in drei Formaten extrahiert werden: Als „text“, „raw“ oder „parsed“, d.h. geparst in ein R-Objekt.

In vielen APIs ist es sinnvoll dem GET request Parameter anzufügen. Diese können im „query“ Argument von httr::GET als Liste angefügt werden. Welche Parameter übergeben werden und wie diese spezifiziert werden können lässt sich in der Dokumentation der jeweils verwendeten API nachlesen. Zum Schluss hat Ram gezeigt, wie einem request eine Authentifizierung über einen Token angefügt werden kann.

Im dritten Abschnitt hat Garrett Grolemund verdeutlicht, wie sich Webdaten auslesen lassen falls keine API zur Verfügung steht. Zunächst wurde gezeigt, wie sich die relevanten Elemente einer Website über HTML Tags und CSS Selektoren auffinden lassen. Anschließend hat Grolemund erklärt, wie sich mit dem rvest Paket Informationen aus HTML extrahieren lassen. Zum Schluss hat er das „selector Gadget“ vorgestellt, ein Tool das die Identifikation von Elementen auf einer Webseite erheblich erleichtert. Dabei handelt es sich nicht um ein R-Paket, sondern um ein Javascript Bookmarklet, dass sich in R über vignette(„selctorgadget“) aufrufen und in den Browser ziehen lässt. Klickt man ein Element in einer Website an, zeigt das Gadget den entsprechenden CSS Selektor an. Dieser kann dann mit den rvest Funktionen zur Extraktion der Daten einer Website weiterverwendet werden.

Mit dem ersten Präsentationstag und der Keynote „Forty years of S“ wird die useR! Conference 2016 am Dienstag offiziell eröffnet. eoda Chief Data Scientist Oliver Bracht präsentiert um 10:48 Uhr Ortszeit (19:48 Uhr MESZ) in der „R in Business“ Session zum Thema „Implementing R in old economy companies: From proof-of-concept to production“.

Ein Rückblick auf diesen Vortrag und die weiteren Highlights von Tag zwei in Stanford folgt an dieser Stelle. Auf Twitter berichtet eoda aktuell von der useR! 2016.

Alle Beiträge zur useR!2016 als kompaktes Paper zum kostenlosen Download finden Sie hier.

Hier entlang.