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
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)