IniziaInizia gratis

Pipeline per SMS spam

È da un po’ che non guardi i dati degli SMS. L’ultima volta abbiamo fatto quanto segue:

  • suddiviso il testo in token
  • rimosso le stop word
  • applicato l’hashing trick
  • convertito i dati da conteggi a IDF e
  • addestrato un modello di regressione logistica.

Ognuno di questi passaggi è stato eseguito separatamente. Sembra un’ottima occasione per usare una pipeline!

Le classi Pipeline e LogisticRegression sono già state importate nella sessione, quindi non devi preoccupartene!

Questo esercizio fa parte del corso

Machine Learning con PySpark

Visualizza il corso

Istruzioni dell'esercizio

  • Crea un oggetto per suddividere il testo in token.
  • Crea un oggetto per rimuovere le stop word. Invece di specificare esplicitamente il nome della colonna di input, usa il metodo getOutputCol() sull’oggetto precedente.
  • Crea gli oggetti per applicare l’hashing trick e trasformare i dati in TF-IDF. Usa di nuovo il metodo getOutputCol().
  • Crea una pipeline che racchiuda tutti i passaggi sopra, oltre a un oggetto per creare un modello di Regressione Logistica.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

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])
Modifica ed esegui il codice