Tutorial Python: Menyiapkan data untuk melatih model regresi linier dengan pembelajaran mesin SQL

Berlaku untuk: SQL Server 2017 (14.x) dan yang lebih baru Azure SQL Managed Instance

Di bagian dua dari seri tutorial empat bagian ini, Anda akan menyiapkan data dari database menggunakan Python. Nantinya dalam seri ini, Anda akan menggunakan data ini untuk melatih dan menyebarkan model regresi linier di Python dengan SQL Server Machine Learning Services atau pada SQL Server 2019 Kluster Big Data.

Di bagian dua dari seri tutorial empat bagian ini, Anda akan menyiapkan data dari database menggunakan Python. Nantinya dalam seri ini, Anda akan menggunakan data ini untuk melatih dan menyebarkan model regresi linier di Python dengan SQL Server Machine Learning Services.

Di bagian dua dari seri tutorial empat bagian ini, Anda akan menyiapkan data dari database menggunakan Python. Nantinya dalam seri ini, Anda akan menggunakan data ini untuk melatih dan menyebarkan model regresi linier di Python dengan Azure SQL Managed Instance Machine Learning Services.

Dalam artikel ini, Anda akan mempelajari cara:

  • Memuat data dari database ke dalam bingkai data pandas
  • Menyiapkan data di Python dengan menghapus beberapa kolom

Di bagian satu, Anda mempelajari cara memulihkan database sampel.

Di bagian tiga, Anda akan mempelajari cara melatih model pembelajaran mesin regresi linier di Python.

Di bagian empat, Anda akan mempelajari cara menyimpan model dalam database, lalu membuat prosedur tersimpan dari skrip Python yang Anda kembangkan di bagian dua dan tiga. Prosedur tersimpan akan berjalan di server untuk membuat prediksi berdasarkan data baru.

Prasyarat

  • Bagian dua dari tutorial ini mengasumsikan Anda telah menyelesaikan bagian satu dan prasyaratnya.

Menjelajahi dan menyiapkan data

Untuk menggunakan data di Python, Anda akan memuat data dari database ke dalam bingkai data pandas.

Buat buku catatan Python baru di Azure Data Studio dan jalankan skrip di bawah ini.

Skrip Python di bawah ini mengimpor himpunan data dari dbo.rental_data tabel dalam database Anda ke bingkai data pandas df.

Dalam string koneksi, ganti detail koneksi sesuai kebutuhan. Untuk menggunakan autentikasi Windows dengan string koneksi ODBC, tentukan Trusted_Connection=Yes; alih-alih UID parameter dan 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)

Anda akan melihat hasil yang mirip dengan yang berikut ini.

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]

Filter kolom dari dataframe untuk menghapus kolom yang tidak ingin kami gunakan dalam pelatihan. Rentalcount tidak boleh disertakan karena merupakan target prediksi.

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

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

Perhatikan bahwa data yang akan diakses set pelatihan:

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]

Langkah berikutnya

Di bagian dua dari seri tutorial ini, Anda menyelesaikan langkah-langkah ini:

  • Memuat data dari database ke dalam bingkai data pandas
  • Menyiapkan data di Python dengan menghapus beberapa kolom

Untuk melatih model pembelajaran mesin yang menggunakan data dari TutorialDB database, ikuti bagian ketiga dari seri tutorial ini: