สร้าง features สำหรับชุดฝึกและชุดทดสอบ
ก่อนที่จะ fit โมเดลเชิงเส้น เราจะเพิ่มค่าคงที่ลงใน features เพื่อให้โมเดลมี intercept
นอกจากนี้ เราจะแบ่ง features ออกเป็นชุดฝึก (train) และชุดทดสอบ (test) เพื่อให้สามารถ fit โมเดลด้วยข้อมูลชุดฝึก และประเมินประสิทธิภาพบนข้อมูลชุดทดสอบ การตรวจสอบประสิทธิภาพบนข้อมูลที่โมเดลยังไม่เคยเห็นมาก่อนเป็นสิ่งสำคัญ เพื่อให้แน่ใจว่าโมเดลไม่เกิดการ overfitting หรือการจดจำรูปแบบในข้อมูลฝึกมากเกินไป
สำหรับข้อมูล time series แบบนี้ เราควรใช้ข้อมูลที่เก่าที่สุดเป็นชุดฝึก และข้อมูลที่ใหม่ที่สุดเป็นชุดทดสอบ วิธีนี้จะช่วยให้การประเมินประสิทธิภาพของโมเดลบนข้อมูลล่าสุดสะท้อนการทำนายบนข้อมูลที่ยังไม่เคยเห็นได้อย่างสมจริงมากขึ้น
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Machine Learning สำหรับการเงินด้วย Python
คำแนะนำการฝึกหัด
- นำเข้าไลบรารี
statsmodels.apiโดยกำหนด alias เป็นsm - เพิ่มค่าคงที่ให้กับตัวแปร
featuresโดยใช้ฟังก์ชัน.add_constant()ของ statsmodels - กำหนดค่า
train_sizeให้เท่ากับ 85% ของจำนวน datapoints ทั้งหมด (จำนวนแถว) โดยใช้ property.shape[0]ของfeaturesหรือtargets - แบ่ง
linear_featuresและtargetsออกเป็นชุดฝึกและชุดทดสอบโดยใช้train_sizeและการ indexing ของ Python (เช่น[start:stop])
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Import the statsmodels.api library with the alias sm
___
# Add a constant to the features
linear_features = sm.____(features)
# Create a size for the training set that is 85% of the total number of samples
train_size = int(0.85 * ____)
train_features = linear_features[:train_size]
train_targets = targets[____]
test_features = linear_features[train_size:]
test_targets = targets[train_size:]
print(linear_features.shape, train_features.shape, test_features.shape)