ภาพรวม Hyperparameter ของ Isolation Forest

การตรวจจับความผิดปกติใน Python

Bekhruz (Bex) Tuychiev

Kaggle Master, Data Science Content Creator

Hyperparameter ที่สำคัญที่สุด

Hyperparameter ที่มีผลต่อ IForest มากที่สุด:

  • contamination
  • n_estimators
  • max_samples
  • max_features
การตรวจจับความผิดปกติใน Python

`contamination` คืออะไร?

วิธีที่ IForest จำแนกข้อมูล:

  1. สร้าง anomaly score ดิบ
  2. กำหนดค่าขีดแบ่งที่เรียกว่า contamination
  3. คะแนนสูงสุดตามเปอร์เซ็นต์ที่กำหนดด้วย contamination จะถูกเลือกเป็น outlier
การตรวจจับความผิดปกติใน Python

การกำหนด contamination

from pyod.models.iforest import IForest


# Accepts a value between 0 and 0.5 iforest = IForest(contamination=0.05)
การตรวจจับความผิดปกติใน Python

`n_estimators` คืออะไร?

# More trees for larger datasets
iforest = IForest(n_estimators=1000)

iforest.fit(airbnb_df)
การตรวจจับความผิดปกติใน Python

`max_samples` และ `max_features`

iforest = IForest(n_estimators=200, max_samples=0.6, max_features=0.9)


iforest.fit(airbnb_df)
การตรวจจับความผิดปกติใน Python

การเติบโตของต้นไม้

  • iTree:
    • เติบโตแบบสุ่ม
    • เลือกจุดแบ่งแบบสุ่มระหว่างค่าต่ำสุดและสูงสุดของ feature
    • หยุดเติบโตเมื่อ:
      • แยก data point ออกจากกันหมดแล้ว
      • ถึงความลึกสูงสุดแล้ว
การตรวจจับความผิดปกติใน Python

ความลึกสูงสุดของต้นไม้

  • เท่ากับลอการิทึมของขนาด sample
การตรวจจับความผิดปกติใน Python

ข้อดีของ IForest

  • ทำงานได้มีประสิทธิภาพมากบนชุดข้อมูลขนาดใหญ่
  • ไม่ต้องการข้อมูลปกติครบทุกตัวเหมือนอัลกอริทึมอื่น
  • ไม่มีข้อสมมติทางสถิติ
  • ใช้งานได้ดีโดยไม่ต้องปรับแต่งมาก
การตรวจจับความผิดปกติใน Python

ความท้าทายของการตรวจจับ outlier

  • โมเดล supervised learning อาศัยเมตริก เช่น RMSE หรือ log loss
  • การตรวจจับ outlier เป็นปัญหา unsupervised learning
  • ควรใช้ตัวจำแนก outlier ร่วมกับโมเดล supervised learning
การตรวจจับความผิดปกติใน Python

มาฝึกกันเถอะ!

การตรวจจับความผิดปกติใน Python

Preparing Video For Download...