Aracılığıyla paylaş


Öğretici: SQL makine öğrenmesi ile R'de tahmine dayalı model oluşturma

Şunlar için geçerlidir: SQL Server 2016 (13.x) ve sonraki sürümleri Azure SQL Yönetilen Örnek

Bu dört bölümden oluşan öğretici serisinin üçüncü bölümünde R'de tahmine dayalı bir model eğiteceksiniz. Bu serinin sonraki bölümünde, bu modeli Machine Learning Services içeren bir SQL Server veritabanında veya Büyük Veri Kümelerinde dağıtacaksınız.

Bu dört bölümden oluşan öğretici serisinin üçüncü bölümünde R'de tahmine dayalı bir model eğiteceksiniz. Bu serinin sonraki bölümünde, bu modeli Machine Learning Services ile bir SQL Server veritabanında dağıtacaksınız.

Bu dört bölümden oluşan öğretici serisinin üçüncü bölümünde R'de tahmine dayalı bir model eğiteceksiniz. Bu serinin sonraki bölümünde, bu modeli SQL Server R Services ile bir veritabanına dağıtacaksınız.

Bu dört bölümden oluşan öğretici serisinin üçüncü bölümünde R'de tahmine dayalı bir model eğiteceksiniz. Bu serinin sonraki bölümünde, bu modeli Machine Learning Services ile bir Azure SQL Yönetilen Örneği veritabanında dağıtacaksınız.

Bu makalede şunları nasıl yapacağınızı öğreneceksiniz:

  • İki makine öğrenmesi modeli eğitin
  • Her iki modelden de tahminde bulunma
  • En doğru modeli seçmek için sonuçları karşılaştırın

Birinci bölümde örnek veritabanını geri yüklemeyi öğrendinsiniz.

İkinci bölümde, veritabanındaki verileri Python veri çerçevesine yüklemeyi ve R'de verileri hazırlamayı öğrendinsiniz.

Dördüncü bölümde, modeli bir veritabanında depolamayı öğrenecek ve ardından ikinci ve üç bölümde geliştirdiğiniz Python betiklerinden saklı yordamlar oluşturacaksınız. Saklı yordamlar, yeni verilere dayalı tahminler yapmak için sunucuda çalışır.

Prerequisites

Bu öğretici serisinin üçüncü bölümünde birinci bölümün önkoşullarını yerine getirdiğiniz ve ikinci bölümdeki adımları tamamladığınız varsayılır.

İki model eğit

Kayak kiralama verileri için en iyi modeli bulmak için iki farklı model (doğrusal regresyon ve karar ağacı) oluşturun ve hangisinin daha doğru tahminde bulunduğuna bakın. Bu serinin birinci bölümünde oluşturduğunuz veri çerçevesini rentaldata kullanacaksınız.

#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);

Her iki modelden de tahminde bulunma

Eğitilen her modeli kullanarak kiralama sayılarını tahmin etmek için tahmin işlevi kullanın.

#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);

Sonuç kümesi aşağıdadır.

    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

Sonuçları karşılaştırma

Şimdi hangi modellerin en iyi tahminleri verdiğini görmek istiyorsunuz. Bunu yapmak için hızlı ve kolay bir yol, eğitim verilerinizdeki gerçek değerler ile tahmin edilen değerler arasındaki farkı görüntülemek için temel bir çizim işlevi kullanmaktır.

#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")

İki modeli karşılaştırma

Karar ağacı modeli, iki modelden daha doğru gibi görünüyor.

Kaynakları temizle

Bu öğreticiye devam etmeyecekseniz TutorialDB veritabanını silin.

Sonraki Adımlar

Bu öğretici serisinin üçüncü bölümünde şunların nasıl yapılacağını öğrendiniz:

  • İki makine öğrenmesi modeli eğitin
  • Her iki modelden de tahminde bulunma
  • En doğru modeli seçmek için sonuçları karşılaştırın

Oluşturduğunuz makine öğrenmesi modelini dağıtmak için bu öğretici serisinin dördüncü bölümünü izleyin: