Aan de slagGa gratis aan de slag

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

Cursus bekijken

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", ____.____())
Code bewerken en uitvoeren