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

Регуляризованная логистическая регрессия

В главе 1 вы применяли логистическую регрессию к набору данных рукописных цифр. Здесь мы изучим влияние L2-регуляризации.

Набор данных рукописных цифр уже загружен, разбит на выборки и сохранён в переменных X_train, y_train, X_valid и y_valid. Переменные train_errs и valid_errs уже инициализированы как пустые списки.

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

Линейные классификаторы в Python

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

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

  • Переберите в цикле различные значения C_value, каждый раз создавая и обучая модель LogisticRegression.
  • Сохраняйте ошибку на обучающей и валидационной выборках для каждой модели.
  • Постройте график зависимости ошибок на обучающей и тестовой выборках от параметра регуляризации C.
  • Глядя на график, определите: какое значение C является наилучшим?

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

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

# Train and validaton errors initialized as empty list
train_errs = list()
valid_errs = list()

# Loop over values of C_value
for C_value in [0.001, 0.01, 0.1, 1, 10, 100, 1000]:
    # Create LogisticRegression object and fit
    lr = ____
    lr.fit(____)
    
    # Evaluate error rates and append to lists
    train_errs.append( 1.0 - lr.score(____) )
    valid_errs.append( 1.0 - lr.score(____) )
    
# Plot results
plt.semilogx(C_values, train_errs, C_values, valid_errs)
plt.legend(("train", "validation"))
plt.show()
Редактировать и запускать код