Blog > R

Top 10 R Pakete für Data Science

Das Open-Source-Projekt R gehört zu den führenden Tools für datenwissenschaftliche und maschinelle Lernaufgaben. Aufgrund des Open-Source-Frameworks gibt es kontinuierliche Beiträge, und Paketbibliotheken mit neuen Funktionen werden häufig angezeigt. Derzeit verfügt das CRAN-Paket-Repository über 12'525 verfügbare Pakete. Dieser Beitrag wirft einen Blick auf die beliebtesten und nützlichsten Pakete, die die Standards für die Lösung von Datenmanipulations-, Visualisierungs- und maschinellen Lernproblemen gesetzt haben.

Datenmanipulation

Dplyr

Dplyr ist eine unverzichtbare Bibliothek für die schnelle und einfache Datenzusammenstellung und -analyse in R. Es wurde für die Arbeit mit Datentabellen entwickelt, einschließlich Tabellen von MySQL, PostgreSQL, SQLite und Google BigQuery. Die Besonderheiten von dplyr sind die Einfachheit der Befehlssyntax und die hohe Performance.
Das Hauptkonzept von dplyr besteht darin, ein paar einfache Funktionen bereitzustellen, die die Verantwortung für die allgemeinen Probleme der Datenmanipulation übernehmen. Diese fünf Funktionen sind:

  • mutate() - fügt neue Spalten hinzu, die als Funktionen bestehender Variablen ausgedrückt werden können.
  • select() - wählt eine oder mehrere Variablen aus.
  • filter() - wählt Einzelfälle gemäß den Spezifikationen aus.
  • summarise() - fügt den Teil der Daten als eine einzige Zusammenfassung zusammen.
  • arrange() - setzt die Rohlinge in die gewünschte Reihenfolge.

Es gibt auch die Funktion group_by(), mit der Sie beliebige Gruppenaktionen durchführen können.

Darüber hinaus beschleunigt dplyr durch das C++-Backend alle diese Befehle, was es besonders bei der Verarbeitung großer Datenmengen beliebt macht.

Data.table

Data.table ist eine lakonische Bibliothek, die für anspruchsvolle Datenmanipulationen entwickelt wurde. Mit seiner Hilfe können Sie viele Operationen in nur einer Linie Code durchführen. Darüber hinaus ist data.table in einigen Fällen schneller als dplyr, und es kann die Wahl bestimmen, ob es Speicher- oder Leistungseinschränkungen gibt. Die Bibliothek arbeitet mit Funktionen wie subset, group, update, join und vielem mehr.
Data.table hat eine sehr übersichtliche allgemeine Struktur: DT[i, j, by], wobei sich die Parameter i und j auf Zeilen bzw. Spalten beziehen, was bedeutet, dass Zeilen unter Verwendung von i und Berechnung von j unterdrückt werden, und by bezieht sich au das Hinzufügen einer Gruppe.

Manchmal wird data.table zusammen mit dplyr verwendet.

Grafikdisplays und HTML-Widgets

Ggplot2

Ggplot2 ist eines der beliebtesten Pakete zur Datenvisualisierung bei R-Anwendern. Es setzt die Idee der Grammatik Grafik ein und wendet ein System von Konzepten wie Daten-Arrays (univariate und multivariate, numerische und kategorische), visuelle Werkzeuge, geometrische Objekte, die statistische Transformation von Variablen, Koordinatensysteme, etc. zur Erstellung dieser Grafiken an. Sie werden Schicht für Schicht aufgebaut und kombinieren alle diese oben genannten Hauptblöcke, so dass Sie die gewünschte Art der Grafikanzeige erhalten. Ggplot2 verfügt über Funktionen, die die Lösung vieler sekundärer Fragen oder Plotvorgaben übernehmen, wie z.B. ob eine Legende benötigt wird, wo sie platziert werden soll oder welche Grenzen für Achsen gewählt werden müssen, was eine Konzentration auf die Hauptaufgaben ermöglicht. Ggplot2 wird auch häufig als Grundlage für Bibliotheken verwendet, die komplexere Grafiken anbieten.

Es gibt jedoch einige Einschränkungen und Dinge, die mit diesem Paket nicht durchgeführt werden sollten, darunter dreidimensionale oder interaktive Grafiken.

Ggvis

Diese R-Bibliothek wurde entwickelt, um Visualisierungen eines ähnlichen Typs wie ggplot2 zu erstellen, jedoch in einem interaktiven Webkey. Als Backend für die Visualisierung verwendet ggvis Vega, das wiederum auf D3.js basiert, und für die Interaktion mit dem Benutzer verwendet das Paket die Erweiterung R von Shiny und die Dplyr-Grammatik der Datentransformation.
Zu den Einschränkungen gehören die Unfähigkeit, komplexe Interaktionen wie das Ein- und Ausschalten bestimmter Layer, das Umschalten zwischen Datensätzen usw. durchzuführen, und die Notwendigkeit der Verbindung zu einer laufenden R-Session, die für die Veröffentlichung nicht so groß ist.

Plotly

Plotly ist eine JavaScript- und D3.js-Bibliothek mit einer R-API. Es verfügt über umfangreiche Funktionen und eine Vielzahl von verfügbaren Diagrammen (Liniendiagramme, Scatter Plots, Flächendiagramme, Balkendiagramme, Histogramme, Heatmaps, 3D-Diagramme usw.) und ähnelt der ggplot2-Syntax. Sie können interaktive Diagramme direkt aus R heraus erstellen oder die Funktion ggplotly() verwenden, die mit ggplot2 erstellte Diagramme in eine interaktive webbasierte Version umwandelt.

Die Visualisierungen und die dahinter liegenden Daten können in einem Webbrowser betrachtet und verändert werden. Dennoch hat plotly auch den gleichen Nachteil wie ggvis - die Voraussetzung für die Ausführung von R-Sessions.

DataTables

DataTables Package (DT) ermöglicht die Erstellung von durchsuchbaren und interaktiven Tabellen mit einem Minimum an Code und Aufwand. Mit einer R-Schnittstelle zur JavaScript-Bibliothek DataTables kann DT R-Daten in Form von Matrizen oder Datenrahmen in Tabellen auf HTML-Seiten umwandeln.

Einige der nützlichsten Funktionen, die in Tabellen implementiert werden können, sind Filterung, Seitenumbruch, Sortierung und vieles mehr. Sie können auch die Optionen für die Anzeige der Tabelle gestalten, bearbeiten und auswählen.

Machine Learning

Caret

Das Paket Classification and Regression Training (CARET) stellt eine Reihe von Instrumenten dar, die helfen, verschiedene maschinelle Lernaufgaben durchzuführen, von der Datenaufteilung und Vorverarbeitung bis hin zum Aufbau prädiktiver Modelle und der Schätzung ihrer Leistung. Mit anderen Worten, die Bibliothek kombiniert leistungsstarke Funktionen und Algorithmen für das Modelltraining und die Vorhersage. Es stehen 238 Modelle zur Verfügung. Sie alle dienen jedoch nur der Regression und Klassifizierung. Viele gängige Metriken sind in der Bibliothek implementiert, aber Sie können auch eigene Qualitätsmetriken und Wrapper-Methoden für Modelle schreiben. Außerdem ist caret gut in andere algorithmusspezifische Pakete integriert.

Gbm

Gradientenboosting ist eine maschinelle Lerntechnik für Regressions- und Klassifikationsprobleme, die die Idee nutzt, ein Vorhersagemodell zu erstellen, das mehrere schwache Modelle, meist Entscheidungsbäume, kombiniert. Die beeinflussende Leistungssteigerung macht die Steigerung des Gradienten zu einer herausragenden Eigenschaft unter den leistungsfähigsten prädiktiven Werkzeugen, die Sie beim maschinellen Lernen einsetzen können. Das gbm-Paket (Generalized Boosted Regression Models) implementiert eine Erweiterung des AdaBoost-Algorithmus von Freund und Schapire sowie der Gradientenverstärkungsmaschine von Friedman. Es bietet Werkzeuge für die schnelle Modellierung, die variable Auswahl und die Präzisionsmodellierung im Endstadium, die eine robuste und wettbewerbsfähige Leistung gewährleisten. Die Gbm beinhaltet Regressionsmethoden für kleinste Quadrate, absoluten Verlust, t-Verteilungsverlust, Quantilregression, Poisson, Cox proportionale Gefahren partielle Wahrscheinlichkeit, AdaBoost exponentieller Verlust, Huberized Scharnierverlust und Learning to Rank Messungen.

RandomForest

Ein weiterer sehr beliebter, leistungsfähiger und vielseitiger maschineller Lernalgorithmus ist Random Forest. Es nutzt die Idee, mehrere Entscheidungsbäume zu kombinieren, um ein stärkeres Modell zu erstellen und die Verallgemeinerungsfähigkeit für Klassifizierungs- und Regressionsaufgaben zu verbessern. Eine Implementierung dieser Algorithmen ist im randomForest R-Paket enthalten. Diese Bibliothek, die verschiedene Beobachtungen in einem Entscheidungsbaum zusammenfasst, verwendet gemeinsame Ergebnisse, die für das Maximum der Beobachtungen erhalten wurden, um eine endgültige Vorhersage zu treffen.

Es ist wichtig zu beachten, dass randomForest mit numerischen oder Faktorvariablen arbeitet. Es kann auch im unbeaufsichtigten Modus zur Bewertung der Nähe zwischen den Datenpunkten verwendet werden.

Xgboost

Last but not least steht auf unserer Liste die Extreme Gradient Boosting (xgboost) Bibliothek, die eine Implementierung des Gradient Boosted Decision Trees Algorithmus in der R-Schnittstelle ist. Auch hier geht es darum, ein Ensemble von sukzessive verfeinerten elementaren Modellen aufzubauen, die eine Antwort auf überwachte maschinelle Lernprobleme finden können. Es verfügt sowohl über einen linearen Modelllöser als auch über Baumlernalgorithmen. Zu den nützlichsten Funktionen gehören Regression, Klassifizierung und Ranking, die Sie direkt verwenden können, oder es gibt auch die Möglichkeit, eine eigene Funktion zu definieren. Das Paket wird für paralleles Rechnen, aktivierte Cross-Validierung und Regularisierung bewertet. All diese Eigenschaften machen xgboost außergewöhnlich hoch in der Vorhersagekraft und liefern sehr gute Geschwindigkeitsmesser.

Zusammenfassung

Diese 10 Pakete haben sich bei vielen Informatikern und insbesondere bei unserem Team als sehr effektiv und hilfreich erwiesen. Sie werden eingesetzt, um verschiedene komplizierte Probleme in verschiedenen Bereichen zu lösen und Antworten auf die Vielzahl wissenschaftlicher Fragen zu finden.

Natürlich ist dies eine subjektive Liste, es stehen viele andere wertvolle R-Bibliotheken zur Verfügung.