Bagikan melalui


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

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

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 Pembelajaran Mesin Services atau di 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 Pembelajaran Mesin 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 Pembelajaran Mesin 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 ketiga, 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, termasuk menginstal paket Python yang diperlukan, pandas dan pyodbc.

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.

Di 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


# 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 kerangka data 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 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 seri tutorial ini, Anda menyelesaikan langkah-langkah berikut:

  • 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 tiga dari seri tutorial ini: