Wczytywanie danych spam i nie-spam
Regresja logistyczna to popularna metoda przewidywania odpowiedzi kategorialnej. Jednym z jej najczęstszych zastosowań jest klasyfikacja wiadomości e-mail jako spam. W tym trzyczęściowym ćwiczeniu zbudujesz klasyfikator spamu przy użyciu regresji logistycznej i Spark MLlib. Oto krótki przegląd kroków:
- Utwórz RDD ciągów znaków reprezentujących wiadomości e-mail.
- Zastosuj algorytmy ekstrakcji cech z MLlib, aby przekształcić tekst w RDD wektorów.
- Wywołaj algorytm klasyfikacji na RDD wektorów, aby uzyskać obiekt modelu do klasyfikacji nowych punktów.
- Oceń model na zbiorze testowym, korzystając z jednej z funkcji ewaluacyjnych MLlib.
W pierwszej części ćwiczenia wczytasz pliki ze spamem i z wiadomościami „ham" (nie-spam) do RDD, podzielisz wiadomości na poszczególne słowa i sprawdzisz pierwszy element każdego z RDD.
Pamiętaj, że w swoim środowisku masz dostępny SparkContext sc. Dostępne są też zmienne: file_path_spam (ścieżka do pliku ze spamem) oraz file_path_non_spam (ścieżka do pliku z wiadomościami nie-spam).
To ćwiczenie jest częścią kursu
Podstawy Big Data z PySpark
Instrukcje do ćwiczenia
- Utwórz dwa RDD – jedno dla wiadomości „spam" i jedno dla „nie-spam (ham)".
- Podziel każdą wiadomość w RDD „spam" i „nie-spam" na słowa.
- Wyświetl pierwszy element w podzielonym RDD dla „spam" i „nie-spam".
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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", ____.____())