Tutorial de Python: Preparación de datos para entrenar un modelo de regresión lineal con aprendizaje automático de SQL

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

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

En la parte dos de esta serie de tutoriales de cuatro partes, preparará los datos de una base de datos mediante Python. Más adelante en esta serie, usará estos datos para entrenar e implementar un modelo de regresión lineal en Python 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 Python. Más adelante en esta serie, usará estos datos para entrenar e implementar un modelo de regresión lineal en Python con Machine Learning Services en Azure SQL Managed Instance.

En este artículo, aprenderá a:

  • Cargar los datos desde la base de datos en una trama de datos de Pandas
  • Quitar columnas para preparar los datos en Python

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

En la parte tres, aprenderá a entrenar un modelo de aprendizaje automático de regresión lineal en Python.

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 Python 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 parte dos de este tutorial, se da por hecho que ha completado la parte uno y los requisitos previos.

Exploración y preparación de los datos

Para usar los datos en Python, cargará los datos de la base de datos en una trama de datos de Pandas.

Cree un cuaderno de Python en Azure Data Studio y ejecute el script siguiente.

El script de Python siguiente importa el conjunto de datos de la tabla dbo.rental_data de la base de datos en una trama de datos de pandas df.

En la cadena de conexión, reemplace los detalles de conexión según corresponda. Para usar la autenticación de Windows con una cadena de conexión ODBC, especifique Trusted_Connection=Yes; en lugar de los parámetros UID y PWD.

import pyodbc
import pandas
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error

# Connection string to your SQL Server instance
conn_str = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server}; SERVER=<server>; DATABASE=TutorialDB;UID=<username>;PWD=<password>')

query_str = 'SELECT Year, Month, Day, Rentalcount, Weekday, Holiday, Snow FROM dbo.rental_data'

df = pandas.read_sql(sql=query_str, con=conn_str)
print("Data frame:", df)

Se mostrarán resultados similares a los siguientes.

Data frame:      Year  Month  Day  Rentalcount  WeekDay  Holiday  Snow
0    2014      1   20          445        2        1     0
1    2014      2   13           40        5        0     0
2    2013      3   10          456        1        0     0
3    2014      3   31           38        2        0     0
4    2014      4   24           23        5        0     0
..    ...    ...  ...          ...      ...      ...   ...
448  2013      2   19           57        3        0     1
449  2015      3   18           26        4        0     0
450  2015      3   24           29        3        0     1
451  2014      3   26           50        4        0     1
452  2015     12    6          377        1        0     1

[453 rows x 7 columns]

Filtre las columnas de la trama de datos para quitar las que no queremos usar en el entrenamiento. Rentalcount no debe incluirse, ya que es el destino de las predicciones.

columns = df.columns.tolist()
columns = [c for c in columns if c not in ["Year", "Rentalcount"]]

print("Training set:", df[columns])

Tenga en cuenta los datos a los que tendrá acceso el conjunto de entrenamiento:

Training set:      Month  Day  Weekday  Holiday  Snow
1        2   13        5        0     0
3        3   31        2        0     0
7        3    8        7        0     0
15       3    4        2        0     1
22       1   18        1        0     0
..     ...  ...      ...      ...   ...
416      4   13        1        0     1
421      1   21        3        0     1
438      2   19        4        0     1
441      2    3        3        0     1
447      1    4        6        0     1

[91 rows x 5 columns]

Pasos siguientes

En la parte dos de esta serie de tutoriales, ha completado estos pasos:

  • Cargar los datos desde la base de datos en una trama de datos de Pandas
  • Quitar columnas para preparar los datos en Python

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