Cross-validation แบบไม่สลับลำดับข้อมูล
ลองรันการ fit โมเดลอีกครั้งโดยใช้ block cross-validation (แบบไม่สลับลำดับข้อมูลทั้งหมด) ในกรณีนี้ จุดข้อมูลที่อยู่ใกล้กันตามเวลาจะถูกเก็บไว้ด้วยกัน คิดว่าผลการพยากรณ์ของโมเดลจะเป็นอย่างไรในแต่ละรอบของ cross-validation?
ออบเจ็กต์โมเดล Linear regression model พร้อมใช้งานอยู่ใน workspace แล้ว รวมถึงอาร์เรย์ X และ y (ข้อมูลสำหรับ training) ก็พร้อมใช้งานเช่นกัน
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Machine Learning สำหรับข้อมูล Time Series ใน Python
คำแนะนำการฝึกหัด
- สร้างออบเจ็กต์ cross-validation ตัวใหม่ โดยใช้ KFold cross-validation แบบ 10 splits และไม่สลับลำดับข้อมูล
- วนซ้ำผ่านออบเจ็กต์นี้เพื่อ fit โมเดลด้วย training indices และสร้างการพยากรณ์โดยใช้ test indices
- แสดงผลการพยากรณ์ในแต่ละรอบของ CV โดยใช้ฟังก์ชันช่วย
visualize_predictions()ที่เตรียมไว้ให้
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Create KFold cross-validation object
from sklearn.model_selection import KFold
cv = ____(n_splits=____, shuffle=____)
# Iterate through CV splits
results = []
for tr, tt in cv.split(X, y):
# Fit the model on training data
model.fit(____)
# Generate predictions on the test data and collect
prediction = model.predict(____)
results.append((prediction, tt))
# Custom function to quickly visualize predictions
visualize_predictions(results)