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.
Requisitos previos
- En la segunda parte de este tutorial se supone que has completado la parte uno y sus requisitos previos, incluida la instalación de los paquetes de Python necesarios,
pandas
ypyodbc
.
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
# 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: