Hadley Wickham y Garrett Grolemund escribieron un difundido libro denominado R for Data Science que explica las bases del lenguaje para realizar exploración de datos, data wrangling y algo de programación. Terminan el libro con las bases del modelamiento predictivo. Para aquellos que saben de Ciencia de datos el texto deja la sensación de que R no es un buen ambiente para hacer verdadera Ciencia de datos a pesar de la cantidad de librerías que implementan algoritmos de regresión para aplicar métodos de predicción supervisados y de clasificación para aplicar métodos no supervisados.
RStudio es una compañía que cuenta con cientos de programadores y se han dedicado a crear librerías con algoritmos más rápidos, además de crear infraestructura para lograr que se lleve a producción el modelamiento. Hadley Wickham es un prominente programador de su nómina, y es quien ha participado en el desarrollo de librerías como ggplot2, dplyr, tidyr, stringr y lubridate, además de otras para importación de datos e ingeniería de software. Es lo que se ha denominado el ecosistema tidyverse en R. El libro mencionado R for Data Science expone dicho uiniverso, no exactamente la Ciencia de datos.
https://rviews.rstudio.com/2019/06/19/a-gentle-intro-to-tidymodels/
Desde hace un par de años Max Kuhn, uno de los autores de Applied Predictive Modeling, libro básico para la Ciencia de datos en la pasada década, y uno de los desarrolladores de la librería caret de R, es ahora uno de los encargados de crear un ecosistema de Ciencia de datos consistente y ordenado, que RStudio ha denominado: tidymodels.
Las siguientes librerías son la base del ecosistema tidymodels1:
Imagen tomada de https://rviews.rstudio.com/2019/06/19/a-gentle-intro-to-tidymodels/
Tiene funciones para crear variaciones de un conjunto de datos que pueden usarse para evaluar modelos o estimar la distribución de muestreo de alguna estadística.
Consiste en uno o más “pasos” de manipulación y análisis de datos. Los parámetros estadísticos para los pasos pueden estimarse a partir de un conjunto de datos inicial y luego aplicarse a otros conjuntos de datos. Esta hecha de tal modo que difiere los cálculos.
Una interfaz para modelar que permite, mediante un llamado de parámetros unificado, probar una gran gama de modelos sin atascarse en las minucias sintácticas del subyacente paquete. Es el sucesor de la librería caret. También esta hecha de tal modo que difiere los cálculos. Tiene un conjunto de librerías opcionales asociadas.
Como ya se mencionó, R cuenta con centenares de librerías para modelamiento, entre ellas, por ejemplo:
Análisis discriminante flexible, splines de regresión adaptativa multivariante (MARS), BRUTO y splines de suavizado de respuesta vectorial.
Modelos de clasificación que incluyen sabores de análisis discriminante: lineal, regularizacion, y flexible, así como el clasificador naive Bayes.
Funciones diversas para clasificación y visualización, por ejemplo, análisis discriminante regularizado, kernel-density naive bayes, una interfaz para ‘svmlight’ y stepclass(), selección de variables de envoltura para clasificación supervisada, visualización de reglas de clasificación partimat() y de resultados de clúster shardsplot(), así como agrupación para datos categóricos kmodes(), agrupación de variables corclust(), extracción de variables de diferentes modelos de agrupamiento y preprocesamiento del peso de la evidencia.
Obsérvese que las tres mencionadas trabajan algoritmos modernos de clasificación, algunos comunes en las tres librerías. Si bien sus llamadas a las funciones son diferentes, parsnip unifica éstas2.
Convierte los objetos de análisis estadístico (fits) de R y los organiza en tres tipos de información mediante tres comandos genéricos: tidy(), que resume los hallazgos estadísticos de un modelo, como los coeficientes de una regresión; augment(), que agrega columnas a los datos originales con las predicciones, residuos y asignaciones de clúster; y glance(), que proporciona un resumen de estadísticas a nivel del modelo.
5.a dials
Contiene herramientas para crear y administrar valores de parámetros y está diseñado para integrarse bien con el paquete parsnip.
5.b tune
Contiene funciones y clases que se utilizan junto con otros paquetes ‘tidymodels’ para encontrar valores razonables de los parámetros, por ejemplo, de regularización, métodos de procesamiento previo y pasos de procesamiento posterior.
Herramienta tidy para cuantificar qué tan bien se ajusta el modelo a un conjunto de datos: matrices de confusión, resúmenes de curvas de probabilidad y métricas, como por ejemplo, RMSE.
Si bien no corresponde ni a los conjuntos tidyverse ni tidymodels, vale la pena hacerle seguimiento a una alternativa a ggplot2: el paquete ggformula del ecosistema mosaic, algo intermedio entre el paradigma lattice y ggplot2. Sus comandos son estilo ggplot, pero no usa un lenguaje de graficación semántico sino un lenguaje basado en fórmulas, como lattice.
Hay otras, pero estas son las básicas↩︎
Tiene varias funciones denominadas data descriptors: .obs() - número de registros, .preds() - número de predictores antes de convertirlas a dummies, .cols() - número de predictores luego de convertirlas a dummies, .facts() número de predictores que son factores (nominales), .lvls() - tabla con el número de niveles por factor, .x() - data frame o matriz de predictores, .y() - vector ó data frame o matriz de la salida, .dat() - datos de entrenamiento↩︎