Zacznij terazZacznij za darmo

Wyznaczanie optymalnego współczynnika kary L1

Teraz dostroisz parametr C dla regularyzacji L1, aby znaleźć wartość, która zmniejsza złożoność modelu przy jednoczesnym zachowaniu dobrych metryk wydajności. Uruchomisz pętlę for po możliwych wartościach C i dla każdej z nich zbudujesz instancję regresji logistycznej oraz obliczysz metryki wydajności.

Lista C zawierająca możliwe wartości została już utworzona. Tablica l1_metrics ma 3 kolumny: pierwsza przechowuje wartości C, a dwie kolejne są miejscami na liczbę niezerowych współczynników oraz wartość recall modelu. Przeskalowane cechy i zmienne docelowe zostały wczytane jako train_X, train_Y do trenowania oraz test_X, test_Y do testowania.

Biblioteki numpy i pandas są dostępne jako np i pd, a funkcja recall_score została zaimportowana z sklearn.

To ćwiczenie jest częścią kursu

Uczenie maszynowe w marketingu w Pythonie

Zobacz kurs

Instrukcje do ćwiczenia

  • Uruchom pętlę for po zakresie od 0 do długości listy C.
  • Dla każdego kandydata C zainicjalizuj i dopasuj regresję logistyczną, a następnie przewidź rezygnację klientów na danych testowych.
  • Dla każdego kandydata C zapisz liczbę niezerowych współczynników oraz wartość recall odpowiednio w drugiej i trzeciej kolumnie tablicy l1_metrics.
  • Utwórz ramkę danych pandas z tablicy l1_metrics, używając odpowiednich nazw kolumn.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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=___))
Edytuj i uruchom kod