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
- Teil 2 dieses Tutorials setzt voraus, dass Sie Teil 1 und die erforderlichen Komponenten abgeschlossen haben, darunter die Installation der erforderlichen Python-Pakete,
pandas
undpyodbc
.
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
# 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: