Încărcarea datelor spam și non-spam
Regresia logistică este o metodă populară pentru a prezice o variabilă categorială. Probabil una dintre cele mai frecvente aplicații ale regresiei logistice este clasificarea mesajelor sau e-mailurilor ca spam. În acest exercițiu în 3 părți, vei crea un clasificator de spam pentru e-mailuri folosind regresia logistică cu Spark MLlib. Iată pașii pe scurt pentru crearea unui clasificator de spam.
- Creează un RDD de șiruri de caractere reprezentând e-mailuri.
- Rulează algoritmii de extragere a caracteristicilor din MLlib pentru a converti textul într-un RDD de vectori.
- Aplică un algoritm de clasificare pe RDD-ul de vectori pentru a obține un obiect model care clasifică puncte noi.
- Evaluează modelul pe un set de testare folosind una dintre funcțiile de evaluare din MLlib.
În prima parte a exercițiului, vei încărca fișierele „spam" și „ham" (non-spam) în RDD-uri, vei împărți e-mailurile în cuvinte individuale și vei examina primul element din fiecare RDD.
Reține că ai un SparkContext sc disponibil în spațiul de lucru. De asemenea, variabila file_path_spam (calea către fișierul „spam") și file_path_non_spam (calea către fișierul „non-spam") sunt deja disponibile în spațiul de lucru.
Acest exercițiu face parte din cursul
Fundamentele Big Data cu PySpark
Instrucțiuni pentru exercițiu
- Creează două RDD-uri: unul pentru „spam" și unul pentru „non-spam (ham)".
- Împarte fiecare e-mail din RDD-urile „spam" și „non-spam" în cuvinte.
- Afișează primul element din RDD-ul împărțit atât pentru „spam", cât și pentru „non-spam".
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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", ____.____())