Tutorial: Preparación de los datos para entrenar un modelo predictivo en R con el aprendizaje automático de SQL

Se aplica a: SQL Server 2016 (13.x) y versiones posteriores Azure SQL Managed Instance

En la segunda parte de esta serie de tutoriales de cuatro partes, preparará los datos de una base de datos mediante R. Más adelante en la serie, usará estos datos para entrenar e implementar un modelo predictivo en R con SQL Server Machine Learning Services o con clústeres de macrodatos.

En la parte uno de esta serie de tutoriales de tres partes, importará y preparará los datos de una base de datos de Azure SQL mediante R. Más adelante en la serie, usará estos datos para entrenar e implementar un modelo de Machine Learning predictivo en R con SQL Server Machine Learning Services.

En la parte dos de esta serie de tutoriales de cuatro partes, preparará los datos de una base de datos mediante R. Más adelante en la serie, usará estos datos para entrenar e implementar un modelo predictivo en R con SQL Server R Services.

En la parte dos de esta serie de tutoriales de cuatro partes, preparará los datos de una base de datos mediante R. Más adelante en la serie, usará estos datos para entrenar e implementar un modelo predictivo en R con Machine Learning Services en Azure SQL Managed Instance.

En este artículo, aprenderá a:

  • Restaurar una base de datos de ejemplo en una base de datos
  • Cargar los datos de la base de datos en una trama de datos de R
  • Preparar los datos en R mediante la identificación de algunas columnas como de categoría

En la parte uno, ha aprendido a restaurar la base de datos de ejemplo.

En la parte tres, aprenderá a entrenar un modelo de Machine Learning en R.

En la parte cuatro, aprenderá a almacenar el modelo en una base de datos y, luego, a crear procedimientos almacenados a partir de los scripts de R desarrollados en las partes dos y tres. Los procedimientos almacenados se ejecutarán en el servidor para realizar predicciones basándose en datos nuevos.

Prerrequisitos

En la segunda parte de este tutorial se da por hecho que ha realizado la primera parte y que satisface sus requisitos previos.

Carga de los datos en una trama de datos

Para usar los datos en R, deberá cargarlos desde la base de datos hasta una trama de datos (rentaldata).

Cree un archivo de RScript en RStudio y ejecute el siguiente script. Reemplace ServerName por su propia información de conexión.

#Define the connection string to connect to the TutorialDB database
connStr <- "Driver=SQL Server;Server=ServerName;Database=TutorialDB;uid=Username;pwd=Password"


#Get the data from the table
library(RODBC)

ch <- odbcDriverConnect(connStr)

#Import the data from the table
rentaldata <- sqlFetch(ch, "dbo.rental_data")

#Take a look at the structure of the data and the top rows
head(rentaldata)
str(rentaldata)

Se mostrarán resultados similares a los siguientes.

   Year  Month  Day  RentalCount  WeekDay  Holiday  Snow
1  2014    1     20      445         2        1      0
2  2014    2     13       40         5        0      0
3  2013    3     10      456         1        0      0
4  2014    3     31       38         2        0      0
5  2014    4     24       23         5        0      0
6  2015    2     11       42         4        0      0
'data.frame':       453 obs. of  7 variables:
$ Year       : int  2014 2014 2013 2014 2014 2015 2013 2014 2013 2015 ...
$ Month      : num  1 2 3 3 4 2 4 3 4 3 ...
$ Day        : num  20 13 10 31 24 11 28 8 5 29 ...
$ RentalCount: num  445 40 456 38 23 42 310 240 22 360 ...
$ WeekDay    : num  2 5 1 2 5 4 1 7 6 1 ...
$ Holiday    : int  1 0 0 0 0 0 0 0 0 0 ...
$ Snow       : num  0 0 0 0 0 0 0 0 0 0 ...

Preparación de los datos

En esta base de datos de ejemplo, ya se ha realizado la mayor parte de la preparación, pero aún tiene que hacer una cosa más. Use el siguiente script de R para identificar tres columnas como categorías, para lo cual debe cambiar los tipos de datos a factor.

#Changing the three factor columns to factor types
rentaldata$Holiday <- factor(rentaldata$Holiday);
rentaldata$Snow    <- factor(rentaldata$Snow);
rentaldata$WeekDay <- factor(rentaldata$WeekDay);



#Visualize the dataset after the change
str(rentaldata);

Se mostrarán resultados similares a los siguientes.

data.frame':      453 obs. of  7 variables:
$ Year       : int  2014 2014 2013 2014 2014 2015 2013 2014 2013 2015 ...
$ Month      : num  1 2 3 3 4 2 4 3 4 3 ...
$ Day        : num  20 13 10 31 24 11 28 8 5 29 ...
$ RentalCount: num  445 40 456 38 23 42 310 240 22 360 ...
$ WeekDay    : Factor w/ 7 levels "1","2","3","4",..: 2 5 1 2 5 4 1 7 6 1 ...
$ Holiday    : Factor w/ 2 levels "0","1": 2 1 1 1 1 1 1 1 1 1 ...
$ Snow       : Factor w/ 2 levels "0","1": 1 1 1 1 1 1 1 1 1 1 ...

Los datos están ya preparados para el entrenamiento.

Limpieza de recursos

Si no quiere continuar con este tutorial, elimine la base de datos TutorialDB.

Pasos siguientes

En la parte dos de la serie de tutoriales, ha aprendido a:

  • Carga de los datos de ejemplo en una trama de datos de R
  • Preparar los datos en R mediante la identificación de algunas columnas como de categoría

Para crear un modelo de aprendizaje automático que use datos de la base de datos TutorialDB, siga la parte tres de esta serie de tutoriales: