Nalezení optimálního koeficientu L1 penalizace
Teď si vyladíš parametr C pro L1 regularizaci, aby ses dostal/a k hodnotě, která snižuje složitost modelu a zároveň zachovává dobré výkonnostní metriky. Projdeš smyčkou for přes možné hodnoty C, pro každou z nich sestavíš instanci logistické regrese a vypočítáš výkonnostní metriky.
Seznam C s možnými hodnotami je připravený. Pole l1_metrics má 3 sloupce: první obsahuje hodnoty C, další dva slouží jako zástupné místo pro počet nenulových koeficientů a skóre recall modelu. Škálované příznaky a cílové proměnné jsou načteny jako train_X, train_Y pro trénování a test_X, test_Y pro testování.
Knihovny numpy a pandas jsou načteny jako np a pd, stejně tak funkce recall_score z knihovny sklearn.
Toto cvičení je součástí kurzu
Machine Learning for Marketing in Python
Pokyny k cvičení
- Spusť smyčku
forpřes rozsah od 0 do délky seznamuC. - Pro každého kandidáta
Cinicializuj a natrénuj logistickou regresi a proveď predikci churn na testovacích datech. - Pro každého kandidáta
Culož počet nenulových koeficientů a skóre recall do druhého a třetího sloupce polel1_metrics. - Vytvoř z pole
l1_metricsDataFrame knihovnypandass odpovídajícími názvy sloupců.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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=___))