НачатьНачать бесплатно

Определение оптимального коэффициента L1-регуляризации

Теперь вы подберёте параметр C для L1-регуляризации, чтобы найти значение, которое снижает сложность модели, не ухудшая при этом её метрики качества. Вы запустите цикл for по возможным значениям C, на каждом шаге строя логистическую регрессию и вычисляя метрики производительности.

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

Библиотеки numpy и pandas загружены как np и pd, а также импортирована функция recall_score из sklearn.

Это упражнение является частью курса

Машинное обучение для маркетинга на Python

Посмотреть курс

Инструкции к упражнению

  • Запустите цикл for по диапазону от 0 до длины списка C.
  • Для каждого значения C инициализируйте и обучите логистическую регрессию, затем предскажите отток клиентов на тестовых данных.
  • Для каждого значения C сохраните количество ненулевых коэффициентов и значение полноты во втором и третьем столбцах массива l1_metrics.
  • Создайте из массива l1_metrics объект DataFrame библиотеки pandas с соответствующими именами столбцов.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

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