Notice
Recent Posts
Recent Comments
Link
관리 메뉴

뛰는 놈 위에 나는 공대생

[머신러닝] Logistic Regression 본문

연구 Research/인공지능 Artificial Intelligent

[머신러닝] Logistic Regression

보통의공대생 2021. 5. 25. 23:59

로지스틱 회귀모형을 통해 특정 class에 속할 확률을 알 수 있습니다.

 

1. Logistic Regression 소개

logistic regression은 우리가 흔히 사용하던 linear regression의 변형이라고 볼 수 있습니다.

 

그림 출처 : https://ko.wikipedia.org/wiki/%EC%8B%9C%EA%B7%B8%EB%AA%A8%EC%9D%B4%EB%93%9C_%ED%95%A8%EC%88%98#/media/%ED%8C%8C%EC%9D%BC:Logistic-curve.svg

 

 

위 함수는 $f(y)=\frac{1}{1+e^{-y}}$

$logit(p)=\ln\left(\frac{p}{1-p}\right)=\beta_{0}+\beta_{1}X$

 

linear regression처럼 회귀계수$\beta_{1}$와 intercept인 $\beta_{0}$을 구하는 것은 마찬가지지만,

linear regression에서 $\beta_{1}$이 변수 X의 한 단위 증가에 따른 (예측하고 싶은 변수) y의 증가 비율을 의미한다면

여기서 $\beta_{1}$은 변수 X 한 단위 증가에 따른 $logit(p)$의 증가 비율을 의미하며, 이 logit은 곧 어떤 class일 확률과 아닐 확률의 비를 log로 나타낸 것입니다.

예를 들면, 질병의 유무(positive, negative)로 classification하는 문제일 경우 p가 양성일 확률로 정하고, 1-p는 음성일 확률로 나타나는 셈입니다.

 

 

2. ROC와 AUC

 

logistic regression의 평가지표로 ROC(Receiver Operating Characteristic)와 AUC(Area Under the Curve)를 사용합니다.

 

true positive rate(recall, sensitivity)와 false positive rate(1-specificity)를 cut off threshold를 바꿔가며 그린 것으로,

AUC는 ROC curve의 아래 부분을 의미합니다. AUC 영역이 넓을수록 성능이 더 뛰어납니다.

 

제가 예전에 logistic regression을 수행할 때 얻은 ROC curve를 예시로 들고 옵니다.

 

그 당시에 cut point를 바꿔가면서 그림을 그렸었는데, 안타깝게도 데이터가 편향되어있어서 specificity가 0.8에서 1 사이로밖에 나오지 않았습니다.

 

당시에 나왔던 sensitivity, specificity, accuracy, f1 score

그래서 원래 제대로 된 그림은 아래와 같은데 잘려서 나왔네요.

 

원래는

이와 같은 그림이 나옵니다. 가장 이상적인 경우는 false positive(거짓 양성)이 0이고 true positive이 1인 경우입니다.

Comments