ПочатиПочніть безкоштовно

Визначте оптимальний коефіцієнт штрафу L1

Тепер ви налаштуєте параметр C для регуляризації L1, щоб знайти значення, яке зменшує складність моделі й водночас зберігає хороші показники якості. Ви запустите цикл for по можливих значеннях C, для кожного створите екземпляр логістичної регресії та обчислите метрики якості.

Створено список C з можливими значеннями. Масив l1_metrics зібрано з 3 стовпців: перший містить значення C, наступні два — заповнювачі для кількості ненульових коефіцієнтів і значення recall моделі. Масштабовані ознаки та цільові змінні завантажено як train_X, train_Y для тренування та test_X, test_Y для тестування.

Бібліотеки numpy і pandas завантажено як np і pd, а також функцію recall_score із sklearn.

Ця вправа є частиною курсу

Machine Learning для маркетингу в Python

Переглянути курс

Інструкції до вправи

  • Запустіть цикл for у діапазоні від 0 до довжини списку C.
  • Для кожного кандидата C ініціалізуйте та навчіть Logistic Regression і спрогнозуйте відтік на тестових даних.
  • Для кожного кандидата C збережіть кількість ненульових коефіцієнтів і значення recall у другому та третьому стовпцях l1_metrics.
  • Створіть датафрейм pandas із l1_metrics з відповідними назвами стовпців.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

# 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=___))
Редагувати та запускати код