로지스틱 회귀 구현하기
이 연습 문제는 이전에 scipy.optimize.minimize를 사용해 선형 회귀를 "처음부터" 구현했던 과제와 매우 비슷해요. 하지만 이번에는 로지스틱 손실을 최소화하고, scikit-learn의 LogisticRegression과 결과를 비교해 보겠습니다(C는 정규화를 끄기 위해 크게 설정했어요. 자세한 내용은 3장에서 다룹니다!).
이전 연습 문제에서 사용한 log_loss() 함수는 이미 환경에 정의되어 있고, sklearn의 유방암 예측 데이터셋(처음 10개 특성, 표준화됨)은 X와 y 변수에 로드되어 있어요.
이 연습은 강의의 일부입니다
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_)