Training des logistischen Regressionsmodells
Nachdem wir Labels und Merkmale für die Daten erstellt haben, können wir ein Modell konstruieren, das aus den Daten lernt (Training). Vor dem Training des Modells musst du jedoch in diesem letzten Teil der Übung erst die Daten in eine Trainings- und eine Teststichprobe zerlegen, dann das logistische Regressionsmodell mit den Trainingsdaten laufen lassen und schließlich die Genauigkeit des mit den Trainingsdaten trainierten Modells prüfen.
Zur Erinnerung: Der SparkContext sc
und die Variable samples
sind schon im Arbeitsbereich verfügbar.
Diese Übung ist Teil des Kurses
Grundlagen von Big Data mit PySpark
Anleitung zur Übung
- Teile die kombinierten Daten in Trainings- und Teststichproben im Verhältnis 80:20 auf.
- Trainiere das logistische Regressionsmodell mit dem Trainingsdatensatz.
- Erstelle ein Vorhersage-Label anhand des trainierten Modells für den Testdatensatz.
- Kombiniere die Labels im Testdatensatz mit den Labels im Vorhersagedatensatz und nutze dazu die
zip
-Funktion. - Berechne die Genauigkeit des trainierten Modells anhand der ursprünglichen und der vorhergesagten Labels und gib das Ergebnis aus.
Interaktive Übung zum Anfassen
Probieren Sie diese Übung aus, indem Sie diesen Beispielcode ausführen.
# Split the data into training and testing
train_samples,test_samples = samples.____([0.8, 0.2])
# Train the model
model = LogisticRegressionWithLBFGS.train(____)
# Create a prediction label from the test data
predictions = model.____(test_samples.map(lambda x: x.features))
# Combine original labels with the predicted labels
labels_and_preds = test_samples.map(lambda x: x.label).zip(____)
# Check the accuracy of the model on the test data
accuracy = labels_and_preds.filter(lambda x: x[0] == x[____]).count() / float(test_samples.count())
print("Model accuracy : {:.2f}".format(____))