n_neighbors'ı optimize et
Artık verileri ölçeklendirdiğimize göre, bir KNN modeli deneyebiliriz. Performansı en üst düzeye çıkarmak için modelimizin hiperparametrelerini ayarlamalıyız. k-en yakın komşu algoritması için yalnızca bir hiperparametremiz var: n, yani komşu sayısı. Bu hiperparametreyi KNeighborsRegressor ile modeli oluştururken ayarlarız. Komşu sayısı için argüman n_neighbors'tır.
En iyi performans veren ayarı yakalayacak bir değer aralığını denemek istiyoruz. Genelde 2 komşuyla başlar ve puanlama metriğimiz düşmeye başlayana kadar artırırız. Burada n'i optimize etmek için test kümesi (scaled_test_features ve test_targets) üzerinde .score() metodundan gelen R\(^2\) değerini kullanacağız. En iyi n değerini belirlemek için test kümesi skorlarını kullanacağız.
Bu egzersiz, kursun bir parçasıdır
Python ile Finans için Machine Learning
Egzersiz talimatları
niçin 2'den 12'ye kadar olan değerlere döngü kur ve bunuknnmodelinden_neighborsolarak ayarla.- Modeli eğitim verilerine (
scaled_train_featuresvetrain_targets) fit et. - Eğitim ve test kümeleri için
knnmodelinin.score()metodunu kullanarak R\(^2\) değerlerini yazdır ve test kümesindeki en iyi skoru not et.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
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