Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy: SQL Server 2016 (13.x) i nowsze wersje
usługi Azure SQL Managed Instance
W trzeciej części tej czteroczęściowej serii samouczków wytrenujesz model predykcyjny w języku R. W następnej części tej serii wdrożysz ten model w bazie danych programu SQL Server z usługami Machine Learning Services lub w klastrach danych big data.
W trzeciej części tej czteroczęściowej serii samouczków wytrenujesz model predykcyjny w języku R. W następnej części tej serii wdrożysz ten model w bazie danych programu SQL Server z usługami Machine Learning Services.
W trzeciej części tej czteroczęściowej serii samouczków wytrenujesz model predykcyjny w języku R. W następnej części tej serii wdrożysz ten model w bazie danych z usługami JĘZYKA R programu SQL Server.
W trzeciej części tej czteroczęściowej serii samouczków wytrenujesz model predykcyjny w języku R. W następnej części tej serii wdrożysz ten model w bazie danych usługi Azure SQL Managed Instance z usługami Machine Learning Services.
W tym artykule dowiesz się, jak:
- Trenowanie dwóch modeli uczenia maszynowego
- Przewidywanie na podstawie obu modeli
- Porównaj wyniki, aby wybrać najbardziej dokładny model
W części drugiej przedstawiono sposób przywracania przykładowej bazy danych.
W drugiej części przedstawiono sposób ładowania danych z bazy danych do ramki danych języka Python i przygotowywania danych w języku R.
W czwartej części dowiesz się, jak przechowywać model w bazie danych, a następnie utworzyć procedury składowane na podstawie skryptów języka Python utworzonych w częściach 2 i trzech. Procedury składowane będą uruchamiane na serwerze w celu przewidywania na podstawie nowych danych.
Prerequisites
W trzeciej części tej serii samouczków przyjęto założenie, że spełniono wymagania wstępne części jednej i wykonano kroki opisane w drugiej części.
Trenowanie dwóch modeli
Aby znaleźć najlepszy model dla danych wynajmu nart, utwórz dwa różne modele (regresja liniowa i drzewo decyzyjne) i zobacz, który z nich przewiduje się dokładniej. Użyjesz ramki rentaldata danych utworzonej w części jednej z tej serii.
#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);
Przewidywanie na podstawie obu modeli
Użyj funkcji predict, aby przewidzieć liczbę wypożyczeń przy użyciu każdego wytrenowanego modelu.
#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);
Oto zestaw wyników.
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
Porównanie wyników
Teraz chcesz zobaczyć, które z modeli dają najlepsze przewidywania. Szybkim i łatwym sposobem na wykonanie tej czynności jest użycie podstawowej funkcji kreślenia w celu wyświetlenia różnicy między rzeczywistymi wartościami w danych treningowych a przewidywanymi wartościami.
#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")
Wygląda na to, że model drzewa decyzyjnego jest dokładniejszy z dwóch modeli.
Uprzątnij zasoby
Jeśli nie zamierzasz kontynuować pracy z tym samouczkiem, usuń bazę danych TutorialDB.
Dalsze kroki
W trzeciej części tej serii samouczków przedstawiono następujące zagadnienia:
- Trenowanie dwóch modeli uczenia maszynowego
- Przewidywanie na podstawie obu modeli
- Porównaj wyniki, aby wybrać najbardziej dokładny model
Aby wdrożyć utworzony model uczenia maszynowego, wykonaj czynności opisane w czwartej części tej serii samouczków: