Dela via


Python-självstudie: Förbereda data för att träna en linjär regressionsmodell med SQL-maskininlärning

Gäller för: SQL Server 2017 (14.x) och senare versioner Azure SQL Managed Instance

I del två i den här självstudieserien i fyra delar förbereder du data från en databas med Hjälp av Python. Senare i den här serien använder du dessa data för att träna och distribuera en linjär regressionsmodell i Python med SQL Server Machine Learning Services eller i SQL Server 2019 Big Data Clusters.

I del två i den här självstudieserien i fyra delar förbereder du data från en databas med Hjälp av Python. Senare i den här serien använder du dessa data för att träna och distribuera en linjär regressionsmodell i Python med SQL Server Machine Learning Services.

I del två i den här självstudieserien i fyra delar förbereder du data från en databas med Hjälp av Python. Senare i den här serien använder du dessa data för att träna och distribuera en linjär regressionsmodell i Python med Azure SQL Managed Instance Machine Learning Services.

I den här artikeln får du lära dig att:

  • Läs in data från databasen i en Pandas-dataram
  • Förbereda data i Python genom att ta bort vissa kolumner

I del ett lärde du dig hur du återställer exempeldatabasen.

I del tre får du lära dig hur du tränar en linjär regressionsmaskininlärningsmodell i Python.

I del fyra får du lära dig hur du lagrar modellen i en databas och sedan skapar lagrade procedurer från Python-skripten som du utvecklade i del två och tre. De lagrade procedurerna körs på servern för att göra förutsägelser baserat på nya data.

Förutsättningar

Utforska och förbereda data

Om du vill använda data i Python läser du in data från databasen till en Pandas-dataram.

Skapa en ny Python-anteckningsbok i Azure Data Studio och kör skriptet nedan.

Python-skriptet nedan importerar datamängden dbo.rental_data från tabellen i databasen till en Pandas-dataram df.

Ersätt anslutningsinformationen efter behov i anslutningssträngen. Om du vill använda Windows-autentisering med en ODBC-anslutningssträng anger du Trusted_Connection=Yes; i stället för parametrarna UID och 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)

Du bör se resultat som liknar följande.

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]

Filtrera kolumnerna från dataramen för att ta bort dem som vi inte vill använda i träningen. Rentalcount bör inte inkluderas eftersom det är målet för förutsägelserna.

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

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

Observera de data som träningsuppsättningen har åtkomst till:

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ästa steg

I del två av den här självstudieserien har du slutfört följande steg:

  • Läs in data från databasen i en Pandas-dataram
  • Förbereda data i Python genom att ta bort vissa kolumner

Om du vill träna en maskininlärningsmodell som använder data från TutorialDB databasen följer du del tre i den här självstudieserien: