Kom igångKom igång gratis

Feature hashing och LabeledPoint

Efter att ha delat upp e-postmeddelandena i ord består våra råa datamängder 'spam' och 'icke-spam' av meddelanden på en rad vardera. För att klassificera dessa meddelanden behöver vi omvandla text till särdrag.

I den här delen av övningen skapar du först en instans av HashingTF() för att mappa text till vektorer med 200 särdrag. Sedan delar du upp varje meddelande i 'spam'- och 'icke-spam'-filerna i ord och mappar varje ord till ett särdrag. Det är dessa särdrag som används för att avgöra om ett meddelande är 'spam' eller 'icke-spam'. Därefter skapar du etiketter för särdragen: 0 för ett giltigt meddelande (dvs. inte spam) och 1 för ett skräppostmeddelande (dvs. spam). Slutligen kombinerar du de båda etiketterade datamängderna.

Kom ihåg att du har ett SparkContext sc tillgängligt i din arbetsmiljö. Variablerna spam_words och non_spam_words finns också redan tillgängliga.

Den här övningen är en del av kursen

Grunderna i Big Data med PySpark

Visa kurs

Övningsinstruktioner

  • Skapa en instans av HashingTF() för att mappa e-posttext till vektorer med 200 särdrag.
  • Dela upp varje meddelande i 'spam'- och 'icke-spam'-datamängderna i ord och mappa varje ord till ett särdrag.
  • Sätt etiketter på särdragen: 1 för spam och 0 för icke-spam.
  • Kombinera spam- och icke-spam-urvalen till en enda datamängd.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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)
Redigera och kör kod