Регуляризованная логистическая регрессия
В главе 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()