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

ต้นทางหรือปลายทางที่มีปัญหา?

ในบทเรียนก่อนหน้า คุณใช้คอมพิวเตอร์ ปลายทาง เป็น entity หลัก แต่นักวิเคราะห์ด้านความปลอดภัยไซเบอร์เพิ่งแจ้งว่าเครื่องที่ติดไวรัสต่างหากที่เป็นต้นกำเนิดของ traffic อันตราย ดังนั้นเครื่องเหล่านั้นจะปรากฏในฐานะ ต้นทาง ไม่ใช่ปลายทาง ในชุดข้อมูล flows

ข้อมูล flows ถูกโหลดไว้ล่วงหน้าแล้ว พร้อมด้วยลิสต์ bad ที่เก็บ ID ของเครื่องที่ติดไวรัส และฟังก์ชัน featurizer() จากบทเรียนก่อนหน้า นอกจากนี้ยังมี numpy ในชื่อ np, AdaBoostClassifier() และ cross_val_score() พร้อมใช้งาน

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

การออกแบบ Machine Learning Workflows ด้วย Python

ดูคอร์ส

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

  • สร้าง data frame ที่แต่ละแถวเป็น feature vector ของ source_computer โดยจัดกลุ่มตาม ID ของ source computer ในชุดข้อมูล flows แล้วนำ feature extractor ไปใช้กับแต่ละกลุ่ม
  • แปลง iterator เป็น data frame โดยเรียกใช้ list() กับมัน
  • สร้าง label โดยตรวจสอบว่า ID ของ source_computer แต่ละตัวอยู่ในลิสต์ของ bad ที่ได้รับมาหรือไม่
  • ประเมิน AdaBoostClassifier() กับข้อมูลนี้โดยใช้ cross_val_score()

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

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

# Group by source computer, and apply the feature extractor
out = flows.____('source_computer').____(featurize)

# Convert the iterator to a dataframe by calling list on it
X = pd.DataFrame(____, index=____)

# Check which sources in X.index are bad to create labels
y = [x in bads for x in ____]

# Report the average accuracy of Adaboost over 3-fold CV
print(np.mean(____(____, X, y)))
แก้ไขและรันโค้ด