Sdílet prostřednictvím


Kurz Pythonu: Příprava dat na trénování lineárního regresního modelu pomocí strojového učení SQL

Platí pro: SQL Server 2017 (14.x) a novější verze Azure SQL Managed Instance

Ve druhé části této čtyřdílné série kurzů připravíte data z databáze pomocí Pythonu. Později v této sérii použijete tato data k trénování a nasazení modelu lineární regrese v Pythonu pomocí služby SQL Server Machine Learning Services nebo v clusterech s velkými objemy dat SQL Serveru 2019.

Ve druhé části této čtyřdílné série kurzů připravíte data z databáze pomocí Pythonu. Později v této sérii použijete tato data k trénování a nasazení lineárního regresního modelu v Pythonu se službou SQL Server Machine Learning Services.

Ve druhé části této čtyřdílné série kurzů připravíte data z databáze pomocí Pythonu. Později v této sérii použijete tato data k trénování a nasazení modelu lineární regrese v Pythonu se službou Azure SQL Managed Instance Machine Learning Services.

V tomto článku se naučíte:

  • Načtení dat z databáze do datového rámce pandas
  • Příprava dat v Pythonu odebráním některých sloupců

V první části jste zjistili, jak obnovit ukázkovou databázi.

Ve třetí části se naučíte trénovat model lineárního regresního strojového učení v Pythonu.

Ve čtvrté části se dozvíte, jak model uložit do databáze a pak vytvořit uložené procedury ze skriptů Pythonu, které jste vytvořili ve dvou a třech částech. Uložené procedury budou spuštěny na serveru, aby vytvořily předpovědi na základě nových dat.

Požadavky

Prozkoumání a příprava dat

Pokud chcete data používat v Pythonu, načtete data z databáze do datového rámce pandas.

V Nástroji Azure Data Studio vytvořte nový poznámkový blok Pythonu a spusťte následující skript.

Následující skript Pythonu naimportuje datovou sadu z dbo.rental_data tabulky v databázi do datového rámce pandas df.

V připojovacím řetězci podle potřeby nahraďte podrobnosti o připojení. Pokud chcete použít ověřování systému Windows s připojovacím řetězcem ODBC, zadejte Trusted_Connection=Yes; místo UID parametrů a 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)

Měly by se zobrazit výsledky podobné následujícímu.

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]

Vyfiltrujte sloupce z datového rámce a odeberte sloupce, které nechceme v trénování používat. Rentalcount by neměla být zahrnuta, protože se jedná o cíl předpovědí.

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

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

Poznamenejte si data, ke kterým bude mít trénovací sada přístup:

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]

Další kroky

Ve druhé části této série kurzů jste dokončili tyto kroky:

  • Načtení dat z databáze do datového rámce pandas
  • Příprava dat v Pythonu odebráním některých sloupců

Pokud chcete vytrénovat model strojového učení, který používá data z TutorialDB databáze, postupujte podle třetí části této série kurzů: