Навчання класифікатора спаму
Дані SMS тепер підготовлені для побудови класифікатора. Зокрема, ви виконали таке:
- вилучили числа та пунктуацію
- розбили повідомлення на слова (або «токени»)
- вилучили стоп-слова
- застосували hashing trick і
- перетворили в подання TF-IDF.
Далі потрібно розділити дані TF-IDF на тренувальну та тестову вибірки. Потім ви використаєте тренувальні дані, щоб навчити модель Logistic Regression, і нарешті оціните якість цієї моделі на тестових даних.
Дані збережені в sms, а LogisticRegression уже імпортовано для вас.
Ця вправа є частиною курсу
Machine Learning з PySpark
Інструкції до вправи
- Розділіть дані на тренувальну та тестову вибірки у співвідношенні 4:1. Встановіть зерно генератора випадкових чисел (
seed) рівним 13 для відтворюваності. - Створіть об'єкт
LogisticRegressionі навчіть його на тренувальних даних. - Згенеруйте передбачення для тестових даних.
- Використайте передбачення, щоб побудувати матрицю змішування (confusion matrix).
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# Split the data into training and testing sets
sms_train, sms_test = sms.____(____, ____)
# Fit a Logistic Regression model to the training data
logistic = ____(regParam=0.2).____(____)
# Make predictions on the testing data
prediction = logistic.____(____)
# Create a confusion matrix, comparing predictions to known labels
prediction.groupBy(____, ____).____().____()