Optimalkan n_neighbors
Sekarang setelah kita memiliki data yang telah diskalakan, kita dapat mencoba menggunakan model KNN. Untuk memaksimalkan kinerja, kita perlu menyetel hiperparameter model. Untuk algoritma k-nearest neighbors, kita hanya memiliki satu hiperparameter: n, yaitu jumlah tetangga. Kita menetapkan hiperparameter ini saat membuat model dengan KNeighborsRegressor. Argumen untuk jumlah tetangga adalah n_neighbors.
Kita ingin mencoba rentang nilai yang melewati pengaturan dengan kinerja terbaik. Biasanya kita akan mulai dengan 2 tetangga, lalu meningkatkannya sampai metrik penilaian mulai menurun. Kita akan menggunakan nilai R\(^2\) dari metode .score() pada himpunan uji (scaled_test_features dan test_targets) untuk mengoptimalkan n di sini. Kita akan menggunakan skor himpunan uji untuk menentukan n terbaik.
Latihan ini merupakan bagian dari kursus
Machine Learning untuk Keuangan dengan Python
Instruksi latihan
- Lakukan perulangan untuk nilai 2 sampai 12 untuk
ndan tetapkan ini sebagain_neighborspada modelknn. - Latih model pada data latih (
scaled_train_featuresdantrain_targets). - Cetak nilai R\(^2\) menggunakan metode
.score()dari modelknnuntuk himpunan latih dan uji, lalu catat skor terbaik pada himpunan uji.
Latihan interaktif langsung praktik
Cobalah latihan ini dengan melengkapi kode contoh ini.
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