LoslegenKostenlos loslegen

SMS-Spam-Pipeline

Du hast dir die SMS-Daten schon lange nicht mehr angesehen. Beim letzten Mal haben wir Folgendes gemacht:

  • den Text in Token aufteilen
  • Stoppwörter entfernt
  • den Hashing-Trick angewendet
  • die Daten von Zählungen in IDF umgewandelt und
  • ein logistisches Regressionsmodell trainiert.

Jeder dieser Schritte wurde unabhängig voneinander durchgeführt. Das scheint eine tolle Anwendung für eine Pipeline zu sein!

Die Klassen Pipeline und LogisticRegression sind bereits in die Sitzung importiert worden, du musst dich also nicht darum kümmern!

Diese Übung ist Teil des Kurses

Maschinelles Lernen mit PySpark

Kurs anzeigen

Anleitung zur Übung

  • Erstelle ein Objekt zum Zerlegen von Text in Token.
  • Erstelle ein Objekt, um Stoppwörter zu entfernen. Anstatt den Namen der Eingabespalte explizit anzugeben, verwendest du die Methode getOutputCol() für das vorherige Objekt.
  • Erstelle Objekte, um den Hashing-Trick anzuwenden und die Daten in eine TF-IDF zu verwandeln. Verwende wieder die Methode getOutputCol().
  • Erstelle eine Pipeline, die alle oben genannten Schritte umfasst, sowie ein Objekt, um ein logistisches Regressionsmodell zu erstellen.

Interaktive Übung

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

from pyspark.ml.feature import Tokenizer, StopWordsRemover, HashingTF, IDF

# Break text into tokens at non-word characters
tokenizer = ____(inputCol='text', outputCol='words')

# Remove stop words
remover = ____(inputCol=____, outputCol='terms')

# Apply the hashing trick and transform to TF-IDF
hasher = ____(inputCol=____, outputCol="hash")
idf = ____(inputCol=____, outputCol="features")

# Create a logistic regression object and add everything to a pipeline
logistic = LogisticRegression()
pipeline = Pipeline(stages=[____, ____, ____, ____, logistic])
Code bearbeiten und ausführen