Feature hashing dan LabelPoint
Setelah membagi email menjadi kata-kata, himpunan data mentah kita 'spam' dan 'non-spam' saat ini berupa pesan satu baris. Untuk mengklasifikasikan pesan-pesan ini, kita perlu mengonversi teks menjadi fitur.
Pada bagian kedua latihan, Anda akan terlebih dahulu membuat instance HashingTF() untuk memetakan teks ke vektor berisi 200 fitur. Lalu untuk setiap pesan dalam berkas 'spam' dan 'non-spam' Anda akan membaginya menjadi kata-kata, dan memetakan setiap kata ke satu fitur. Fitur-fitur inilah yang akan digunakan untuk menentukan apakah sebuah pesan 'spam' atau 'non-spam'. Selanjutnya, Anda akan membuat label untuk fitur. Untuk pesan valid, labelnya 0 (artinya pesan bukan spam) dan untuk pesan 'spam', labelnya 1 (artinya pesan spam). Terakhir, Anda akan menggabungkan kedua himpunan data berlabel tersebut.
Ingat, Anda memiliki SparkContext sc yang tersedia di ruang kerja Anda. Variabel spam_words dan non_spam_words juga sudah tersedia di ruang kerja Anda.
Latihan ini adalah bagian dari kursus
Fundamental Big Data dengan PySpark
Petunjuk latihan
- Buat instance
HashingTF()untuk memetakan teks email ke vektor berisi 200 fitur. - Setiap pesan dalam himpunan data 'spam' dan 'non-spam' dibagi menjadi kata-kata, dan setiap kata dipetakan ke satu fitur.
- Beri label pada fitur: 1 untuk spam, 0 untuk non-spam.
- Gabungkan sampel spam dan non-spam menjadi satu himpunan data.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# 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)