การแปลงข้อมูลดิบ
ในบทที่แล้ว คุณได้คำนวณค่าเฉลี่ยแบบ rolling ไปแล้ว ในแบบฝึกหัดนี้ จะได้กำหนดฟังก์ชันที่คำนวณการเปลี่ยนแปลงเป็นเปอร์เซ็นต์ของจุดข้อมูลล่าสุดเทียบกับค่าเฉลี่ยของข้อมูลก่อนหน้าในช่วง window ฟังก์ชันนี้จะช่วยคำนวณการเปลี่ยนแปลงเป็นเปอร์เซ็นต์บน rolling window ได้
วิธีนี้ให้ข้อมูลอนุกรมเวลาที่มีความเสถียรมากขึ้น ซึ่งมักเป็นประโยชน์ในการเรียนรู้ของเครื่อง
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Machine Learning สำหรับข้อมูล Time Series ใน Python
คำแนะนำการฝึกหัด
- กำหนดฟังก์ชัน
percent_changeที่รับอนุกรมเวลาเป็น input แล้วดำเนินการดังนี้:- ดึงค่าทั้งหมดยกเว้นค่าสุดท้ายของ series (กำหนดให้
previous_values) และเฉพาะค่าสุดท้ายของอนุกรมเวลา (กำหนดให้last_value) - คำนวณความแตกต่างเป็นเปอร์เซ็นต์ระหว่างค่าสุดท้ายกับค่าเฉลี่ยของค่าก่อนหน้า
- ดึงค่าทั้งหมดยกเว้นค่าสุดท้ายของ series (กำหนดให้
- ใช้ rolling window ขนาด 20 เพื่อ apply ฟังก์ชันนี้กับ
pricesแล้ววิซัวไลซ์ผลลัพธ์โดยใช้โค้ดที่กำหนดให้
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Your custom function
def percent_change(series):
# Collect all *but* the last value of this window, then the final value
previous_values = series[:____]
last_value = series[-1]
# Calculate the % difference between the last value and the mean of earlier values
percent_change = (____ - np.mean(previous_values)) / np.mean(previous_values)
return percent_change
# Apply your custom function and plot
prices_perc = prices.rolling(20).____
prices_perc.loc["2014":"2015"].plot()
plt.show()