ประเมินประสิทธิภาพของ KNN
เราเพิ่งสังเกตเห็นบางสิ่งจากคะแนน KNN ของเรา กล่าวคือ คะแนน training เริ่มต้นสูงแล้วลดลงเมื่อค่า n เพิ่มขึ้น ซึ่งเป็นเรื่องปกติ ส่วนประสิทธิภาพบน test set นั้นสูงสุดที่ค่า 5 ดังนั้นเราจะใช้ค่านี้เป็นการตั้งค่าสำหรับโมเดล KNN สุดท้าย
เช่นเดียวกับที่เคยทำมาแล้วหลายครั้ง เราจะตรวจสอบประสิทธิภาพด้วยการมองเห็น วิธีนี้ช่วยให้เห็นว่าโมเดลพยากรณ์ได้ดีแค่ไหนในแต่ละช่วงของค่าจริง โดยจะดึงค่าพยากรณ์จากโมเดล knn ด้วยเมธอด .predict() บน scaled features แล้วจึงใช้ plt.scatter() ของ matplotlib เพื่อสร้าง scatter plot เปรียบเทียบค่าจริงกับค่าที่พยากรณ์ได้
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Machine Learning สำหรับการเงินด้วย Python
คำแนะนำการฝึกหัด
- กำหนด
n_neighborsในKNeighborsRegressorให้เป็นค่าที่ให้ผลดีที่สุดคือ 5 (ซึ่งค้นพบในแบบฝึกหัดก่อนหน้า) - ดึงค่าพยากรณ์จากโมเดล
knnโดยใช้scaled_train_featuresและscaled_test_features - สร้าง scatter plot ของ
test_targetsเทียบกับtest_predictionsและตั้งชื่อป้ายกำกับว่าtest
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Create the model with the best-performing n_neighbors of 5
knn = KNeighborsRegressor(____)
# Fit the model
knn.fit(scaled_train_features, train_targets)
# Get predictions for train and test sets
train_predictions = ____
test_predictions = ____
# Plot the actual vs predicted values
plt.scatter(train_predictions, train_targets, label='train')
plt.scatter(____)
plt.legend()
plt.show()