CommencerCommencer gratuitement

Chargement des données de spam et non-spam

La régression logistique est une méthode courante pour prédire une réponse catégorique. L'une des applications les plus courantes de la régression logistique est probablement la classification des messages ou des e-mails indésirables. Dans cet exercice en 3 parties, vous allez créer un classificateur de spam pour les e-mails avec une régression logistique en utilisant Spark MLlib. Voici les étapes de la création d'un classificateur de spam.

  • Créez un RDD de chaînes de caractères représentant l'e-mail.
  • Exécutez les algorithmes d'extraction de caractéristiques de MLlib pour convertir le texte en RDD de vecteurs.
  • Appelez un algorithme de classification sur le RDD des vecteurs pour renvoyer un objet modèle permettant de classer les nouveaux points.
  • Évaluez le modèle sur un ensemble de données de test en utilisant l'une des fonctions d'évaluation de MLlib.

Dans la première partie de l'exercice, vous allez charger les fichiers « spam » et « ham » (non-spam) dans des RDD, diviser les e-mails en mots individuels et examiner le premier élément de chacun des RDD.

Rappelez-vous qu’un SparkContext sc est déjà disponible dans votre espace de travail. Les variables file_path_spam (qui est le chemin vers le fichier « spam ») et file_path_non_spam (qui est le chemin vers le fichier « non-spam ») sont également déjà disponibles dans votre espace de travail.

Cet exercice fait partie du cours

Principes fondamentaux des mégadonnées avec PySpark

Afficher le cours

Instructions

  • Créez deux RDD, l'un pour « spam » et l'autre pour « non-spam (ham) ».
  • Divisez chaque e-mail en mots dans les RDD « spam » et « non-spam ».
  • Affichez le premier élément du RDD divisé « spam » ainsi que de « non-spam ».

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

# 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", ____.____())
Modifier et exécuter le code