ÎncepețiÎncepe gratuit

Î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

Vezi cursul

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", ____.____())
Editează și rulează codul