본문 바로가기

파이썬/머신러닝

로지스틱 회귀 개념 알아보기, 선형회귀와의 차이점

로지스틱 회귀는 가장 기본적인 분류 모델 중 하나입니다. 이름은 회귀이지만 실질적인 작동 방식은 분류에 가깝습니다. 로지스틱 회귀는 데이터가 어떤 범주에 속할 확률을 0에서 1 사이 값으로 예측하고 그 확률에 따라 가능성이 더 높은 범주에 속하는 것으로 분류합니다. 보통 0.5를 기준으로 하며, 0.5보다 크면 1, 작으면 0으로 분류합니다.

 

 

로지스틱 회귀는 독립변수의 선형 결합을 이용해 사건의 발생 여부를 예측하며 종속변수가 범주형일 경우에 사용하는 회귀분석입니다. 종속변수의 범주가 2개이면 이항 로지스틱 회귀 분석, 2개 이상이면 다항 로지스틱 회귀분석이라고 합니다.

 

 

로지스틱 회귀를 이해하려면 일단 선형회귀 개념을 알아야 합니다.

선형회귀 개념

 

Linear Regression 선형회귀 파이썬 코드 예제 (보스턴 주택 가격 csv 파일)

선형모델은 아주 기초적이고 간단하지만 설명력이 뛰어나고 다른 모델들의 기초가 되는 모델이기 때문에 반드시 알고 넘어가야 하는 것이 좋다. 중학교 수학시간에 처음 배웠던 함수인 일차함

for-my-wealthy-life.tistory.com

 

 

 

 

선형회귀는 확률값이 -∞ ~ ∞로 뻗어나가는 일직선이지만 로지스틱 회귀는0~1 사이에서 완만한 S-curve를 그립니다. 또 선형 회귀분석은 정규분포를 따르지만 로지스틱 회귀분석은 이항분포를 따른다는 점에서도 차이가 있습니다.

 

 

Logg-odds

 

선형회귀는 y=ax+b 형태로 각 속성에 계수를 곱하고 절편을 더해서 예측 값을 구합니다. 로지스틱 회귀도 마찬가지인데 예측 값이 아닌 log odds값을 구해준다는 점에서 다릅니다.

 

 

odds는 사건이 발생할 확률을 사건이 발생하지 않을 확률로 나눈 것이며, log-odds는 odds값에 로그를 취한 값입니다. odds는 0~∞의 범위를 갖기 때문에 이를 회귀분석과 같은 범위인 -∞ ~ ∞로 바꿔주기 위해서 로그를 취해주는 것입니다.

 

 

Sigmoid Function

 

선형회귀 형태의 일직선을 완만한 s-curve로 바꿔주는 것이 바로 시그모이드 함수입니다. 시드모이드 함수는 logg-odds를 0~1값으로 변환해주는 함수로 함수식은 p = 1/(1+e^(-y))입니다. 여기서 e^(-y)는 지수함수로 numpy의 np.exp(-y)로 값을 구할 수 있습니다.

 

 

Logg Loss

 

로지스틱 회귀 모델의 적합성을 평가하려면 각 데이터 샘플의 손실을 계산해서 평균을 구합니다. 로지스틱 회귀의 손실함수는 아래와 같습니다. 당연히 이 손실값을 최소화하는 것이 목표입니다.

 

Threshold

 

앞서 로지스틱 회귀는 확률을 계산한 후 이 확률이 특정 수준 이상이면 1로, 이하면 0으로 분류한다고 했습니다. 이 '특정 수준'이 바로 threshold, 임계값으로 기본 임계값은 0.5입니다. 필요에 따라서 임계값은 변경할 수 있습니다. 임계값이 작을수록 해당 클래스로 분류되는 값들이 많아집니다.