Een spam-classifier trainen
De SMS-data zijn nu voorbereid om een classifier te bouwen. Dit heb je gedaan:
- cijfers en leestekens verwijderd
- de berichten opgesplitst in woorden (of "tokens")
- stopwoorden verwijderd
- de hashing trick toegepast en
- omgezet naar een TF-IDF-representatie.
Nu ga je de TF-IDF-data splitsen in trainings- en testsets. Daarna gebruik je de trainingsdata om een Logistic Regression-model te fitten en evalueer je tot slot de prestaties van dat model op de testdata.
De data staan in sms en LogisticRegression is alvast voor je geïmporteerd.
Deze oefening maakt deel uit van de cursus
Machine Learning met PySpark
Oefeninstructies
- Splits de data in trainings- en testsets in een verhouding van 4:1. Zet de random seed op 13 om herhaalbaarheid te garanderen.
- Maak een
LogisticRegression-object en fit het op de trainingsdata. - Genereer voorspellingen voor de testdata.
- Gebruik de voorspellingen om een confusion matrix te maken.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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(____, ____).____().____()