Einen Spam-Klassifizierer trainieren
Die SMS-Daten sind jetzt bereit, um einen Klassifikator zu erstellen. Genauer gesagt hast du Folgendes gemacht:
- Zahlen und Satzzeichen entfernt
- Die Nachrichten in Wörter (oder „Tokens“) aufteilen
- Stoppwörter entfernt
- den Hash-Trick angewendet und
- in eine TF-IDF-Darstellung umgewandelt.
Als Nächstes musst du die TF-IDF-Daten in Trainings- und Testdatensätze aufteilen. Dann nimmst du die Trainingsdaten, um ein logistisches Regressionsmodell anzupassen, und am Ende schaust du, wie gut das Modell mit den Testdaten klappt.
Die Daten sind unter „ sms
“ gespeichert und „ LogisticRegression
“ wurde für dich importiert.
Diese Übung ist Teil des Kurses
Maschinelles Lernen mit PySpark
Anleitung zur Übung
- Teile die Daten im Verhältnis 4:1 in Trainings- und Testdatensätze auf. Stell den Zufallszahlengenerator auf 13, damit alles wieder so läuft wie vorher.
- Mach ein „
LogisticRegression
“-Objekt und passe es an die Trainingsdaten an. - Mach Vorhersagen zu den Testdaten.
- Verwende die Vorhersagen, um eine Verwechslungsmatrix zu erstellen.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# Split the data into training and testing sets
sms_train, sms_test = sms.____(____, ____)
# Fit a Logistic Regression model to the training data
logistic = ____(regParam=0.2).____(____)
# Make predictions on the testing data
prediction = logistic.____(____)
# Create a confusion matrix, comparing predictions to known labels
prediction.groupBy(____, ____).____().____()