로지스틱 회귀분석 (logistic regression)
로지스틱 회귀분석
- 이분법적인 결과들을 분석할때 사용
- 은행에서 고객이 대출금을 갚을지 연체할지
- ...
로지스틱 회귀의 확률변수
- 결과값이 두개인 베르누이 시행으로 생각가능
- 해석: 시행횟수 1, 성공확률 p(x)
odds와 log-odds (승산과 로짓)
- p(x)는 0~1 사이인데, 우리의 선형회귀 모델은
의 값을 가짐 - 그래서 승산과 로짓이라는 개념을 도입
- Odds (승산):
, 실패 대비 성공의 비율 의 값을 가짐 - 승산 1 -> p(x) = 0.5 반반확률
- 승산 4 -> 1번 패배할때 4번 승리
- Log-odds(로짓):
, 선형회귀와 출력값이 같아짐 - 위의 수식을 정리하면,
과 같이 나오게됨
- Odds (승산):
승산비 (OR)
- 일어날 확률과 일어나지 않을 확률의 비율
- 선형회귀식에
값을 각각의 케이스에 대입하고 유도하면, e의 계수승이 나옴 - 즉 승산비는 결과해석의 지표로 생각가능, 승산비가 높으면
이라는 이벤트가 일어날 확률이 더 높게 모델이 학습되었구나. 라고 생각가능
- 즉 승산비는 결과해석의 지표로 생각가능, 승산비가 높으면
최대우도추정
- 우도함수
- 우리의 데이터가 우리가 정의하고 찾은
모델로 부터 튀어나왔을 확률 - 이를 최대화하여야 데이터와 가장 적합한 올바른 모델을 도출했다고 주장할 수 있음
- 우도 함수는 아래와 같이 나타냄
- 우도함수는 i번째 시행이 성공 (1) 혹은 실패 (0) 을 부여하고 그때의 확률만 남기됨 (p(x_i) or 1 - p(x_i))
- 우리의 데이터가 우리가 정의하고 찾은
- 로그우도함수
- 위의 우도 함수에 곱의 미분은 어려우니, 로그를 씌워 합으로 변경
// 뺄셈을 로그의 나눗셈으로 바꿈 // 로짓과 확률 관계를 대입
- 로그우도함수 미분값을 0으로 만드는 지점이 데이터로부터 모델의 적합할 확률이 최화 되는것!
- 해당 미분은 쉽지만 =0 이 되는 부분을 찾기가 매우 어렵기에 테일러 급수를 사용함
- 테일러 급수 1차 근사 (선형근사)
: 현재 내가 있는 위치의 높이 : 현재 내 위치에서의 경사(기울기) : 여기서 조금 더 이동한 거리
- 기울기를 따라 좀만 더 가서
를 찾겠다. 함수값이 =0 이 될때까지 반복하겠다. - 수식을 조금 바꾸어, 아래의 내용을 함수값이 0이 될때까지 반복하면됨
- 수식을 조금 바꾸어, 아래의 내용을 함수값이 0이 될때까지 반복하면됨
- 테일러 급수 1차 근사 (선형근사)
- 해당 미분은 쉽지만 =0 이 되는 부분을 찾기가 매우 어렵기에 테일러 급수를 사용함
- 로지스틱 회귀에 적용
- 일반적인 뉴턴-랩슨:
이 되는 를 찾고 싶음. - 이때 필요한 재료:
와 그것을 한 번 미분한 .
- 이때 필요한 재료:
- 우리의 로지스틱 회귀: 로그 우도함수의 미분값인 **
**이 되는 를 찾고 싶음. - 치환:
자리에 를 집어넣음 - 결과:
(헤시안)을 구해야함 - 헤시안은 일반적으로 그래프의 곡률을 알려주기 때문에, 굴곡을 고려하여 멀리가고 조금가고를 조절한다고 볼 수 있음
- -> 일반적인 경사하강법 보다 빠름
- 치환:
- 최종 수식
- 행렬로 표현
- 알고리즘
- 위 수식을 적용한다.
, 계산 (다음값, 이전값) > 이며 (즉 함수값 비교하여 아까보다 더 높은곳일때) 이면 정답 찾음, 아니면 반복
- 알고리즘
- 미분 (스코어 함수
) : 오차만큼의 방향과 양으로 이동한다 : 해당 데이터의 값 만큼 이동한다
- 헤시안 (
) : 베르누이 분포의 분산 - p가 0.5일때 가장 분산이 커짐
- -> 확신이 없을때 많이 움직이지 마라
- p가 0.5일때 가장 분산이 커짐
- i -> 데이터 번호
- j -> 가중치 번호
- k -> 가중치 번호 2 -> 2차미분시 변수(
)간의 상호작용 - 헤시안 행렬이 두가지 변수의 두번 미분한 것의 조합의 행렬이라서 다른 변수로 미분
- 헤시안 행렬이 두가지 변수의 두번 미분한 것의 조합의 행렬이라서 다른 변수로 미분
- 일반적인 뉴턴-랩슨:
혼동행렬
| 예측 상태 | 실제 양성 | 실제 음성 |
|---|---|---|
| 양성 예측 | 참인 양성(TP) | 거짓 양성(FP), type I error |
| 음성 예측 | 거짓 음성(FN), type II error | 참인 음성(TN) |
- 앞의 단어 true, false
- 실제 절대적인 값
- 뒤의 단어 postive, negative
- 모델이 예측한 것
혼동행렬에서 뽑을 수 있는 지표
| 지표명 | 수식 | 의미 (직관적 해석) |
|---|---|---|
| 정확도 (Accuracy) | 전체 중 맞춘 비율 (가장 기본이지만 함정이 많음) | |
| 정밀도 (Precision, PPV) | "양성이라고 예측한 것 중" 진짜 양성인 비율 (예측의 질) | |
| 재현율 (Recall, TPR) | "실제 양성인 것 중" 모델이 찾아낸 비율 (검출 능력) | |
| 특이도 (Specificity, TNR) | "실제 음성인 것 중" 모델이 음성이라고 맞춘 비율 |
- F1 스코어
- 모든게 다 상승한다, 라고하면 재현율은 100%지만 정밀도는 낮아짐
- 확실한것 하나만 상승한다, 라고 말하면 정밀도는 100%지만 재현율은 낮아짐
- 둘의 균형을 맞춘 지표
예시
- 금융/투자 (퀀트 프로젝트 등): 정밀도(Precision)가 중요합니다. "살까 말까" 고민할 때, 샀는데 떨어지면 큰일남. (사기꾼을 걸러내는 것)
- 의료/안전 (의료 연구 등): 재현율(Recall)이 중요합니다. "부상 위험"을 감지할 때, 위험한데 정상이라고 판단하면 큰 사고가 님 (환자를 놓치지 않는 것)
- "데이터가 불균형할 때(예: 유병률 1.5%처럼 아주 희귀한 경우) 왜 정확도만 믿으면 안 되는가?"라는 질문에 F1 점수나 정밀도/재현율로 답변하시면 합격입니다.