การสร้างฟีเจอร์แบบเลื่อนเวลา
ในการเรียนรู้ของเครื่องสำหรับอนุกรมเวลา มักใช้ข้อมูลจากช่วงเวลาก่อนหน้าเพื่อทำนายค่าในช่วงเวลาถัดไป
ในแบบฝึกหัดนี้ จะได้ "เลื่อน" ข้อมูลดิบแล้วนำผลลัพธ์มาแสดงเป็นภาพ โดยใช้อนุกรมเวลา percent change ที่คำนวณไว้ในบทก่อนหน้า คราวนี้ใช้ window ที่ สั้นมาก การใช้ window สั้นมีความสำคัญ เพราะในสถานการณ์จริง เป้าหมายคือการทำนายความผันผวนรายวันของอนุกรมเวลา ไม่ใช่การเปลี่ยนแปลงในช่วงเวลาที่ยาวกว่า
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Machine Learning สำหรับข้อมูล Time Series ใน Python
คำแนะนำการฝึกหัด
- ใช้ dictionary comprehension เพื่อสร้างเวอร์ชันที่เลื่อนเวลาหลายรูปแบบของ
prices_percโดยอิงจาก lag ที่กำหนดไว้ในshifts - แปลงผลลัพธ์ให้เป็น DataFrame
- ใช้โค้ดที่เตรียมไว้เพื่อแสดงผลลัพธ์เป็นภาพ
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# These are the "time lags"
shifts = np.arange(1, 11).astype(int)
# Use a dictionary comprehension to create name: value pairs, one pair per shift
shifted_data = {"lag_{}_day".format(day_shift): prices_perc.____(____) for day_shift in shifts}
# Convert into a DataFrame for subsequent use
prices_perc_shifted = ____(shifted_data)
# Plot the first 100 samples of each
ax = prices_perc_shifted.iloc[:100].plot(cmap=plt.cm.viridis)
prices_perc.iloc[:100].plot(color='r', lw=2)
ax.legend(loc='best')
plt.show()