LoslegenKostenlos loslegen

Laden von Spam- und Nicht-Spam-Daten

Die logistische Regression ist eine beliebte Methode, um eine kategoriale Antwort vorherzusagen. Einer der häufigsten Anwendungsfälle der logistischen Regression ist wahrscheinlich die Klassifikation von Nachrichten oder E-Mail-Spam. In dieser dreiteiligen Übung erstellst du einen Klassifikator für E-Mail-Spam mithilfe von logistischer Regression und Spark MLlib. Hier sind die nötigen Schritte zur Erstellung eines Spam-Klassifikators:

  • Erstelle einen RDD aus Strings, die E-Mails darstellen.
  • Führe die MLlib-Algorithmen zur Merkmalsextraktion aus, um den Text in einen RDD aus Vektoren zu konvertieren.
  • Rufe einen Klassifikationsalgorithmus mit dem RDD aus Vektoren auf, um ein Modellobjekt zur Klassifikation neuer Datenpunkte zurückzugeben.
  • Evaluiere das Modell mithilfe eines Testdatensatzes und nutze dazu eine der Evaluierungsfunktionen von MLlib.

Im ersten Teil der Übung lädst du die Spam- und Nicht-Spam-Dateien in RDDs, zerlegst die E-Mails in einzelne Wörter und betrachtest das erste Element in jedem der RDDs.

Zur Erinnerung: Der SparkContext sc ist schon im Arbeitsbereich verfügbar. Auch die Variablen file_path_spam (Pfad zur Spam-Datei) und file_path_non_spam (Pfad zur Nicht-Spam-Datei) sind bereits im Arbeitsbereich vorhanden.

Diese Übung ist Teil des Kurses

Grundlagen von Big Data mit PySpark

Kurs anzeigen

Anleitung zur Übung

  • Erstelle zwei RDDs: einen für „Spam“ und einen für „Nicht-Spam“.
  • Zerlege jede E-Mail in den „Spam“- und „Nicht-Spam“-RDDs in Wörter.
  • Gib das erste Element in den zerlegten RDDs für „Spam“ und „Nicht-Spam“ aus.

Interaktive Übung

Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.

# 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", ____.____())
Code bearbeiten und ausführen