Spam- en niet-spamgegevens laden
Logistic Regression is een populaire methode om een categorische respons te voorspellen. Een van de meest voorkomende toepassingen van logistic regression is het classificeren van berichten of e-mails als spam. In deze oefening in 3 delen bouw je met logistic regression een e-mailspamclassifier met Spark MLlib. Hieronder staan de stappen in het kort om een spamclassifier te maken.
- Maak een RDD met strings die e-mails voorstellen.
- Voer de functie-extractie-algoritmen van MLlib uit om tekst om te zetten naar een RDD met vectoren.
- Roep een classificatie-algoritme aan op de RDD met vectoren om een modelobject te krijgen dat nieuwe punten kan classificeren.
- Evalueer het model op een testgegevensset met een van MLlib’s evaluatiefuncties.
In het eerste deel van de oefening laad je de bestanden 'spam' en 'ham' (niet-spam) in RDD's, splits je de e-mails in losse woorden en bekijk je het eerste element in elk van de RDD's.
Onthoud: je hebt een SparkContext sc beschikbaar in je werkruimte. Ook de variabele file_path_spam (het pad naar het 'spam'-bestand) en file_path_non_spam (het pad naar het 'niet-spam'-bestand) zijn al beschikbaar in je werkruimte.
Deze oefening maakt deel uit van de cursus
Big Data Fundamentals met PySpark
Oefeninstructies
- Maak twee RDD's: één voor 'spam' en één voor 'niet-spam (ham)'.
- Splits elke e-mail in de RDD's 'spam' en 'niet-spam' in woorden.
- Print het eerste element in de gesplitste RDD van zowel 'spam' als 'niet-spam'.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# Load the datasets into RDDs
spam_rdd = sc.____(file_path_spam)
non_spam_rdd = sc.____(file_path_non_spam)
# Split the email messages into words
spam_words = spam_rdd.____(lambda email: email.split(' '))
non_spam_words = non_spam_rdd.____(lambda email: ____.____(' '))
# Print the first element in the split RDD
print("The first element in spam_words is", spam_words.____())
print("The first element in non_spam_words is", ____.____())