Mengidentifikasi kedalaman pohon optimal
Sekarang Anda akan menyetel parameter max_depth pada decision tree untuk menemukan nilai yang mengurangi overfitting sekaligus tetap mempertahankan metrik kinerja model yang baik. Anda akan menjalankan sebuah for loop melalui beberapa nilai parameter max_depth, memasangkan decision tree untuk masing-masing nilai, lalu menghitung metrik kinerjanya.
Daftar bernama depth_list yang berisi kandidat parameter telah dimuat untuk Anda. Array depth_tuning telah dibuat untuk Anda dengan 2 kolom, dengan kolom pertama diisi kandidat kedalaman, dan kolom berikutnya sebagai penampung skor recall. Selain itu, fitur dan variabel target telah dimuat sebagai train_X, train_Y untuk data latih, serta test_X, test_Y untuk data uji. Kedua pustaka numpy dan pandas telah dimuat masing-masing sebagai np dan pd.
Latihan ini adalah bagian dari kursus
Machine Learning untuk Pemasaran dengan Python
Petunjuk latihan
- Jalankan
forloop pada rentang dari 0 hingga panjang listdepth_list. - Untuk setiap kandidat kedalaman, inisialisasi dan pasangkan classifier decision tree lalu prediksi churn pada data uji.
- Untuk setiap kandidat kedalaman, hitung skor recall menggunakan fungsi
recall_score()dan simpan di kolom keduadepth_tunning. - Buat
pandasDataFrame daridepth_tuningdengan nama kolom yang sesuai.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# Run a for loop over the range of depth list length
for index in ___(0, len(depth_list)):
# Initialize and fit decision tree with the `max_depth` candidate
mytree = DecisionTreeClassifier(___=depth_list[index])
mytree.fit(___, train_Y)
# Predict churn on the testing data
pred_test_Y = mytree.predict(___)
# Calculate the recall score
depth_tuning[index,1] = ___(test_Y, ___)
# Name the columns and print the array as pandas DataFrame
col_names = ['Max_Depth','Recall']
print(pd.DataFrame(depth_tuning, columns=___))