Tutorial: Erstellen eines Vorhersagemodells in R mit SQL Machine Learning
Gilt für: SQL Server 2016 (13.x) und höher Azure SQL Managed Instance
In Teil 3 dieser vierteiligen Tutorialreihe trainieren Sie ein Vorhersagemodell in R. Im nächsten Teil dieser Reihe stellen Sie dann dieses Modell in einer SQL Server-Datenbank mit Machine Learning Services oder in Big Data-Clustern bereit.
In Teil 3 dieser vierteiligen Tutorialreihe trainieren Sie ein Vorhersagemodell in R. Im nächsten Teil dieser Reihe stellen Sie dann dieses Modell in einer SQL Server-Datenbank mit Machine Learning Services bereit.
In Teil 3 dieser vierteiligen Tutorialreihe trainieren Sie ein Vorhersagemodell in R. Im nächsten Teil dieser Reihe stellen Sie dann dieses Modell in einer Datenbank mit SQL Server R Services bereit.
In Teil 3 dieser vierteiligen Tutorialreihe trainieren Sie ein Vorhersagemodell in R. Im nächsten Teil dieser Reihe stellen Sie dann dieses Modell in einer Azure SQL Managed Instance-Datenbank mit Machine Learning Services bereit.
In diesem Artikel lernen Sie Folgendes:
- Trainieren von zwei Machine Learning-Modellen
- Erstellen von Vorhersagen aus beiden Modellen
- Vergleichen der Ergebnisse, um das genaueste Modell zu wählen
In Teil 1 dieser Tutorialreihe haben Sie gelernt, wie Sie die Beispieldatenbank wiederherstellen.
In Teil 2 haben Sie erfahren, wie Sie die Daten aus einer Datenbank in einen Python-Datenframe laden und in R vorbereiten.
In Teil 4 haben Sie gelernt, wie Sie das Modell in einer Datenbank speichern und gespeicherte Prozeduren aus den Python-Skripts erstellen, die Sie in Teil 2 und 3 entwickelt haben. Die gespeicherten Prozeduren werden auf dem Server ausgeführt, um Vorhersagen basierend auf neuen Daten treffen zu können.
Voraussetzungen
In Teil 3 dieser Tutorialreihe wird vorausgesetzt, dass Sie die Voraussetzungen für Teil 1 erfüllt und die Schritte in Teil 2 durchgeführt haben.
Trainieren von zwei Modellen
Um das beste Modell für die Skiverleihdaten zu finden, erstellen Sie zwei verschiedene Modelle (lineare Regression und Entscheidungsstruktur) und stellen fest, welches genauere Vorhersagen liefert. Sie werden den Datenrahmen rentaldata
verwenden, den Sie in Teil eins dieser Reihe erstellt haben.
#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);
Erstellen von Vorhersagen aus beiden Modellen
Verwenden Sie eine Vorhersagefunktion, um die Vermietungszahlen mithilfe jedes der trainierten Modelle vorherzusagen.
#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
Vergleichen der Ergebnisse
Jetzt möchten Sie bestimmen, welches der Modelle die besten Vorhersagen ergibt. Eine schnelle und bequeme Möglichkeit dazu bietet eine einfache Zeichenfunktion, um den Unterschied zwischen den Ist-Werten in Ihren Trainingsdaten und den vorhergesagten Daten darzustellen.
#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")
Offenbar ist das Entscheidungsstruktur-Modell das genauere der beiden Modelle.
Bereinigen von Ressourcen
Wenn Sie nicht mit diesem Tutorial fortfahren möchten, löschen Sie die Datenbank „TutorialDB“.
Nächste Schritte
In Teil 3 dieser Tutorialreihe haben Sie Folgendes gelernt:
- Trainieren von zwei Machine Learning-Modellen
- Erstellen von Vorhersagen aus beiden Modellen
- Vergleichen der Ergebnisse, um das genaueste Modell zu wählen
Fahren Sie mit Teil 4 dieser Tutorialreihe fort, um das von Ihnen erstellte Machine Learning-Modell einzusetzen: