14
อัลกอริทึมง่าย ๆ สำหรับการตรวจหาค่าผิดปกติทางออนไลน์ของอนุกรมเวลาทั่วไป
ฉันทำงานกับอนุกรมเวลาจำนวนมาก อนุกรมเวลาเหล่านี้โดยทั่วไปแล้วการวัดเครือข่ายมาทุก ๆ 10 นาทีและบางส่วนนั้นเป็นระยะ (เช่นแบนด์วิดท์) ในขณะที่บางส่วนไม่ได้เป็น (เช่นปริมาณการรับส่งข้อมูลเส้นทาง) ฉันต้องการอัลกอริทึมง่าย ๆ สำหรับการทำแบบออนไลน์ โดยทั่วไปฉันต้องการเก็บไว้ในหน่วยความจำ (หรือบนดิสก์) ข้อมูลประวัติทั้งหมดสำหรับแต่ละชุดเวลาและฉันต้องการตรวจสอบค่าผิดปกติใด ๆ ในสถานการณ์สด (ทุกครั้งที่มีการสุ่มตัวอย่างใหม่) วิธีที่ดีที่สุดในการบรรลุผลลัพธ์เหล่านี้คืออะไร? ฉันกำลังใช้ค่าเฉลี่ยเคลื่อนที่เพื่อลบเสียงรบกวน แต่แล้วจะทำอย่างไรต่อไป สิ่งที่เรียบง่ายเช่นค่าเบี่ยงเบนมาตรฐาน, บ้า, ... กับชุดข้อมูลทั้งหมดทำงานได้ไม่ดี (ฉันไม่สามารถคิดว่าอนุกรมเวลาคงที่) และฉันต้องการบางสิ่งที่ "แม่นยำ" ยิ่งกว่าเดิมกล่องดำแบบ: double outlier_detection (double * vector, double value); โดยที่ vector คืออาร์เรย์ของ double ที่มีข้อมูลประวัติและค่าส่งคืนคือคะแนนความผิดปกติสำหรับ "value" ตัวอย่างใหม่