Tutorial: Membuat model prediktif di R dengan pembelajaran mesin SQL
Berlaku untuk: SQL Server 2016 (13.x) dan Azure SQL Managed Instance yang lebih baru
Di bagian tiga dari seri tutorial empat bagian ini, Anda akan melatih model prediktif di R. Di bagian berikutnya dari seri ini, Anda akan menyebarkan model ini dalam database SQL Server dengan Pembelajaran Mesin Services atau di Kluster Big Data.
Di bagian tiga dari seri tutorial empat bagian ini, Anda akan melatih model prediktif di R. Di bagian berikutnya dari seri ini, Anda akan menyebarkan model ini dalam database SQL Server dengan Pembelajaran Mesin Services.
Di bagian tiga dari seri tutorial empat bagian ini, Anda akan melatih model prediktif di R. Di bagian berikutnya dari seri ini, Anda akan menyebarkan model ini dalam database dengan SQL Server R Services.
Di bagian tiga dari seri tutorial empat bagian ini, Anda akan melatih model prediktif di R. Di bagian berikutnya dari seri ini, Anda akan menyebarkan model ini dalam database Azure SQL Managed Instance dengan Pembelajaran Mesin Services.
Dalam artikel ini, Anda akan mempelajari cara:
- Melatih dua model pembelajaran mesin
- Membuat prediksi dari kedua model
- Bandingkan hasil untuk memilih model yang paling akurat
Di bagian satu, Anda mempelajari cara memulihkan database sampel.
Di bagian dua, Anda mempelajari cara memuat data dari database ke dalam bingkai data Python dan menyiapkan data di R.
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 ketiga dari seri tutorial ini mengasumsikan Anda telah memenuhi prasyarat bagian satu, dan menyelesaikan langkah-langkah di bagian dua.
Melatih dua model
Untuk menemukan model terbaik untuk data sewa ski, buat dua model berbeda (regresi linier dan pohon keputusan) dan lihat mana yang memprediksi dengan lebih akurat. Anda akan menggunakan bingkai rentaldata
data yang Anda buat di bagian salah satu seri ini.
#First, split the dataset into two different sets:
# one for training the model and the other for validating it
train_data = rentaldata[rentaldata$Year < 2015,];
test_data = rentaldata[rentaldata$Year == 2015,];
#Use the RentalCount column to check the quality of the prediction against actual values
actual_counts <- test_data$RentalCount;
#Model 1: Use lm to create a linear regression model, trained with the training data set
model_lm <- lm(RentalCount ~ Month + Day + WeekDay + Snow + Holiday, data = train_data);
#Model 2: Use rpart to create a decision tree model, trained with the training data set
library(rpart);
model_rpart <- rpart(RentalCount ~ Month + Day + WeekDay + Snow + Holiday, data = train_data);
Membuat prediksi dari kedua model
Gunakan fungsi prediksi untuk memprediksi jumlah sewa menggunakan setiap model terlatih.
#Use both models to make predictions using the test data set.
predict_lm <- predict(model_lm, test_data)
predict_lm <- data.frame(RentalCount_Pred = predict_lm, RentalCount = test_data$RentalCount,
Year = test_data$Year, Month = test_data$Month,
Day = test_data$Day, Weekday = test_data$WeekDay,
Snow = test_data$Snow, Holiday = test_data$Holiday)
predict_rpart <- predict(model_rpart, test_data)
predict_rpart <- data.frame(RentalCount_Pred = predict_rpart, RentalCount = test_data$RentalCount,
Year = test_data$Year, Month = test_data$Month,
Day = test_data$Day, Weekday = test_data$WeekDay,
Snow = test_data$Snow, Holiday = test_data$Holiday)
#To verify it worked, look at the top rows of the two prediction data sets.
head(predict_lm);
head(predict_rpart);
RentalCount_Pred RentalCount Month Day WeekDay Snow Holiday
1 27.45858 42 2 11 4 0 0
2 387.29344 360 3 29 1 0 0
3 16.37349 20 4 22 4 0 0
4 31.07058 42 3 6 6 0 0
5 463.97263 405 2 28 7 1 0
6 102.21695 38 1 12 2 1 0
RentalCount_Pred RentalCount Month Day WeekDay Snow Holiday
1 40.0000 42 2 11 4 0 0
2 332.5714 360 3 29 1 0 0
3 27.7500 20 4 22 4 0 0
4 34.2500 42 3 6 6 0 0
5 645.7059 405 2 28 7 1 0
6 40.0000 38 1 12 2 1 0
Membandingkan hasilnya
Sekarang Anda ingin melihat model mana yang memberikan prediksi terbaik. Cara cepat dan mudah untuk melakukan ini adalah dengan menggunakan fungsi plot dasar untuk melihat perbedaan antara nilai aktual dalam data pelatihan Anda dan nilai yang diprediksi.
#Use the plotting functionality in R to visualize the results from the predictions
par(mfrow = c(1, 1));
plot(predict_lm$RentalCount_Pred - predict_lm$RentalCount, main = "Difference between actual and predicted. lm")
plot(predict_rpart$RentalCount_Pred - predict_rpart$RentalCount, main = "Difference between actual and predicted. rpart")
Sepertinya model pohon keputusan adalah yang lebih akurat dari dua model.
Membersihkan sumber daya
Jika Anda tidak akan melanjutkan tutorial ini, hapus database TutorialDB.
Langkah berikutnya
Di bagian tiga seri tutorial ini, Anda mempelajari cara:
- Melatih dua model pembelajaran mesin
- Membuat prediksi dari kedua model
- Bandingkan hasil untuk memilih model yang paling akurat
Untuk menyebarkan model pembelajaran mesin yang telah Anda buat, ikuti bagian empat dari seri tutorial ini: