Menggabungkan semuanya
Anda baru saja bergabung dengan sebuah startup deteksi aritmia dan ingin melatih model pada himpunan data aritmia arrh. Anda melihat bahwa random forest sering memenangkan cukup banyak kompetisi Kaggle, jadi Anda ingin mencobanya dengan kedalaman maksimum 2, 5, atau 10 menggunakan grid search. Anda juga mengamati bahwa dimensi himpunan data cukup tinggi sehingga Anda ingin mempertimbangkan dampak metode seleksi fitur.
Untuk memastikan Anda tidak overfit secara tidak sengaja, Anda sudah memisahkan data. Anda akan menggunakan X_train dan y_train untuk grid search, serta X_test dan y_test untuk memutuskan apakah seleksi fitur membantu. Keempat lipatan himpunan data sudah dimuat sebelumnya di lingkungan Anda. Anda juga memiliki akses ke GridSearchCV(), train_test_split(), SelectKBest(), chi2() dan RandomForestClassifier sebagai rfc.
Latihan ini adalah bagian dari kursus
Merancang Alur Kerja Machine Learning di Python
Petunjuk latihan
- Gunakan grid search untuk mencoba kedalaman maksimum 2, 5, dan 10 untuk
RandomForestClassifierdan simpan pengaturan parameter dengan kinerja terbaik. - Sekarang latih ulang estimator menggunakan jumlah estimator berkinerja terbaik sebagaimana ditentukan di atas.
- Terapkan pemilih fitur
SelectKBestdengan fungsi penilaianchi2dan latih ulang classifier.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# Find the best value for max_depth among values 2, 5 and 10
grid_search = GridSearchCV(
____(random_state=1), param_grid=____)
best_value = grid_search.____(
____, ____).best_params_['max_depth']
# Using the best value from above, fit a random forest
clf = rfc(
random_state=1, ____=best_value).____(X_train, y_train)
# Apply SelectKBest with chi2 and pick top 100 features
vt = SelectKBest(____, k=____).____(X_train, y_train)
# Create a new dataset only containing the selected features
X_train_reduced = ____.transform(____)