IniziaInizia gratis

Feature hashing e LabelPoint

Dopo aver suddiviso le email in parole, i nostri insiemi di dati grezzi 'spam' e 'non-spam' sono attualmente composti da messaggi su 1 riga. Per classificare questi messaggi, dobbiamo convertire il testo in feature.

Nella seconda parte dell'esercizio, creerai prima un'istanza di HashingTF() per mappare il testo in vettori di 200 feature. Poi, per ciascun messaggio nei file 'spam' e 'non-spam', li suddividerai in parole e mapperai ogni parola a una feature. Queste sono le feature che verranno usate per decidere se un messaggio è 'spam' o 'non-spam'. Successivamente, creerai le etichette per le feature. Per un messaggio valido, l'etichetta sarà 0 (cioè il messaggio non è spam) e per un messaggio 'spam' l'etichetta sarà 1 (cioè il messaggio è spam). Infine, combinerai entrambi gli insiemi di dati etichettati.

Ricorda, hai una SparkContext sc disponibile nel tuo workspace. Anche le variabili spam_words e non_spam_words sono già disponibili nel tuo workspace.

Questo esercizio fa parte del corso

Fondamenti di Big Data con PySpark

Visualizza il corso

Istruzioni dell'esercizio

  • Crea un'istanza di HashingTF() per mappare il testo delle email in vettori di 200 feature.
  • Ogni messaggio negli insiemi di dati 'spam' e 'non-spam' è suddiviso in parole, e ogni parola è mappata a una feature.
  • Etichetta le feature: 1 per spam, 0 per non-spam.
  • Combina sia i campioni spam che non-spam in un unico insieme di dati.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# Create a HashingTF instance with 200 features
tf = ____(numFeatures=200)

# Map each word to one feature
spam_features = tf.____(spam_words)
non_spam_features = tf.____(____)

# Label the features: 1 for spam, 0 for non-spam
spam_samples = spam_features.map(lambda features:LabeledPoint(____, features))
non_spam_samples = non_spam_features.map(lambda features:_____(____, features))

# Combine the two datasets
samples = spam_samples.____(non_spam_samples)
Modifica ed esegui il codice