Tutorial do Python: Preparar dados para treinar um modelo de regressão linear com o aprendizado de máquina do SQL

Aplica-se a: SQL Server 2017 (14.x) e versões posteriores Instância Gerenciada de SQL do Azure

Na parte dois desta série de tutoriais de quatro partes, você preparará os dados de um banco de dados usando o Python. Posteriormente nesta série, você usará esses dados para treinar e implantar um modelo de regressão linear em Python com os Serviços de Machine Learning do SQL Server ou nos Clusters de Big Data do SQL Server 2019.

Na parte dois desta série de tutoriais de quatro partes, você preparará os dados de um banco de dados usando o Python. Posteriormente nesta série, você usará esses dados para treinar e implantar um modelo de regressão linear em Python com os Serviços de Machine Learning do SQL Server.

Na parte dois desta série de tutoriais de quatro partes, você preparará os dados de um banco de dados usando o Python. Posteriormente nesta série, você usará esses dados para treinar e implantar um modelo de regressão linear em Python com os Serviços de Machine Learning da Instância Gerenciada de SQL do Azure.

Neste artigo, você aprenderá a:

  • Carregar os dados do banco de dados em uma estrutura do Pandas
  • Preparar os dados no Python removendo algumas colunas

Na parte um, você aprendeu a restaurar o banco de dados de exemplo.

Na parte três, você aprenderá a treinar um modelo de machine learning de regressão linear no Python.

Na parte quatro, você aprenderá a armazenar o modelo em um banco de dados e, em seguida, criará procedimentos armazenados com base nos scripts do Python desenvolvidos nas partes dois e três. Os procedimentos armazenados serão executados no servidor para fazer previsões com base em novos dados.

Pré-requisitos

  • A parte dois deste tutorial pressupõe que você concluiu a parte um e os respectivos pré-requisitos.

Explorar e preparar os dados

Para usar os dados no Python, você os carregará do banco de dados em uma estrutura do Pandas.

Crie um notebook do Python no Azure Data Studio e execute o script abaixo.

O script Python abaixo importa o conjunto de dados da tabela dbo.rental_data em seu banco de dados para uma estrutura de dados df do Pandas.

Na cadeia de conexão, substitua os detalhes da conexão conforme necessário. Para usar autenticação do Windows com uma cadeia de conexão ODBC, especifique Trusted_Connection=Yes; em vez dos parâmetros UID e PWD.

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)

Você deverá ver resultados semelhantes aos seguintes.

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]

Filtre as colunas do dataframe para remover as que não queremos usar no treinamento. Rentalcount não deve ser incluído, pois é o destino das previsões.

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

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

Observe os dados aos quais o conjunto de treinamento terá acesso:

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]

Próximas etapas

Na parte dois desta série de tutoriais, você concluiu estas etapas:

  • Carregar os dados do banco de dados em uma estrutura do Pandas
  • Preparar os dados no Python removendo algumas colunas

Para treinar um modelo de machine learning que usa dados do banco de dados TutorialDB, siga a parte três desta série de tutoriais: