Partager via


Tutoriel Python : Préparer des données pour effectuer l’apprentissage d’un modèle de régression linéaire avec le Machine Learning SQL

S’applique à : SQL Server 2017 (14.x) et versions ultérieures Azure SQL Managed Instance

Dans la deuxième partie de cette série de quatre tutoriels, vous allez préparer des données à partir d’une base de données à l’aide de Python. Plus loin dans cette série, vous utiliserez ces données pour effectuer l’apprentissage et le déploiement d’un modèle de régression linéaire dans Python avec SQL Server Machine Learning Services ou sur des clusters Big Data de SQL Server 2019.

Dans la deuxième partie de cette série de quatre tutoriels, vous allez préparer des données à partir d’une base de données à l’aide de Python. Plus loin dans cette série, vous utiliserez ces données pour effectuer l’apprentissage et le déploiement d’un modèle de régression linéaire dans Python avec SQL Server Machine Learning Services.

Dans la deuxième partie de cette série de quatre tutoriels, vous allez préparer des données à partir d’une base de données à l’aide de Python. Dans la suite de cette série, vous utiliserez ces données pour entraîner et déployer un modèle de régression linéaire en Python avec Azure SQL Managed Instance Machine Learning Services.

Dans cet article, vous allez apprendre à :

  • Charger les données à partir de la base de données dans une trame de données pandas
  • Préparer les données dans Python en supprimant des colonnes

Dans la première partie, vous avez appris à restaurer l’exemple de base de données.

Dans la troisième partie, vous apprendrez à effectuer l’apprentissage d’un modèle de Machine Learning de régression linéaire dans Python.

Dans la quatrième partie, vous allez apprendre à stocker le modèle dans une base de données, puis à créer des procédures stockées à partir des scripts Python que vous avez développés dans les parties 2 et 3. Les procédures stockées sont exécutées sur le serveur pour effectuer des prédictions en fonction de nouvelles données.

Prérequis

  • La deuxième partie de ce tutoriel suppose que vous avez terminé la première partie et ses conditions préalables.

Explorer et préparer les données

Pour utiliser les données dans Python, vous allez charger les données à partir de la base de données dans une trame de données pandas.

Créez un nouveau notebook Python dans Azure Data Studio et exécutez le script ci-dessous.

Le script Python ci-dessous importe le jeu de données à partir de la table dbo.rental_data de votre base de données vers une trame de données pandas df.

Dans la chaîne de connexion, remplacez les détails de connexion, le cas échéant. Pour utiliser Authentification Windows avec une chaîne de connexion ODBC, spécifiez Trusted_Connection=Yes; plutôt que les paramètres et UID les PWD paramètres.

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)

Vous devez obtenir des résultats similaires à ce qui suit :

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]

Filtrez les colonnes de la trame de données pour supprimer celles que nous ne voulons pas utiliser dans l’entraînement. Rentalcount ne doit pas être inclus, car il s’agit de la cible des prédictions.

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

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

Notez les données à laquelle le jeu d’entraînement aura accès :

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]

Étapes suivantes

Dans la deuxième partie de cette série de tutoriels, vous avez effectué les étapes suivantes :

  • Charger les données à partir de la base de données dans une trame de données pandas
  • Préparer les données dans Python en supprimant des colonnes

Pour effectuer l’apprentissage d’un modèle de Machine Learning qui utilise des données de la base de donnéesTutorialDB, suivez la troisième partie de cette série de tutoriels :