Python-Tutorial: Vorbereiten von Daten für das Training eines linearen Regressionsmodells mit SQL Machine Learning

Gilt für: SQL Server 2017 (14.x) und höher Azure SQL Managed Instance

Im zweiten Teil dieser vierteiligen Tutorialreihe bereiten Sie Daten aus einer Datenbank mithilfe von Python vor. Diese Daten verwenden Sie in einem späteren Teil dieser Reihe zum Trainieren und Bereitstellen eines linearen Regressionsmodells in Python mit SQL Server Machine Learning Services oder in SQL Server 2019 Big Data-Clustern.

Im zweiten Teil dieser vierteiligen Tutorialreihe bereiten Sie Daten aus einer Datenbank mithilfe von Python vor. Diese Daten verwenden Sie in einem späteren Teil dieser Reihe zum Trainieren und Bereitstellen eines linearen Regressionsmodells in Python mit SQL Server-Machine Learning Services.

Im zweiten Teil dieser vierteiligen Tutorialreihe bereiten Sie Daten aus einer Datenbank mithilfe von Python vor. Diese Daten verwenden Sie in einem späteren Teil dieser Reihe zum Trainieren und Bereitstellen eines linearen Regressionsmodells in Python mit Machine Learning Services in Azure SQL Managed Instance.

In diesem Artikel lernen Sie Folgendes:

  • Laden der Daten aus der Datenbank in einen pandas-Datenrahmen
  • Vorbereiten der Daten in Python durch Entfernen einiger Spalten

In Teil 1 dieser Tutorialreihe haben Sie gelernt, wie Sie die Beispieldatenbank wiederherstellen.

In Teil 3 trainieren Sie ein lineares Regressionsmodell für Machine Learning in Python.

In Teil 4 haben Sie gelernt, wie Sie das Modell in einer Datenbank speichern und gespeicherte Prozeduren aus den Python-Skripts erstellen, die Sie in Teil 2 und 3 entwickelt haben. Die gespeicherten Prozeduren werden auf dem Server ausgeführt, um Vorhersagen basierend auf neuen Daten treffen zu können.

Voraussetzungen

  • In diesem Teil der Tutorialreihe wird davon ausgegangen, dass Sie Teil 1 und die erforderlichen Voraussetzungen abgeschlossen haben.

Durchsuchen und Vorbereiten der Daten

Laden Sie die Daten aus der Datenbank in einen Pandas-Datenrahmen, um sie in Python verwenden zu können.

Erstellen Sie in Azure Data Studio ein neues Python-Notebook, und führen Sie das unten stehende Skript aus.

Importieren Sie mit dem folgenden Python-Skript das Dataset aus der Tabelle dbo.rental_data in Ihrer Datenbank in den Pandas-Datenrahmen df:

Ersetzen Sie bei Bedarf die Verbindungsdetails in der Verbindungszeichenfolge. Um Integrierte Windows-Authentifizierung mit einer ODBC-Verbindungszeichenfolge zu verwenden, geben Sie Trusted_Connection=Yes; anstatt der UID und PWD Parameter an.

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)

Das Ergebnis sollte etwa folgendermaßen aussehen:

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]

Filtern Sie die Spalten aus dem Datenrahmen, um diejenigen zu entfernen, die wir nicht im Training verwenden möchten. Rentalcount sollte nicht einbezogen werden, da es das Ziel der Vorhersagen ist.

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

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

Beachten Sie die Daten, auf die der Trainingssatz Zugriff haben wird:

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]

Nächste Schritte

In Teil 2 dieser Tutorialreihe haben Sie die folgenden Schritte ausgeführt:

  • Laden der Daten aus der Datenbank in einen pandas-Datenrahmen
  • Vorbereiten der Daten in Python durch Entfernen einiger Spalten

Fahren Sie mit Teil 3 dieser Tutorialreihe fort, um ein Machine Learning-Modell zu trainieren, das Daten aus der TutorialDB Datenbank verwendet: