Pipeline de spam SMS
Vous n'avez pas consulté les données SMS depuis un certain temps. La dernière fois, nous avons effectué les opérations suivantes :
- diviser le texte en tokens
- mots vides supprimés
- a appliqué l'astuce du hachage
- converti les données de comptage en IDF et
- Nous avons formé un modèle de régression logistique.
Chacune de ces étapes a été réalisée de manière indépendante. Cela semble être une excellente application pour un pipeline.
Les classes Pipeline
et LogisticRegression
ont déjà été importées dans la session, vous n'avez donc pas à vous en soucier.
Cet exercice fait partie du cours
Apprentissage automatique avec PySpark
Instructions
- Créez un objet permettant de diviser le texte en tokens.
- Créer un objet pour supprimer les mots vides. Au lieu d'indiquer explicitement le nom de la colonne d'entrée, veuillez utiliser la méthode
getOutputCol()
sur l'objet précédent. - Créez des objets pour appliquer la technique de hachage et transformer les données en TF-IDF. Veuillez utiliser à nouveau la méthode d'
getOutputCol()
. - Veuillez créer un pipeline qui englobe toutes les étapes ci-dessus ainsi qu'un objet pour créer un modèle de régression logistique.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
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])