Udostępnij za pomocą


Samouczek w języku Python: przygotowywanie danych do trenowania modelu regresji liniowej przy użyciu uczenia maszynowego SQL

Dotyczy: SQL Server 2017 (14.x) i nowsze wersje usługi Azure SQL Managed Instance

W drugiej części tej czteroczęściowej serii samouczków przygotujesz dane z bazy danych przy użyciu języka Python. W dalszej części tej serii użyjesz tych danych do trenowania i wdrażania modelu regresji liniowej w języku Python przy użyciu usług SQL Server Machine Learning Services lub w klastrach danych big data programu SQL Server 2019.

W drugiej części tej czteroczęściowej serii samouczków przygotujesz dane z bazy danych przy użyciu języka Python. W dalszej części tej serii użyjesz tych danych do wytrenowania i wdrożenia modelu regresji liniowej w języku Python przy użyciu usług SQL Server Machine Learning Services.

W drugiej części tej czteroczęściowej serii samouczków przygotujesz dane z bazy danych przy użyciu języka Python. W dalszej części tej serii użyjesz tych danych do trenowania i wdrażania modelu regresji liniowej w języku Python przy użyciu usług Azure SQL Managed Instance Machine Learning Services.

W tym artykule dowiesz się, jak:

  • Ładowanie danych z bazy danych do ramki danych pandas
  • Przygotowywanie danych w języku Python przez usunięcie niektórych kolumn

W części drugiej przedstawiono sposób przywracania przykładowej bazy danych.

W trzeciej części dowiesz się, jak wytrenować model uczenia maszynowego regresji liniowej w języku Python.

W czwartej części dowiesz się, jak przechowywać model w bazie danych, a następnie utworzyć procedury składowane na podstawie skryptów języka Python utworzonych w częściach 2 i trzech. Procedury składowane będą uruchamiane na serwerze w celu przewidywania na podstawie nowych danych.

Wymagania wstępne

Eksplorowanie i przygotowywanie danych

Aby użyć danych w języku Python, załadujesz dane z bazy danych do ramki danych biblioteki pandas.

Utwórz nowy notes języka Python w narzędziu Azure Data Studio i uruchom poniższy skrypt.

Poniższy skrypt języka Python importuje zestaw danych z dbo.rental_data tabeli w bazie danych do ramki danych pandas df.

W parametrach połączenia zastąp szczegóły połączenia zgodnie z potrzebami. Aby użyć uwierzytelniania systemu Windows z parametrami połączenia ODBC, określ Trusted_Connection=Yes; zamiast parametrów UID i 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)

Powinny zostać wyświetlone wyniki podobne do poniższych.

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]

Przefiltruj kolumny z ramki danych, aby usunąć te, których nie chcemy używać w trenowaniu. Rentalcount nie powinny być uwzględniane, ponieważ jest to cel przewidywań.

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

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

Zwróć uwagę na dane, do których zestaw trenowania będzie miał dostęp:

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]

Dalsze kroki

W drugiej części tej serii samouczków wykonano następujące kroki:

  • Ładowanie danych z bazy danych do ramki danych pandas
  • Przygotowywanie danych w języku Python przez usunięcie niektórych kolumn

Aby wytrenować model uczenia maszynowego, który korzysta z danych z TutorialDB bazy danych, wykonaj trzy części tej serii samouczków: