시작하기무료로 시작하기

로지스틱 회귀 구현하기

이 연습 문제는 이전에 scipy.optimize.minimize를 사용해 선형 회귀를 "처음부터" 구현했던 과제와 매우 비슷해요. 하지만 이번에는 로지스틱 손실을 최소화하고, scikit-learn의 LogisticRegression과 결과를 비교해 보겠습니다(C는 정규화를 끄기 위해 크게 설정했어요. 자세한 내용은 3장에서 다룹니다!).

이전 연습 문제에서 사용한 log_loss() 함수는 이미 환경에 정의되어 있고, sklearn의 유방암 예측 데이터셋(처음 10개 특성, 표준화됨)은 Xy 변수에 로드되어 있어요.

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

Python으로 배우는 선형 분류기

강의 보기

연습 안내

  • range()에 학습 예제의 개수를 입력하세요.
  • 로지스틱 회귀의 손실 함수를 채워 넣으세요.
  • scikit-learn의 LogisticRegression과 계수를 비교하세요.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

# The logistic loss, summed over training examples
def my_loss(w):
    s = 0
    for i in range(____):
        raw_model_output = w@X[i]
        s = s + ____(raw_model_output * y[i])
    return s

# Returns the w that makes my_loss(w) smallest
w_fit = minimize(my_loss, X[0]).x
print(w_fit)

# Compare with scikit-learn's LogisticRegression
lr = LogisticRegression(fit_intercept=False, C=1000000).fit(X,y)
print(lr.coef_)
코드 편집 및 실행