Pipeline pentru spam SMS
Nu ai mai lucrat cu datele SMS de ceva vreme. Ultima oară am parcurs pașii următori:
- am împărțit textul în tokeni
- am eliminat cuvintele de oprire
- am aplicat tehnica de hashing
- am transformat datele din numărători în IDF și
- am antrenat un model de regresie logistică.
Fiecare dintre acești pași a fost realizat independent. Acesta pare un caz ideal pentru un pipeline!
Clasele Pipeline și LogisticRegression au fost deja importate în sesiune, deci nu trebuie să te îngrijorezi de asta!
Acest exercițiu face parte din cursul
Machine Learning cu PySpark
Instrucțiuni pentru exercițiu
- Creează un obiect pentru împărțirea textului în tokeni.
- Creează un obiect pentru eliminarea cuvintelor de oprire. În loc să specifici explicit numele coloanei de intrare, folosește metoda
getOutputCol()pe obiectul anterior. - Creează obiecte pentru aplicarea tehnicii de hashing și transformarea datelor în TF-IDF. Folosește din nou metoda
getOutputCol(). - Creează un pipeline care înglobează toți pașii de mai sus, precum și un obiect pentru crearea unui model de regresie logistică.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
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])