เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

การจัดการกับค่าผิดปกติ

ในแบบฝึกหัดนี้ จะได้ฝึกจัดการกับค่าผิดปกติ (outliers) ซึ่งเป็นจุดข้อมูลที่แตกต่างจากข้อมูลส่วนใหญ่อย่างมีนัยสำคัญ จนต้องประมวลผลแยกออกจากข้อมูล "ปกติ" ทั่วไป จะใช้ผลลัพธ์จากแบบฝึกหัดก่อนหน้า (เปอร์เซ็นต์การเปลี่ยนแปลงตามเวลา) เพื่อตรวจจับค่าผิดปกติเหล่านั้น โดยเริ่มจากการเขียนฟังก์ชันที่แทนที่ค่าผิดปกติด้วยค่ามัธยฐาน (median) ของอนุกรมเวลาทั้งหมด

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

Machine Learning สำหรับข้อมูล Time Series ใน Python

ดูคอร์ส

คำแนะนำการฝึกหัด

  • กำหนดฟังก์ชันที่รับ Series เป็น input แล้วดำเนินการดังนี้:
    • คำนวณค่าสัมบูรณ์ของระยะห่างของแต่ละจุดข้อมูลจากค่าเฉลี่ยของ Series จากนั้นสร้าง boolean mask สำหรับจุดข้อมูลที่ห่างจากค่าเฉลี่ยมากกว่าสามเท่าของส่วนเบี่ยงเบนมาตรฐาน
    • ใช้ boolean mask นี้แทนที่ค่าผิดปกติด้วยค่ามัธยฐานของ Series ทั้งหมด
  • นำฟังก์ชันนี้ไปใช้กับข้อมูล แล้วแสดงผลด้วยโค้ดที่กำหนดให้

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

def replace_outliers(series):
    # Calculate the absolute difference of each timepoint from the series mean
    absolute_differences_from_mean = np.abs(series - np.mean(series))
    
    # Calculate a mask for the differences that are > 3 standard deviations from zero
    this_mask = absolute_differences_from_mean > (np.____(series) * ____)
    
    # Replace these values with the median accross the data
    series[this_mask] = np.____(series)
    return series

# Apply your preprocessing function to the timeseries and plot the results
prices_perc = prices_perc.____
prices_perc.loc["2014":"2015"].plot()
plt.show()
แก้ไขและรันโค้ด