Die useR! Conference 2015 ist offiziell eröffnet: Nach dem „Tutorial-Tuesday“ folgte am Mittwoch der erste Präsentationstag.
Unsere R-Experten vor Ort haben die wichtigsten Informationen und Neuerungen der Sessions vom Vormittag zusammengefasst:
Networks
Wie kann man möglichst viele Konferenzteilnehmer dazu bewegen, den eigenen Vortrag zu besuchen? Eine Möglichkeit besteht darin, potentielle Interessenten mit personalisierter Onlinewerbung auf sich aufmerksam zu machen. Anhand dieses nicht ganz ernstgemeinten Anwendungsbeispiels hat Daroczi im ersten Vortrag der Networks-Session aufgezeigt, wie mit Hilfe des Pakets fbRads aus R heraus Werbekampagnen auf Facebook aufgesetzt und gesteuert werden können. Der große Vorteil dabei: Im Zusammenspiel mit der Facebook API deckt das Paket den kompletten Prozess einer Werbekampagne ab – von der Definition der Zielgruppe bis zur Auswertung der Werbewirksamkeit.
Peter Meißner hat sich in seinem Vortrag dem Thema Webscraping gewidmet und gab einen Überblick darüber, was zu tun ist, wenn der Download-Button fehlt und die gewünschten Informationen stattdessen direkt aus einer Webseite extrahiert werden müssen. Je nachdem welche Web-Technologien auf der relevanten Webseite eingesetzt werden, kommen für das Webscraping mit R verschiedene Funktionen und Pakete infrage. Im einfachsten Fall reichen bereits base-Funktionen wie download.file() und einfache String-Manipulationen aus. Am einfachsten dürften die meisten Webscraping-Projekte jedoch mit dem Paket rvest zu lösen sein. Sollte dies nicht möglich sein, weil sich die gewünschten Informationen zum Beispiel in JS-Code verbergen, kann mit RSelenium ein virtueller Browser emuliert werden.
Reproducibilty
Reproduzierbarkeit kann in der R-Community aus verschiedenen Blickwinkeln betrachtetet werden, dass wurde auch in der Mischung der heutigen Präsentationen zu diesem Thema deutlich.
Während Karthik Ram und Joshua R. Polanin mit ihren Talks den Fokus auf die wissenschaftlichen Aspekte von Reproducibility legten, haben sich Michael Lawrence und David Smith mit dem Problem der Versionierung von R Paketen beschäftigt.
Karthik Ram, stellt seine Organisation rOpenSci vor, deren Mitglieder mittlerweile über 50 Pakete auf CRAN veröffentlicht haben. Diese Pakete decken das gesamte Spektrum ab, von der Anbindung an Datenquellen über Analysen hin zur Visualisierung der Ergebnisse. Ram bemängelte, dass in der Wissenschaft zu häufig nur das finale Paper zur Verfügung steht und bemerkte das mit R der gesamte Prozess einer Untersuchung veröffentlicht werden kann und diese Möglichkeit auch genutzt werden sollte.
Der Vortrag „A Review of Meta-Analysis Packages in R“ hob sich inhaltlich von den anderen Präsentationen ab und handelte von dem Stand der Pakete in R, die sich derzeit mit wissenschaftlicher Metaanalyse beschäftigen. Joshua R. Polanin hat sich mit seiner Kollegin Emily A. Hennessy die Pakete angeschaut und bewertet und dabei festgestellt das die Metaanalyse in R derzeit noch nicht stark verbreitet ist.
Michael Lawrence von Genentech stellte deren Lösung zum Umgang mit unterschiedlichen Paketversionen vor. Hierzu wurde das Paket switchr entwickelt. Dieses Paket ermöglicht das Anlegen und Laden von sogenannten Paket Manifesten. Diese Manifeste beinhalten Informationen über ein Set von Paketen mit definierten Versionen und Pointern die auf dezentrale Repositories verweisen können um auf die entsprechenden Pakete zugreifen zu können.
David Smith vom eoda Partner Revolution Analytics hat das checkpoint Package vorgestellt.
Mit dem Checkpoint Paket lässt sich in einem Projekt ein Datum festlegen und das Paket kümmert sich um die Installation der in dem Projekt verwendeten Pakete. Dabei installiert checkpoint die Pakete auf dem Stand des festgelegten Datums. Die Pakete werden in einem Ordner auf dem Betriebssystem hinterlegt, zusammen mit Unterordern die den jeweiligen Daten zugeordnet sind. Die Pakete selbst werden von einem von Revolution Analytics bereitgestellten Server installiert. Revolution Analytics erstellt von jedem Tag eine Kopie des aktuellen CRAN Stands. Dies hat zur Konsequenz das Pakete die nicht auf CRAN verfügbar sind, sondern beispielsweise von GitHub kommen von der Versionierung ausgenommen sind. Des Weiteren scheint es nicht möglich zu sein, in einem Projekt gleichzeitig ältere und aktuelle Pakete zu nutzen.
Interfacing
Christoph Best von google hat in seinem Beitrag das Go Interface zu R beschrieben. Go ist eine von google entwickelte Programmiersprache, die sich innerhalb und außerhalb von google wachsender Beliebtheit erfreut. Auch R ist bei google weit verbreitetet– es soll mehr als 600 R-User bei google geben. So liegt es nahe eine Schnittstelle zwischen GO und R bereitzustellen.
Die Implementierung ist im Gegensatz zu den meisten anderen Interfaces als inter process interface umgesetzt. Das bedeutet, dass ein Prozess – in diesem Fall GO – als Host einen Subprozess – R – als Client startet. Die Prozesse sind somit voneinander isoliert. Die Kommunikation erfolgt als REPL (Read Eval Print Loop). Laut Best ist ein Inter-Prozess Interface einfach, robust und klar umzusetzen. Ein interessanter Ansatz, der sich möglicherweise auf andere Interfaces übertragen lässt.
Zukünftige Versionen des Interfaces sollen den Prozess auch umkehren können, also R als Host mit GO als Client verwenden. Auch die Objektübergabe, die derzeit nur Basistypen wie Vektoren und Listen unterstützt, soll noch erweitert werden.
Neue Features in C++ waren das Thema von Matt P. Dziubinski. Sein Vortrag war kurzweilig und sehr informativ, trotz rekordverdächtiger 110 Slides in 15 Minuten.
Mit dem R/C++ Interface Rcpp können R User C++ Funktionen definieren und in R auszuführen. Das von Rcpp bereit gestellte C++ Interfaces hat sich in den letzten Jahren enorm vereinfacht. War es vor einigen Jahren noch umständlich und nur fortgeschrittenen Usern vorbehalten, C++ und R zu verbinden, ist es heute vergleichsweise einfach. Dziubinski sieht eine analoge Entwicklung von C++ selbst und stellt in seinem Vortrag mit vielen Beispielen einige der neuen C++ Features vor. Am Interessantesten klingt das Testing Paket „Catch“, welches es ermöglicht leicht verständliche Tests in C++ zu integrieren sowie den C++ Codes mit ASYNC zu parallelisieren. Dies erlaubt einen Performance Sprung ohne dabei zu viel Overhead zu verlangen.
Über seine Erfahrungen mit der Spark Bibliothek MLLib, die Machine Learning Algorithmen in Apache Spark bereitstellt, berichtete Dan Putler von Alterix. Die Bibliothek ist umfangreich und enthält Funktionen aus verschiedenen Machine Learning Bereichen: Clustering, Klassifikation, Regression, Zeitreihen etc. Mit Hilfe des R-Pakets SparkR lässt sie sich leicht aus R heraus aufrufen. Putlers anfängliche Begeisterung über die Implementierung ist jedoch der Erkenntnis gewichen, dass die Algorithmen in MLLib noch nicht wirklich ausgereift sind und sich eher in einer Proof-of-concept Phase befinden. Daraus ergibt sich ein interessanter Perspektivwechsel: Statt die MLLib Library über R anzusprechen, ist es derzeit eher sinnvoll die Implementierung von Machine Learning Algorithmen auf die MLLib zu übertragen. Man darf gespannt sein, wie die Entwicklung weitergeht.
Case Studies
R-User wissen: Steht man am Anfang eines neuen Projekts, lautet die entscheidende Frage nicht, ob das Problem in R gelöst werden kann, sondern wie es gelöst werden kann. Die Möglichkeit verschiedene statische Methoden einfach zu implementieren und gegebenenfalls auf die eigenen Bedürfnisse anzupassen, verschafft R ein sehr breites Anwendungsspektrum. Dies wurde auch in der Session „Case Studies“ deutlich, in der insgesamt vier Fallbeispiele zu folgenden Themen präsentiert wurden:
- Johannes Breidenbach hat gezeigt, wie R dazu verwendet wird um aus verschiedenen Datenquellen beispielsweise die Stammdicke und Biomasse in norwegischen Wäldern zu schätzen, um so Handlungsempfehlungen für Entscheidungsträger aus Politik und Wirtschaft geben zu können.
- Ivan Kasanický hat vorgestellt, wie R auf dem tschechischen Energiemarkt zur Analyse und Vorhersage des Erdgasverbrauchs eingesetzt wird.
- Der Beitrag von Jakob W. Messner hat sich mit der Frage befasst, wie Klimamodelle zur Wettervorhersage durch spezialisierte statistische Verfahren verbessert werden können.
- Helle Sørensen und ihr Team haben ein Modell entwickelt, mit dem sich Lähmungen in den Gliedmaßen von Pferden zuverlässig identifizieren lassen – eine Aufgabe, die selbst erfahrene Veterinäre überfordert.
Der zweite Teil der Highlights des Tages aus Aalborg folgt.