ปรับค่า n_neighbors ให้เหมาะสม
เมื่อมีข้อมูลที่ปรับสเกลแล้ว เราสามารถลองใช้โมเดล KNN ได้เลย และเพื่อให้ประสิทธิภาพดีที่สุด ควรปรับจูน hyperparameter ของโมเดล สำหรับอัลกอริทึม k-nearest neighbors นั้นมี hyperparameter เพียงตัวเดียวคือ n ซึ่งเป็นจำนวนเพื่อนบ้าน โดยกำหนดค่านี้ตอนสร้างโมเดลด้วย KNeighborsRegressor ผ่านอาร์กิวเมนต์ n_neighbors
เราจะทดลองช่วงค่าต่าง ๆ เพื่อหาค่าที่ให้ประสิทธิภาพดีที่สุด โดยทั่วไปจะเริ่มที่ 2 เพื่อนบ้าน แล้วเพิ่มขึ้นจนกว่าค่าเมตริกจะเริ่มลดลง เราจะใช้ค่า R\(^2\) จากเมธอด .score() บนชุดทดสอบ (scaled_test_features และ test_targets) เพื่อปรับค่า n ที่เหมาะสม
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Machine Learning สำหรับการเงินด้วย Python
คำแนะนำการฝึกหัด
- วนลูปค่า
nตั้งแต่ 2 ถึง 12 แล้วกำหนดเป็นn_neighborsในโมเดลknn - ฝึกโมเดลด้วยข้อมูลชุดฝึก (
scaled_train_featuresและtrain_targets) - แสดงค่า R\(^2\) โดยใช้เมธอด
.score()ของโมเดลknnสำหรับทั้งชุดฝึกและชุดทดสอบ และสังเกตค่าคะแนนที่ดีที่สุดบนชุดทดสอบ
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
from sklearn.neighbors import KNeighborsRegressor
for n in range(____):
# Create and fit the KNN model
knn = KNeighborsRegressor(n_neighbors=____)
# Fit the model to the training data
knn.fit(____, ____)
# Print number of neighbors and the score to find the best value of n
print("n_neighbors =", n)
print('train, test scores')
print(knn.score(scaled_train_features, train_targets))
print(knn.score(____, ____))
print() # prints a blank line