НачатьНачать бесплатно

Загрузка данных: спам и не спам

Логистическая регрессия — популярный метод для предсказания категориальных переменных. Пожалуй, одно из самых распространённых её применений — классификация сообщений или электронных писем как спама. В этом упражнении из трёх частей вы создадите классификатор спама на основе логистической регрессии с помощью Spark MLlib. Вот краткий план построения классификатора.

  • Создайте RDD из строк, представляющих электронные письма.
  • Запустите алгоритмы извлечения признаков из MLlib, чтобы преобразовать текст в RDD векторов.
  • Вызовите алгоритм классификации на RDD векторов — он вернёт объект модели для классификации новых точек.
  • Оцените модель на тестовом наборе данных с помощью одной из функций оценки MLlib.

В первой части упражнения вы загрузите файлы со спамом и «хорошими» письмами («ham») в RDD, разобьёте письма на отдельные слова и посмотрите на первый элемент каждого RDD.

Напоминаем: в вашем рабочем пространстве доступен SparkContext sc. Также уже заданы переменная file_path_spam (путь к файлу со спамом) и file_path_non_spam (путь к файлу с письмами, не являющимися спамом).

Это упражнение является частью курса

Основы Big Data с PySpark

Посмотреть курс

Инструкции к упражнению

  • Создайте два RDD: один для спам-писем, другой для писем, не являющихся спамом («ham»).
  • Разбейте каждое письмо в RDD спама и не-спама на отдельные слова.
  • Выведите первый элемент из разбитых RDD для спама и не-спама.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

# Load the datasets into RDDs
spam_rdd = sc.____(file_path_spam)
non_spam_rdd = sc.____(file_path_non_spam)

# Split the email messages into words
spam_words = spam_rdd.____(lambda email: email.split(' '))
non_spam_words = non_spam_rdd.____(lambda email: ____.____(' '))

# Print the first element in the split RDD
print("The first element in spam_words is", spam_words.____())
print("The first element in non_spam_words is", ____.____())
Редактировать и запускать код