ÎncepețiÎncepe gratuit

Identifică coeficientul optim de penalizare L1

Acum vei ajusta parametrul C pentru regularizarea L1, ca să găsești valoarea care reduce complexitatea modelului păstrând în același timp performanțe bune. Vei rula o buclă for prin valorile posibile ale lui C și vei construi câte o instanță de regresie logistică pentru fiecare, calculând totodată metricile de performanță.

O listă C a fost creată cu valorile posibile. Tabloul l1_metrics a fost construit cu 3 coloane: prima conține valorile lui C, iar următoarele două sunt marcatori de loc pentru numărul de coeficienți nenuli și scorul de tip recall al modelului. Caracteristicile scalate și variabilele țintă au fost încărcate ca train_X, train_Y pentru antrenament și test_X, test_Y pentru testare.

Atât numpy, cât și pandas sunt încărcate ca np și pd, alături de funcția recall_score din sklearn.

Acest exercițiu face parte din cursul

Machine Learning pentru Marketing în Python

Vezi cursul

Instrucțiuni pentru exercițiu

  • Rulează o buclă for peste intervalul de la 0 până la lungimea listei C.
  • Pentru fiecare valoare candidat C, inițializează și antrenează o regresie logistică, apoi prezice abandonul pe datele de testare.
  • Pentru fiecare valoare candidat C, stochează coeficienții nenuli și scorul recall în a doua, respectiv a treia coloană a lui l1_metrics.
  • Creează un DataFrame pandas din l1_metrics cu numele de coloane corespunzătoare.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# 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=___))
Editează și rulează codul