ปรับแต่ง window size
ลองตรวจสอบด้วยตัวเองว่า window size ที่เหมาะสมที่สุดสำหรับชุดข้อมูล arrhythmia คือ 50 ชุดข้อมูลที่ให้มาอยู่ในรูป pandas DataFrame ชื่อ arrh และต้องการใช้ข้อมูลย่อยจนถึงเวลา t_now ข้อมูลทดสอบพร้อมใช้งานในชื่อ X_test และ y_test โดยจะทดลอง window size หลายขนาดตั้งแต่ 10 ถึง 100 แล้ว fit naive Bayes classifier กับแต่ละ window ประเมิน F1 score บนข้อมูลทดสอบ และเลือก window size ที่ให้ผลดีที่สุด นอกจากนี้ยังมี numpy ในชื่อ np และฟังก์ชัน f1_score() ถูก import มาแล้ว สุดท้ายได้สร้าง list ว่างชื่อ accuracies ไว้สำหรับเก็บค่าความแม่นยำของแต่ละ window
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การออกแบบ Machine Learning Workflows ด้วย Python
คำแนะนำการฝึกหัด
- กำหนด index ของ sliding window ขนาด
w_sizeที่สิ้นสุดที่t_nowโดยใช้เมธอด.loc() - สร้าง
Xจาก sliding window โดยลบคอลัมน์classออก แล้วเก็บคอลัมน์นั้นไว้ในชื่อy - Fit naive Bayes classifier กับ
Xและyจากนั้นใช้โมเดลนั้น predict label ของข้อมูลทดสอบX_test - คำนวณ F1 score ของการทำนายสำหรับแต่ละ window size แล้วหา window size ที่ให้ผลดีที่สุด
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Loop over window sizes
for w_size in wrange:
# Define sliding window
sliding = arrh.____[____:t_now]
# Extract X and y from the sliding window
X, y = sliding.____('class', ____), sliding[____]
# Fit the classifier and store the F1 score
preds = GaussianNB().fit(____, ____).____(X_test)
accuracies.append(____(____, ____))
# Estimate the best performing window size
optimal_window = ____[np.____(accuracies)]