Läsa in spam- och icke-spamdata
Logistisk regression är en populär metod för att förutsäga ett kategoriskt utfall. En av de vanligaste tillämpningarna är klassificering av spam i meddelanden och e-post. I den här övningen med tre delar bygger du en e-postspamklassificerare med logistisk regression i Spark MLlib. Här är en kort översikt av stegen.
- Skapa en RDD av strängar som representerar e-postmeddelanden.
- Använd MLlibs algoritmer för särdragsextraktion för att konvertera text till en RDD av vektorer.
- Anropa en klassificeringsalgoritm på RDD:en med vektorer för att få ett modellobjekt som kan klassificera nya datapunkter.
- Utvärdera modellen på ett testdataset med någon av MLlibs utvärderingsfunktioner.
I den första delen läser du in filerna 'spam' och 'ham' (icke-spam) i RDD:er, delar upp e-postmeddelandena i enskilda ord och tittar på det första elementet i varje RDD.
Kom ihåg att du har ett SparkContext sc tillgängligt i din arbetsyta. Variablerna file_path_spam (sökvägen till spam-filen) och file_path_non_spam (sökvägen till icke-spam-filen) finns redan i arbetsytan.
Den här övningen är en del av kursen
Grunderna i Big Data med PySpark
Övningsinstruktioner
- Skapa två RDD:er – en för 'spam' och en för 'non-spam (ham)'.
- Dela upp varje e-postmeddelande i RDD:erna för 'spam' och 'non-spam' i enskilda ord.
- Skriv ut det första elementet i den uppdelade RDD:en för både 'spam' och 'non-spam'.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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", ____.____())