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

Cross-validation แบบ Shuffling

อย่างที่ทราบกันดี cross-validation คือกระบวนการแบ่งข้อมูลออกเป็นชุด training และชุด test หลายครั้ง โดยในแต่ละครั้งจะเลือกชุดข้อมูลที่ แตกต่างกัน ในแบบฝึกหัดนี้ จะทำ ShuffleSplit cross-validation แบบดั้งเดิมกับข้อมูลมูลค่าบริษัทที่ใช้ก่อนหน้านี้ ต่อจากนี้จะได้เรียนรู้ว่าต้องปรับอะไรบ้างเมื่อนำไปใช้กับข้อมูล time series ข้อมูลที่ใช้คือราคาหุ้นย้อนหลังของบริษัทขนาดใหญ่หลายแห่ง

ในพื้นที่ทำงานมีออบเจกต์ Linear regression (model) พร้อมใช้งาน รวมถึงฟังก์ชัน r2_score() สำหรับให้คะแนนโมเดล ข้อมูลถูกเก็บไว้ในอาร์เรย์ X และ y และมีฟังก์ชันช่วย (visualize_predictions()) ไว้สำหรับแสดงผลลัพธ์

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

Machine Learning สำหรับข้อมูล Time Series ใน Python

ดูคอร์ส

คำแนะนำการฝึกหัด

  • สร้างออบเจกต์ ShuffleSplit cross-validation โดยกำหนด 10 splits
  • วนซ้ำผ่าน CV splits โดยใช้ออบเจกต์นี้ ในแต่ละรอบให้:
    • ฝึกโมเดลโดยใช้ training indices
    • สร้างค่าพยากรณ์โดยใช้ test indices จากนั้นให้คะแนนโมเดล (\(R^2\)) จากค่าพยากรณ์ที่ได้ แล้วเก็บผลลัพธ์ไว้

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

# Import ShuffleSplit and create the cross-validation object
from sklearn.model_selection import ShuffleSplit
cv = ____(____, random_state=1)

# Iterate through CV splits
results = []
for tr, tt in cv.____(X, y):
    # Fit the model on training data
    ____(X[tr], y[tr])
    
    # Generate predictions on the test data, score the predictions, and collect
    prediction = ____(X[tt])
    score = r2_score(____, ____)
    results.append((prediction, score, tt))

# Custom function to quickly visualize predictions
visualize_predictions(results)
แก้ไขและรันโค้ด