LoslegenKostenlos loslegen

Optimalen L1-Strafkoeffizienten ermitteln

Jetzt stimmst du den Parameter C für die L1-Regularisierung ab, um den Wert zu finden, der die Modellkomplexität reduziert und zugleich gute Leistungsmetriken beibehält. Du lässt eine for-Schleife über mögliche C-Werte laufen, baust jeweils eine Instanz der logistischen Regression und berechnest die Metriken.

Eine Liste C mit möglichen Werten wurde erstellt. Das Array l1_metrics wurde mit 3 Spalten aufgebaut: Die erste enthält die C-Werte, die nächsten beiden sind Platzhalter für die Anzahl der ungleich Null liegenden Koeffizienten sowie den Recall-Score des Modells. Die skalierten Merkmale und Zielvariablen wurden als train_X, train_Y für das Training und test_X, test_Y für das Testen geladen.

Sowohl numpy als np als auch pandas als pd sind geladen, ebenso die Funktion recall_score aus sklearn.

Diese Übung ist Teil des Kurses

Machine Learning für Marketing mit Python

Kurs anzeigen

Anleitung zur Übung

  • Lass eine for-Schleife über den Bereich von 0 bis zur Länge der Liste C laufen.
  • Initialisiere und fitte für jeden C-Kandidaten eine Logistische Regression und sage Churn auf den Testdaten voraus.
  • Speichere für jeden C-Kandidaten die ungleich Null liegenden Koeffizienten und den Recall-Score in der zweiten und dritten Spalte von l1_metrics.
  • Erstelle aus l1_metrics ein pandas DataFrame mit den passenden Spaltennamen.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

# 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=___))
Code bearbeiten und ausführen