Menyiapkan parameter GridSearch
Hyperparameter adalah parameter di dalam sebuah fungsi. Misalnya, max_depth atau min_samples_leaf adalah hyperparameter dari fungsi DecisionTreeClassifier(). Hyperparameter tuning adalah proses menguji berbagai nilai hyperparameter untuk menemukan yang paling optimal: yang memberikan prediksi terbaik sesuai tujuan Anda. Di sklearn, Anda dapat menggunakan GridSearch untuk menguji berbagai kombinasi hyperparameter. Lebih baik lagi, Anda dapat menggunakan GridSearchCV() untuk menguji berbagai kombinasi dan menjalankan cross-validation terhadapnya dalam satu fungsi!
Dalam latihan ini, Anda akan menyiapkan berbagai nilai yang ingin Anda uji untuk max_depth dan min_samples_leaf. Anda kemudian akan menempatkannya dalam sebuah dictionary, karena itulah yang diperlukan untuk GridSearchCV():
- kunci dictionary adalah nama hyperparameter
- nilai dictionary adalah atribut (nilai hyperparameter) yang ingin Anda uji
Alih-alih menuliskan semua nilai secara manual, Anda akan menggunakan fungsi range(), yang memungkinkan kita menghasilkan nilai secara bertahap. Sebagai contoh, range(1, 10, 2) akan menghasilkan daftar berisi nilai dari 1 termasuk hingga 10 tidak termasuk, dengan kenaikan 2. Jadi hasil akhirnya adalah [1, 3, 5, 7, 9].
Latihan ini adalah bagian dari kursus
Analitik SDM: Memprediksi Perputaran Karyawan dengan Python
Petunjuk latihan
- Mengikuti format pada contoh di atas, hasilkan nilai untuk kedalaman maksimum dari 5 hingga 20 dengan kenaikan 1
- Lakukan hal yang sama untuk ukuran sampel minimum dengan nilai dari 50 hingga 450 dengan kenaikan 50
- Buat dictionary dengan menetapkan nilai
max_depthdanmin_samples_leafyang akan dicoba, masing-masing menggunakan variabel yang baru saja Anda buat
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# Generate values for maximum depth
depth = [i for i in ____(5,21,1)]
# Generate values for minimum sample size
samples = [i for i in range(____,500,____)]
# Create the dictionary with parameters to be checked
parameters = dict(max_depth=depth, min_samples_leaf=____)