โมเดลของเรา Underfit อยู่หรือเปล่า?
คุณกำลังสร้างโมเดล Random Forest เพื่อทำนายว่าจะชนะเกม Tic-Tac-Toe ในอนาคตหรือไม่ โดยใช้ชุดข้อมูล tic_tac_toe ซึ่งได้แบ่งข้อมูลออกเป็นชุดฝึก (X_train, y_train) และชุดทดสอบ (X_test, y_test) แล้ว
แผนคือสร้างโมเดล Random Forest หลายตัวที่มีจำนวนต้นไม้ต่างกัน ได้แก่ 1, 2, 3, 4, 5, 10, 20 และ 50 ต้น ยิ่งใช้ต้นไม้มากขึ้น โมเดลก็จะใช้เวลาประมวลผลนานขึ้น แต่ถ้าใช้น้อยเกินไปก็อาจเกิดปัญหา Underfitting ได้ จึงได้สร้าง for loop ขึ้นมาเพื่อทดสอบโมเดลที่จำนวนต้นไม้แต่ละระดับ
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การตรวจสอบความถูกต้องของโมเดลใน Python
คำแนะนำการฝึกหัด
- ในแต่ละรอบของ loop ให้ทำนายค่าสำหรับทั้งชุดข้อมูล
X_trainและX_test - ในแต่ละรอบของ loop ให้ append ค่า
accuracy_score()ของชุดข้อมูลy_trainและค่าที่ทำนายที่สอดคล้องกันเข้าไปในtrain_scores - ในแต่ละรอบของ loop ให้ append ค่า
accuracy_score()ของชุดข้อมูลy_testและค่าที่ทำนายที่สอดคล้องกันเข้าไปในtest_scores - แสดงผลคะแนนชุดฝึกและชุดทดสอบโดยใช้คำสั่ง print ที่เตรียมไว้
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
from sklearn.metrics import accuracy_score
test_scores, train_scores = [], []
for i in [1, 2, 3, 4, 5, 10, 20, 50]:
rfc = RandomForestClassifier(n_estimators=i, random_state=1111)
rfc.fit(X_train, y_train)
# Create predictions for the X_train and X_test datasets.
train_predictions = rfc.predict(____)
test_predictions = rfc.predict(____)
# Append the accuracy score for the test and train predictions.
train_scores.append(round(____(____, ____), 2))
test_scores.append(round(____(____, ____), 2))
# Print the train and test scores.
print("The training scores were: {}".format(____))
print("The testing scores were: {}".format(____))