본 게시글은 강필성 교수님의 다변량 데이터 분석 강의를 기반으로 작성되었습니다.
작성자 : KUBIG 17기 송지훈
선형회귀로 어느 현상을 제대로 설명/표현할 수 없을 때 Logistic Regression 사용
[Classification Task]
Example: 참 거짓이 결과인 문제들에서는 선형회귀식의 왼쪽과 오른쪽의 범위가 불일치하여 문제 발생
$$ y = \beta_0 + \beta_1x_1 + \beta_2x_2 ... + \beta_dx_d + \epsilon $$
$$ \beta = coefficient \quad \epsilon = noise$$
[Goal]
설명 변수를 가지고 최종 결과가 0 아니면 1인 binary outcome이 되도록 하는 함수 찾기
[Odds]
$$ odds = {p \over 1-p} $$
p = probability of success
오즈의 범위는 0부터 ∞
오즈의 단점
단점 해결
$$ log(odds) = log( {p \over 1-p}) $$
[Logistic Regression Formula]
$$ {p \over 1-p} = e^{\beta_0 + \beta_1x_1 + \beta_2x_2 ... + \beta_dx_d} $$
성공 확률:
$$ p = {1 \over 1 + e^{-(\beta_0 + \beta_1x_1 + \beta_2x_2 ... + \beta_dx_d)}} $$
모델의 성능은 정답 범주에 속할 확률을 높게 산출해주는 것이 좋다
Likelihood Function
Likelihood: 정답 클래스로 분류될 확률
Maximum likelihood estimation (MLE)
데이터셋이 가지는 likelihood를 최대화하는 coefficient를 찾는 게 목표
$$ P(x_i, y_i | \beta) = \sigma(x_i | \beta) $$ $$ if y_i = 1$$
$$ P(x_i, y_i | \beta) = 1 - \sigma(x_i | \beta) $$ $$ if y_i = 0$$
yi가 0 아니면 1이므로 위 식을 다음과 같이 쓸 수 있다:
$$ P(x_i, y_i | \beta) = \sigma(x_i | \beta)^{y_i}(1 - \sigma(x_i | \beta))^{1-y_i} $$
전체 데이터셋의 likelihood는 다음과 같이 표현:
$$ L(X,y|\beta) = \prod_{i=1}^N {P(x_i, y_i | \beta)} = \prod_{i=1}^N{\sigma(x_i | \beta)^{y_i}}(1 - \sigma(x_i | \beta))^{1-y_i} $$
로그를 하면:
$$ logL(X,y|\beta) = \sum_{i=1}^n y_i log(\sigma(x_i | \beta)) + (1-y_i)log((1 - \sigma(x_i | \beta)) $$
Gradient Descent
log likelihood function을 미분하면서 gradient가 0이 될 때까지 weight(Beta Hat)값을 바꾸면서 시도
$$ p = {1 \over {1 + e ^ {-(\beta_0 + \beta_1x_1 + \beta_2x_2 ... + \beta_dx_d)}}} $$
여기서 나오는 확률은 0에서 1 사이의 값인데 그럼 몇부터 어떤 클래스로 할당할 것인지 정하는 게 cut-off (threshold)이다
[Odds Ratio]
Odds Ratio input 변수가 1 증가할 때의 오즈 비율
x가 한 단위 증가한다고 가정하자:
$$ {odds(x_1 + 1, ..., x_d)} \over {odds(x_1, ..., x_d)} $$
$$ = e ^ {\beta_0 + \beta_1(x_1+1) + \beta_2x_2 ... + \beta_dx_d} \over e ^ {\beta_0 + \beta_1x_1 + \beta_2x_2 ... + \beta_dx_d} $$
[Multinomial Logistic Regression]
K class가 있는데 k-1 만큼 모델링 하는 이유는 likelihood의 합이 1이므로 k-1 likelihood를 알면 마지막 클래스는 자동으로 계산 가능
모델 평가가 필요한 이유: 학습용 데이터만 학습을 잘하는 것이 아니라 새로운 데이터도 높은 예측을 할 수 있을지 평가
Validation Set을 통해서 파라미터값 최적화
Test set을 통해서 성능이 좋은 모델 찾기
Confusion Matrix
Predicted | ||
---|---|---|
Actual | 1 | 0 |
1 | n11 | n10 |
0 | n01 | n00 |
$$ \text { Misclassification error } = {{n_{01} + n_{10}} \over {n_{11} + n_{10} + n_{01} +n_{00}}} $$
$$ \text { Accuracy } = { {n_{11} + n_{00}} \over {n_{11} + n_{10} + n_{01} +n_{00}}} $$
= 1 - Misclassification Error
$$ \text{ Balanced correction rate (BCR) } = \sqrt { {n_{11} \over {n_{11} + n_{10}}} * {n_{00} \over {n_{01} + n_{00} } } } $$
$$ \text{ Recall } = {n_{11} \over {n_{11} + n_{10}}} $$
$$ \text{ Precision } = {n_{11} \over {n_{11} + n_{01}}} $$
$$ \text { F1- Measure } = { {2 * Recall * Precision} \over {Recall + Precision} } $$
[Cut-off for classification]
분류 알고리즘은 각 class에 대한 likelihood를 확률, degree of evidence로 보여준다
Receiver Opearting Characteristic Curve (ROC Curve)
AUROC = Area Under ROC Curve
ROC Curve:
*true positive, false positive를 시각화한 뒤 ROC curve 아래의 넓이가 AUROC
*AUROC가 1에 가까울수록 성능이 좋은 것 (ideal classifier), 0.5에 가까울수록 랜덤 분류 (random classifier)
[다변량 데이터 분석] Chapter.06 Artificial Neural Networks (1) | 2023.05.04 |
---|---|
[다변량 데이터 분석] Chapter.05 (0) | 2023.03.28 |
[다변량 데이터 분석] Chapter.04 (1) | 2023.03.21 |
[다변량 데이터 분석] Chapter.02 (0) | 2023.03.13 |
[다변량 데이터 분석] Chapter.01 (0) | 2023.03.13 |
댓글 영역