LoslegenKostenlos loslegen

SMS-Spam-Pipeline

Du hast schon eine ganze Weile nicht mehr in deine SMS-Daten reingeschaut. Letztes Mal haben wir Folgendes gemacht:

  • den Text in Tokens aufteilen
  • Stoppwörter entfernt
  • den Hash-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 klingt nach einer coolen Anwendung für eine Pipeline!

Die Klassen „ Pipeline “ und „ LogisticRegression “ wurden schon in die Sitzung importiert, also musst du dir darüber keine Gedanken machen!

Diese Übung ist Teil des Kurses

Maschinelles Lernen mit PySpark

Kurs anzeigen

Anleitung zur Übung

  • Erstell ein Objekt, um Text in Tokens aufzuteilen.
  • Erstell ein Objekt, um Stoppwörter zu entfernen. Anstatt den Namen der Eingabespalte direkt anzugeben, solltest du die Methode „ getOutputCol() “ für das vorherige Objekt verwenden.
  • Erstelle Objekte, um den Hashing-Trick anzuwenden und die Daten in TF-IDF umzuwandeln. Verwende wieder die Methode „ getOutputCol() “.
  • Mach eine Pipeline, die alle oben genannten Schritte abdeckt, und ein Objekt, um ein logistisches Regressionsmodell zu erstellen.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

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