Caricare dati spam e non-spam
La Logistic Regression è un metodo molto usato per prevedere una risposta categorica. Una delle applicazioni più comuni è la classificazione dei messaggi o delle email come spam. In questo esercizio in 3 parti, creerai un classificatore di spam per email con la logistic regression usando Spark MLlib. Ecco i passaggi principali per creare un classificatore di spam.
- Crea un RDD di stringhe che rappresentano le email.
- Esegui gli algoritmi di estrazione delle caratteristiche di MLlib per convertire il testo in un RDD di vettori.
- Esegui un algoritmo di classificazione sull'RDD di vettori per ottenere un oggetto modello con cui classificare nuovi punti.
- Valuta il modello su un insieme di dati di test usando una delle funzioni di valutazione di MLlib.
Nella prima parte dell'esercizio, caricherai i file 'spam' e 'ham' (non-spam) in RDD, suddividerai le email in singole parole e osserverai il primo elemento di ciascun RDD.
Ricorda: hai uno SparkContext sc disponibile nel tuo workspace. Inoltre, le variabili file_path_spam (che è il percorso del file 'spam') e file_path_non_spam (che è il percorso del file 'non-spam') sono già disponibili nel tuo workspace.
Questo esercizio fa parte del corso
Fondamenti di Big Data con PySpark
Istruzioni dell'esercizio
- Crea due RDD, uno per 'spam' e uno per 'non-spam (ham)'.
- Suddividi ciascuna email negli RDD 'spam' e 'non-spam' in parole.
- Stampa il primo elemento negli RDD suddivisi sia per 'spam' sia per 'non-spam'.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# 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", ____.____())