Začněte nyníZačněte zdarma

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

Zobrazit kurz

Pokyny k cvičení

  • Spusť smyčku for přes rozsah od 0 do délky seznamu C.
  • Pro každého kandidáta C inicializuj a natrénuj logistickou regresi a proveď predikci churn na testovacích datech.
  • Pro každého kandidáta C ulož počet nenulových koeficientů a skóre recall do druhého a třetího sloupce pole l1_metrics.
  • Vytvoř z pole l1_metrics DataFrame knihovny pandas s 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=___))
Upravit a spustit kód