Freigeben über


Tutorial: Erstellen eines Vorhersagemodells in R mit SQL Machine Learning

Gilt für: SQL Server 2016 (13.x) und höhere Versionen von 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 haben Sie gelernt, wie Sie die Beispieldatenbank wiederherstellen.

In Teil 2 haben Sie gelernt, wie Sie die Daten aus einer Datenbank in einen Python-Datenframe laden und die Daten in R vorbereiten.

In Teil 4 erfahren Sie, wie Sie das Modell in einer Datenbank speichern und dann gespeicherte Prozeduren aus den Python-Skripts erstellen, die Sie in Teilen 2 und drei entwickelt haben. Die gespeicherten Prozeduren werden auf dem Server ausgeführt, um Vorhersagen basierend auf neuen Daten treffen zu können.

Prerequisites

Teil 3 dieser Lernprogrammreihe geht davon aus, dass Sie die Voraussetzungen von Teil 1 erfüllt haben und die Schritte in Teil 2 abgeschlossen 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);

Hier ist das Ergebnis.

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

Vergleich der beiden Modelle

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: