คำนวณปริมาณโดยประมาณสำหรับจำนวนเต็มโดยใช้ช่วงเวลา?


20

อพยพมาจากmath.stackexchange

ฉันกำลังประมวลผลจำนวนเต็มจำนวนมากและกำลังพิจารณาการติดตามสักครู่เพื่อให้สามารถคำนวณเปอร์เซ็นต์ไทล์สำหรับสตรีมได้โดยไม่ต้องจัดเก็บข้อมูลมากนัก วิธีที่ง่ายที่สุดในการคำนวณหาเปอร์เซ็นต์ไทล์คืออะไร มีวิธีที่ดีกว่าที่เกี่ยวข้องกับการจัดเก็บข้อมูลจำนวนเล็กน้อยเท่านั้นหรือไม่?


2
คุณรู้อะไรเกี่ยวกับคุณสมบัติการกระจายตัวของกระแสของคุณหรือไม่ ตัวอย่างเช่นพวกเขาพูดว่าเป็นบวกหรือไม่ ล้อมรอบ? รายละเอียดอื่น ๆ ที่คุณสามารถให้จะเป็นประโยชน์ ช่วงเวลาค่อนข้างง่ายในการคำนวณและจัดเก็บสำหรับสตรีม นอกจากนี้ยังมีคำถามเกี่ยวกับก่อนหน้านี้ที่นี่โดยตรงประมาณquantilesจากกระแสซึ่งเสียงเหมือนสิ่งที่คุณจริงๆมีความพยายามที่จะทำ คุณอาจค้นหาและมองผ่านสิ่งเหล่านั้น
พระคาร์ดินัล

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

คุณเห็นคำถามนี้หรือไม่
พระคาร์ดินัล

คำตอบ:


15

คุณไม่ได้ระบุสิ่งนี้อย่างชัดเจน แต่จากคำอธิบายปัญหาของคุณดูเหมือนว่าคุณจะอยู่หลังชุดของควอไทล์ (เช่น 50, 90, 95 และ 99)

หากเป็นเช่นนั้นฉันได้ประสบความสำเร็จอย่างมากกับวิธีการที่อธิบายไว้ใน"การคำนวณที่มีประสิทธิภาพของการให้น้ำหนักเชิงปริมาณมากกว่าการสตรีมข้อมูล"โดย Cormode et al มันเป็นอัลกอริทึมที่รวดเร็วซึ่งต้องการหน่วยความจำน้อยและง่ายต่อการใช้งาน

วิธีการนี้ใช้อัลกอริธึมก่อนหน้านี้โดย Greenwald และ Khanna ที่เก็บรักษาตัวอย่างเล็ก ๆ ของสตรีมอินพุตพร้อมกับขอบเขตบนและล่างตามลำดับของค่าในตัวอย่าง มันต้องการพื้นที่มากกว่าการรวบรวมสักครู่ แต่จะดีกว่าที่จะอธิบายส่วนหางที่น่าสนใจของการกระจายอย่างแม่นยำ


1
εnn

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.