เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

โหลดข้อมูล spam และ non-spam

Logistic Regression เป็นวิธีที่นิยมใช้ในการทำนายผลลัพธ์เชิงหมวดหมู่ และหนึ่งในการประยุกต์ใช้ที่พบบ่อยที่สุดคือการจำแนกอีเมล spam ในแบบฝึกหัด 3 ส่วนนี้ คุณจะสร้างตัวจำแนก spam ด้วย logistic regression โดยใช้ Spark MLlib โดยมีขั้นตอนโดยสังเขปดังนี้

  • สร้าง RDD ของ string ที่แทนอีเมล
  • รันอัลกอริทึมการดึงคุณลักษณะ (feature extraction) ของ MLlib เพื่อแปลงข้อความเป็น RDD ของเวกเตอร์
  • เรียกใช้อัลกอริทึมการจำแนกประเภทบน RDD ของเวกเตอร์ เพื่อให้ได้ออบเจกต์โมเดลสำหรับจำแนกข้อมูลใหม่
  • ประเมินโมเดลบนชุดข้อมูลทดสอบด้วยฟังก์ชันประเมินผลของ MLlib

ในส่วนแรกของแบบฝึกหัด จะโหลดไฟล์ 'spam' และ 'ham' (non-spam) เข้าสู่ RDD จากนั้นแยกอีเมลออกเป็นคำแต่ละคำ และดูองค์ประกอบแรกของ RDD แต่ละตัว

จำไว้ว่า SparkContext sc พร้อมใช้งานใน workspace แล้ว รวมถึงตัวแปร file_path_spam (ซึ่งเป็น path ของไฟล์ 'spam') และ file_path_non_spam (ซึ่งเป็น path ของไฟล์ 'non-spam') ก็พร้อมใช้งานเช่นกัน

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

Big Data Fundamentals with PySpark

ดูคอร์ส

คำแนะนำการฝึกหัด

  • สร้าง RDD สองตัว ตัวหนึ่งสำหรับ 'spam' และอีกตัวสำหรับ 'non-spam (ham)'
  • แยกอีเมลแต่ละฉบับใน RDD ของ 'spam' และ 'non-spam' ออกเป็นคำ
  • พิมพ์องค์ประกอบแรกใน RDD ที่แยกแล้วของทั้ง 'spam' และ 'non-spam'

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

# Load the datasets into RDDs
spam_rdd = sc.____(file_path_spam)
non_spam_rdd = sc.____(file_path_non_spam)

# Split the email messages into words
spam_words = spam_rdd.____(lambda email: email.split(' '))
non_spam_words = non_spam_rdd.____(lambda email: ____.____(' '))

# Print the first element in the split RDD
print("The first element in spam_words is", spam_words.____())
print("The first element in non_spam_words is", ____.____())
แก้ไขและรันโค้ด