SMS spam pipeline'ı
SMS verisine epeydir bakmadın. En son şunları yapmıştık:
- metni parçalara (token) ayırdık
- durak (stop) kelimeleri kaldırdık
- hashing trick uyguladık
- veriyi sayımlardan IDF'e dönüştürdük ve
- bir lojistik regresyon modeli eğittik.
Bu adımların her biri bağımsız yapılmıştı. Bu da pipeline için harika bir kullanım gibi görünüyor!
Pipeline ve LogisticRegression sınıfları oturuma zaten aktarılmış durumda, yani bununla uğraşmana gerek yok!
Bu egzersiz
PySpark ile Machine Learning
kursunun bir parçasıdırEgzersiz talimatları
- Metni token'lara ayırmak için bir nesne oluştur.
- Durak kelimeleri kaldırmak için bir nesne oluştur. Girdi sütunu adını açıkça vermek yerine, önceki nesnedeki
getOutputCol()yöntemini kullan. - Hashing trick uygulamak ve veriyi TF-IDF'e dönüştürmek için nesneler oluştur. Yine
getOutputCol()yöntemini kullan. - Yukarıdaki tüm adımları ve bir Lojistik Regresyon modeli oluşturacak nesneyi saran bir pipeline oluştur.
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
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])