CommencezCommencez gratuitement

Charger les données de pourriel et de non-pourriel

La régression logistique est une méthode populaire pour prédire une réponse catégorielle. L'une des applications les plus courantes de la régression logistique est la classification des messages ou des courriels en pourriel. Dans cet exercice en trois parties, vous allez créer un classificateur de pourriel par régression logistique avec Spark MLlib. Voici les grandes étapes pour créer un classificateur de pourriel.

  • Créer un RDD de chaînes représentant des courriels.
  • Exécuter les algorithmes d'extraction de caractéristiques de MLlib pour convertir le texte en un RDD de vecteurs.
  • Appliquer un algorithme de classification sur le RDD de vecteurs pour obtenir un objet modèle permettant de classifier de nouveaux points.
  • Évaluer le modèle sur un jeu de test à l'aide d'une des fonctions d'évaluation de MLlib.

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

Rappelez-vous que vous avez un SparkContext sc dans votre espace de travail. Les variables file_path_spam (chemin vers le fichier « spam ») et file_path_non_spam (chemin vers le fichier « non-spam ») sont aussi déjà disponibles dans votre espace de travail.

Cette activité fait partie du cours

Principes de Big Data avec PySpark

Voir le cours

Instructions de l’exercice

  • Créez deux RDD, un pour « spam » et un pour « non-spam (ham) ».
  • Découpez chaque courriel des RDD « spam » et « non-spam » en mots.
  • Affichez le premier élément dans le RDD découpé pour « spam » et « non-spam ».

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# 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