시작하기무료로 시작하기

정규화된 로지스틱 회귀

1장에서 손글씨 숫자 데이터셋에 로지스틱 회귀를 사용해 보셨죠. 이번에는 L2 정규화의 효과를 살펴보겠습니다.

손글씨 숫자 데이터셋은 이미 로드되어 학습/검증 세트로 분할되어 있으며, X_train, y_train, X_valid, y_valid 변수에 저장되어 있어요. 또한 train_errsvalid_errs 변수는 빈 리스트로 초기화되어 있습니다.

이 연습은 강의의 일부입니다

Python으로 배우는 선형 분류기

강의 보기

연습 안내

  • 다양한 C_value에 대해 반복하면서, 매번 LogisticRegression 모델을 생성하고 학습(fit)하세요.
  • 각 모델에 대해 학습 세트와 검증 세트의 오류를 저장하세요.
  • 정규화 하이퍼파라미터 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()
코드 편집 및 실행