Začněte nyníZačněte zdarma

Feature hashing a LabeledPoint

Po rozdělení e-mailů na slova se naše surové datové sady 'spam' a 'non-spam' skládají z jednořádkových zpráv. Abychom tyto zprávy mohli klasifikovat, musíme text převést na příznaky.

V druhé části cvičení nejprve vytvoříš instanci HashingTF(), která mapuje text na vektory 200 příznaků. Pak pro každou zprávu ze souborů 'spam' a 'non-spam' zprávy rozdělíš na slova a každé slovo namapuješ na jeden příznak. Tyto příznaky budou sloužit k rozhodování, zda je daná zpráva 'spam' nebo 'non-spam'. Dále přiřadíš příznaků labely – pro platnou zprávu bude label 0 (zpráva není spam) a pro zprávu spam bude label 1 (zpráva je spam). Na závěr obě označené datové sady spojíš dohromady.

Máš k dispozici SparkContext sc ve svém workspace. Proměnné spam_words a non_spam_words jsou ve workspace také již připraveny.

Toto cvičení je součástí kurzu

Big Data Fundamentals with PySpark

Zobrazit kurz

Pokyny k cvičení

  • Vytvoř instanci HashingTF(), která mapuje text e-mailů na vektory 200 příznaků.
  • Každá zpráva v datových sadách 'spam' a 'non-spam' se rozdělí na slova a každé slovo se namapuje na jeden příznak.
  • Označ příznaky labely: 1 pro spam, 0 pro non-spam.
  • Spoj vzorky spam i non-spam do jedné datové sady.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# 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)
Upravit a spustit kód