2.6.4
Isolation Forest
สรุป
- สรุปเป้าหมาย สมมติฐาน และเงื่อนไขที่เหมาะสมของวิธีนี้.
- ตรวจสอบว่ากฎการอัปเดตหรือเกณฑ์การแบ่งส่งผลต่อพฤติกรรมโมเดลอย่างไร.
- ใช้ตัวอย่างโค้ดเพื่อกำหนดแนวทางปรับพารามิเตอร์อย่างเป็นรูปธรรม.
สัญชาตญาณ #
Isolation Forest ควรเข้าใจผ่านสมมติฐาน กลไกการปรับปรุงโมเดล และรูปแบบความผิดพลาดบนข้อมูลจริง เพื่อให้เลือกโมเดลและปรับพารามิเตอร์ได้อย่างเหมาะสม.
คำอธิบายโดยละเอียด #
1. หลักการทำงาน #
- สุ่มย่อยข้อมูลหลายชุด (subsample)
- สร้าง Isolation Tree ด้วยการเลือกฟีเจอร์และค่าตัดแบบสุ่ม
- ตัวอย่างที่มีเส้นทางเฉลี่ยสั้นจะถูกแยกได้ง่ายกว่า จึงน่าจะเป็นความผิดปกติ
คะแนนจะถูกทำให้เป็นสเกลเดียวกันด้วยความยาวเส้นทางคาดหวังของต้นไม้สุ่ม \(c(n)\)
2. ตัวอย่าง Python #
| |
3. ไฮเปอร์พารามิเตอร์ #
n_estimators: จำนวนต้นไม้ มากขึ้นจะเสถียรกว่าmax_samples: จำนวนตัวอย่างต่อหนึ่งต้นไม้ ค่าเริ่มต้นmin(256, n_samples)contamination: สัดส่วนความผิดปกติที่คาดไว้ ใช้ตั้งค่า thresholdmax_features: จำนวนฟีเจอร์ที่ใช้ในแต่ละ split
4. ข้อดีและข้อจำกัด #
| ข้อดี | ข้อจำกัด |
|---|---|
| ค่อนข้างเร็วแม้ข้อมูลมิติสูง | ผลลัพธ์เปลี่ยนได้ตาม seed |
| ไม่จำเป็นต้องสเกลข้อมูล (แต่แนะนำให้ทำ) | ความผิดปกติแบบเฉพาะจุดอาจหลุดได้ |
| ฝึกและทำนายง่าย | ตั้งค่า contamination ให้เหมาะอาจยาก |
5. สรุป #
- Isolation Forest ใช้ “ความสั้นของเส้นทางแยก” เป็นสัญญาณความผิดปกติ
- ใช้งานง่ายใน scikit-learn โดยปรับหลัก ๆ ที่จำนวนต้นไม้และจำนวนตัวอย่าง
- เหมาะกับการกรองความผิดปกติอย่างรวดเร็วใน log หรือข้อมูลเซนเซอร์