การสร้างลำดับข้อมูล
ก่อนจะนำข้อมูลลำดับไปฝึกโครงข่ายประสาทเทียม จำเป็นต้องผ่านการเตรียมข้อมูลก่อน โดยจะแบ่งข้อมูลออกเป็นคู่ input-target ซึ่ง input คือจุดข้อมูลที่ต่อเนื่องกันหลายจุด และ target คือจุดข้อมูลถัดไป
งานของคุณคือกำหนดฟังก์ชันชื่อ create_sequences() เพื่อทำหน้าที่นี้ โดยรับ input เป็น DataFrame ชื่อ df และ seq_length ซึ่งเป็นความยาวของ input แล้ว return NumPy array สองชุด ได้แก่ ชุดที่เก็บลำดับ input และอีกชุดที่เก็บ target ที่สอดคล้องกัน
สำหรับข้อมูลอ้างอิง DataFrame df มีรูปแบบดังนี้:
timestamp consumption
0 2011-01-01 00:15:00 -0.704319
... ... ...
140255 2015-01-01 00:00:00 -0.095751
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Deep Learning ระดับกลางด้วย PyTorch
คำแนะนำการฝึกหัด
- วนซ้ำในช่วงของจำนวนจุดข้อมูลทั้งหมดลบด้วยความยาวของลำดับ input
- กำหนด input
xเป็น slice ของdfตั้งแต่แถวที่iถึงแถวที่i + seq_lengthและคอลัมน์ที่อินเดกซ์1 - กำหนด target
yเป็น slice ของdfที่แถวอินเดกซ์i + seq_lengthและคอลัมน์ที่อินเดกซ์1
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
import numpy as np
def create_sequences(df, seq_length):
xs, ys = [], []
# Iterate over data indices
for i in range(____):
# Define inputs
x = df.iloc[____, ____]
# Define target
y = df.iloc[____, ____]
xs.append(x)
ys.append(y)
return np.array(xs), np.array(ys)