1. 학습
  2. /
  3. 강의
  4. /
  5. R 중급 회귀

Connected

연습 문제

로지스틱 회귀 알고리즘

로지스틱 회귀의 내부를 파보고, 직접 알고리즘을 구현해 보겠습니다. R의 glm() 함수는 매우 복잡하므로, 여기서는 단일 데이터셋에 대한 단순 로지스틱 회귀만 구현할 거예요.

평가 지표로 제곱합 대신 우도를 사용하려고 합니다. 다만 로그 우도가 계산적으로 더 안정적이므로 그걸 사용하겠습니다. 한 가지 더: 우리는 로그 우도를 최대화하고 싶은데, optim()은 기본적으로 최소값을 찾습니다. 따라서 계산을 쉽게 하려면 로그 우도의 부호를 바꿔서, 즉 음의 로그 우도를 계산하면 됩니다.

각 관측치에 대한 로그 우도 값은 다음과 같습니다.

Formula for log-likelihood

우리가 계산할 지표는 이 로그 우도 기여분들의 합에 마이너스를 붙인 값입니다.

설명 변수 값(churn의 time_since_last_purchase 열)은 x_actual로 제공됩니다. 반응 변수 값(churn의 has_churned 열)은 y_actual로 제공됩니다.

지침 1/3

undefined XP
    1
    2
    3
  • 절편을 1로 설정하세요.
  • 기울기를 0.5로 설정하세요.
  • 예측 y값을, 절편에 실제 x값에 기울기를 곱한 값을 더한 뒤 로지스틱 분포 CDF로 변환해 계산하세요.
  • 각 항의 로그 우도를, 예측 y값의 로그에 실제 y값을 곱하고, 여기에 (1 - 예측 y값)의 로그에 (1 - 실제 y값)을 곱한 값을 더해 계산하세요.
  • 각 항의 로그 우도 합에 마이너스를 붙여 계산하세요.