Identifikasi koefisien penalti L1 yang optimal
Sekarang Anda akan menyetel parameter C untuk regularisasi L1 guna menemukan nilai yang mengurangi kompleksitas model sekaligus tetap mempertahankan metrik kinerja model yang baik. Anda akan menjalankan loop for melalui nilai-nilai C yang memungkinkan dan membangun instance logistic regression pada masing-masing nilai tersebut, serta menghitung metrik kinerja.
Sebuah list C telah dibuat dengan nilai-nilai yang memungkinkan. Array l1_metrics telah dibangun dengan 3 kolom, kolom pertama berisi nilai C, dan dua kolom berikutnya menjadi placeholder untuk jumlah koefisien non-zero dan skor recall model. Fitur terstandardisasi dan variabel target telah dimuat sebagai train_X, train_Y untuk pelatihan, dan test_X, test_Y untuk pengujian.
numpy dan pandas telah dimuat sebagai np dan pd, serta fungsi recall_score dari sklearn.
Latihan ini adalah bagian dari kursus
Machine Learning untuk Pemasaran dengan Python
Petunjuk latihan
- Jalankan loop
forpada range dari 0 hingga panjang listC. - Untuk setiap kandidat
C, inisialisasi dan latih Logistic Regression lalu prediksi churn pada data uji. - Untuk setiap kandidat
C, simpan jumlah koefisien non-zero dan skor recall pada kolom kedua dan ketigal1_metrics. - Buat
pandasDataFrame daril1_metricsdengan nama kolom yang sesuai.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# Run a for loop over the range of C list length
for index in ___(0, len(C)):
# Initialize and fit Logistic Regression with the C candidate
logreg = ___(penalty='l1', C=C[___], solver='liblinear')
logreg.fit(___, train_Y)
# Predict churn on the testing data
pred_test_Y = logreg.___(test_X)
# Create non-zero count and recall score columns
l1_metrics[index,1] = np.___(logreg.coef_)
l1_metrics[index,2] = recall_score(___, pred_test_Y)
# Name the columns and print the array as pandas DataFrame
col_names = ['C','Non-Zero Coeffs','Recall']
print(pd.DataFrame(l1_metrics, columns=___))