Завантаження даних про спам і не-спам
Логістична регресія — це популярний метод для прогнозування категоріальної відповіді. Один із найпоширеніших її застосунків — класифікація повідомлень або електронних листів на спам і не-спам. У цій вправі з трьох частин ви створите класифікатор спаму електронної пошти за допомогою логістичної регресії в Spark MLlib. Ось короткі кроки для створення такого класифікатора.
- Створити RDD рядків, що представляють електронні листи.
- Запустити алгоритми видобування ознак з MLlib, щоб перетворити текст на RDD векторів.
- Викликати алгоритм класифікації на RDD векторів, щоб отримати об'єкт моделі для класифікації нових точок.
- Оцінити модель на тестовому наборі даних, використовуючи одну з функцій оцінювання MLlib.
У першій частині вправи ви завантажите файли «spam» і «ham» (не-спам) у RDD, розіб'єте листи на окремі слова та переглянете перший елемент у кожному з цих RDD.
Пам'ятайте, що у вашому середовищі доступний SparkContext sc. Також змінна file_path_spam (шлях до файла «spam») і file_path_non_spam (шлях до файла «non-spam») уже доступні у вашому середовищі.
Ця вправа є частиною курсу
Основи Big Data з PySpark
Інструкції до вправи
- Створіть два RDD: один для «spam» і один для «non-spam (ham)».
- Розбийте кожен лист у RDD «spam» і «non-spam» на слова.
- Виведіть перший елемент у розбитих на слова RDD і для «spam», і для «non-spam».
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# 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", ____.____())