ComeçarComece gratuitamente

Carregar dados de spam e non-spam

A regressão logística é um método popular para prever uma resposta categórica. Provavelmente, uma das aplicações mais comuns da regressão logística é a classificação de spam de mensagens ou e-mails. Neste exercício de três partes, você criará um classificador de spam de e-mail com regressão logística usando o Spark MLlib. Aqui estão as etapas resumidas para você criar um classificador de spam.

  • Crie um RDD de strings que representam o e-mail.
  • Execute os algoritmos de extração de recursos do MLlib para converter o texto em um RDD de vetores.
  • Chame um algoritmo de classificação no RDD de vetores para retornar um objeto de modelo para classificar novos pontos.
  • Avalie o modelo em um conjunto de dados de teste usando uma das funções de avaliação do MLlib.

Na primeira parte do exercício, você carregará os arquivos "spam" e "ham" (non-spam) em RDDs, dividirá os e-mails em palavras individuais e examinará o primeiro elemento em cada um dos RDD.

Lembre-se de que você tem um SparkContext sc disponível em seu espaço de trabalho. Além disso, as variáveis file_path_spam (que é o caminho para o arquivo "spam") e file_path_non_spam (que é o caminho para o arquivo "non-spam") já estão disponíveis em seu espaço de trabalho.

Este exercício faz parte do curso

Fundamentos de Big Data com PySpark

Ver Curso

Instruções de exercício

  • Crie dois RDDS, um para "spam" e outro para "non-spam (ham)".
  • Divida cada e-mail nos RDDs "spam" e "non-spam" em palavras.
  • Imprima o primeiro elemento no RDD dividido de "spam" e "non-spam".

Exercício interativo prático

Experimente este exercício preenchendo este código de exemplo.

# 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", ____.____())
Editar e executar código