SMS 스팸 파이프라인
SMS 데이터를 다룬 지 꽤 되었네요. 지난번에는 다음을 수행했어요:
- 텍스트를 토큰으로 분할함
- 불용어를 제거함
- 해싱 트릭을 적용함
- 카운트 기반 데이터를 IDF로 변환함
- 로지스틱 회귀 모델을 학습함
이 단계들은 각각 독립적으로 수행되었습니다. 파이프라인을 적용하면 아주 잘 맞겠지요!
Pipeline과 LogisticRegression 클래스는 이미 세션에 임포트되어 있으니, 따로 신경 쓰지 않으셔도 됩니다!
이 연습은 강의의 일부입니다
PySpark로 하는 Machine Learning
연습 안내
- 텍스트를 토큰으로 분할하는 객체를 만드세요.
- 불용어를 제거하는 객체를 만드세요. 입력 컬럼 이름을 직접 지정하는 대신, 이전 객체의
getOutputCol()메서드를 사용하세요. - 해싱 트릭을 적용하고 데이터를 TF-IDF로 변환하는 객체들을 만드세요. 이때도
getOutputCol()메서드를 사용하세요. - 위의 모든 단계를 감싸고, 로지스틱 회귀 모델 객체를 포함하는 파이프라인을 만드세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
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])