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

สร้าง 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)
แก้ไขและรันโค้ด