Mulai sekarangMulai gratis

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

Lihat Kursus

Instruksi latihan

  • Lakukan perulangan untuk nilai 2 sampai 12 untuk n dan tetapkan ini sebagai n_neighbors pada model knn.
  • Latih model pada data latih (scaled_train_features dan train_targets).
  • Cetak nilai R\(^2\) menggunakan metode .score() dari model knn untuk 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
Edit dan Jalankan Kode