ค้นหาค่าผิดปกติด้วย z-score
การแจกแจงแบบปกติ (normal distribution) พบได้ทั่วไปในธรรมชาติและเป็นการแจกแจงที่ใช้บ่อยที่สุด นั่นจึงทำให้วิธี z-score เป็นหนึ่งในวิธีที่รวดเร็วที่สุดในการตรวจจับค่าผิดปกติ
จำกฎเกณฑ์เบื้องต้นจากวิดีโอได้ไหม? หากค่าตัวอย่างใดห่างจากค่าเฉลี่ยมากกว่าสามส่วนเบี่ยงเบนมาตรฐาน ค่านั้นถือว่าเป็นค่าสุดขีด
อย่างไรก็ตาม ควรใช้วิธี z-score ด้วยความระมัดระวัง วิธีนี้เหมาะสมก็ต่อเมื่อมั่นใจว่าข้อมูลมาจากการแจกแจงแบบปกติเท่านั้น มิฉะนั้นผลลัพธ์ที่ได้อาจทำให้เข้าใจผิดได้
การแจกแจงของ prices ถูกโหลดไว้ให้แล้ว
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การตรวจจับความผิดปกติใน Python
คำแนะนำการฝึกหัด
- นำเข้าฟังก์ชัน
zscoreจากโมดูลที่เกี่ยวข้องในscipy - คำนวณ z-score ของ
pricesแล้วเก็บผลไว้ในscores - สร้าง boolean mask ชื่อ
is_over_3เพื่อตรวจสอบว่าค่าสัมบูรณ์ของscoresมากกว่า 3 หรือไม่ - ใช้ mask นั้นกรองค่าผิดปกติออกจาก
prices
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Import the zscores function
from scipy.____ import ____
# Find the zscores of prices
scores = ____(____)
# Check if the absolute values of scores are over 3
is_over_3 = ____
# Use the mask to subset prices
outliers = ____[____]
print(len(outliers))