Поделиться через


Руководство по Python. Подготовка данных для обучения модели линейной регрессии с помощью машинного обучения SQL

Область применения: SQL Server 2017 (14.x) и более поздних версий Управляемый экземпляр SQL Azure

Во второй части этого цикла учебников, состоящего из четырех частей, вы подготовите данные из базы данных с помощью Python. Далее в этом цикле вы будете использовать подготовленные данные для обучения и развертывания модели линейной регрессии в Python с помощью Служб машинного обучения SQL Server или в Кластерах больших данных SQL Server 2019.

Во второй части этого цикла учебников, состоящего из четырех частей, вы подготовите данные из базы данных с помощью Python. Далее в этой серии руководств вы будете использовать эти данные для обучения и развертывания модели линейной регрессии с использованием Python в Службах машинного обучения SQL Server.

Во второй части этого цикла учебников, состоящего из четырех частей, вы подготовите данные из базы данных с помощью Python. Далее в этой серии руководств вы будете использовать эти данные для обучения и развертывания модели линейной регрессии с использованием Python в Службах машинного обучения Управляемого экземпляра SQL Azure.

В этой статье вы узнаете, как выполнять следующие задачи.

  • Загрузка данных из базы данных в кадр данных pandas.
  • Подготовка данных в Python путем удаления некоторых столбцов

В первой части вы узнали, как восстановить учебную базу данных.

В третьей части вы узнаете, как обучить модель машинного обучения линейной регрессии в Python.

В четвертой части вы узнаете, как сохранить модель в базе данных, а затем создать хранимые процедуры на основе сценариев Python, разработанных во второй и третьей частях. Хранимые процедуры будут запускаться на сервере, чтобы формировать прогнозы на основе новых данных.

Необходимые компоненты

Анализ и подготовка данных

Чтобы использовать данные в Python, необходимо загрузить их из базы данных в кадр данных pandas.

Создайте записную книжку Python в Azure Data Studio и выполните приведенный ниже сценарий.

Приведенный ниже сценарий Python импортирует набор данных из dbo.rental_data таблицы в базу данных в кадр данных Pandas.

В строке подключения при необходимости замените параметры подключения. Чтобы использовать проверку подлинности Windows со строкой подключения ODBC, укажите Trusted_Connection=Yes; вместо параметров UID и 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)

Результат должен иметь следующий вид.

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]

Отфильтруйте столбцы из кадра данных, чтобы удалить те, которые мы не хотим использовать в обучении. Не следует включать Rentalcount, поскольку это целевой объект прогнозов.

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

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

Запомните данные, к которым набор для обучения будет иметь доступ:

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]

Следующие шаги

Во второй части этого учебника вы выполнили следующие действия.

  • Загрузка данных из базы данных в кадр данных pandas.
  • Подготовка данных в Python путем удаления некоторых столбцов

Чтобы обучить модель машинного обучения, которая использует данные из базы данных TutorialDB, перейдите к третьей части этого учебника: