Логістична регресія з регуляризацією
У розділі 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()