머신러닝 개발자의 러닝머신

[머신러닝]로지스틱 회귀(Logistic Regression) "범주데이터 분류는 확률 기반의 예측으로 치환한다" 본문

ML.AI/ML, DL

[머신러닝]로지스틱 회귀(Logistic Regression) "범주데이터 분류는 확률 기반의 예측으로 치환한다"

oongsong 2023. 8. 2. 10:32
반응형

/

안녕하세요-🤓

 

 

오늘은 "회귀"의 개념과 선형 회귀, 로지스틱 회귀에 대해서 알아보겠습니다. 

분류 문제에 주로 사용되는 로지스틱 회귀가 왜 연속 변수의 값을 예측하는 회귀의 문제인지 

헷갈리는 일이 많이 많습니다. 

 

 

그래서

회귀란 무엇인지, 

선형회귀, 로지스틱 회귀의 비교, 

로지스틱 회귀의 파라미터 추정과 결과 해석까지 알아보겠습니다.

/

 

 

회귀(Regression)란?

 

회귀란 관찰된 연속형 변수들에 대해 두 변수 사이의 모형을 구한 뒤 적합도를 측정해 내는 분석 방법입니다. 즉, 독립변수와 종속변수 간의 상관관계를 모델링하여 알려진 데이터를 이용해 미래의 사건을 예측하는 방법입니다.  

 

 

선형 회귀 (Linear Regression)

 

선형 회귀는 주어진 데이터 집합 X에 대해 종속변수 Y 사이의 관계를 선형식으로 모델링하는 회귀 분석 방법입니다. 

모델은 다음과 같은 선형식의 형태를 갖습니다. 

 

 

 

 

이 때, 하나의 독립변수와 종속변수 사이의 관계를 분석하는 경우, 즉, 위의 식에서 n이 1일 때를 단순 선형 회귀 분석, n이 2이상일 때 여러 독립변수와 하나의 종속변수 사이의 관계를 규명하고자 하는 것을 다중 선형 회귀 분석이라고 합니다.

 

 

이러한 선형 관계로 모델링되는 선형 회귀 분석을 훈련하는 것은 데이터(X, Y)를 가장 잘 설명하는 W와 b 값을 찾는 과정입니다. 

 

 

1) 단순 선형 회귀(Simple Linear Regression)

단순 선형 회귀 분석의 모델은 y=Wx+b  의 식으로 나타나며 다음과 같이 직성 형태의 그래프로 표현됩니다. 

 

단순 선형 회귀, 이미지 출처: wikipedia

 

 

2) 다중 선형 회귀(Multiple Linear Regression)

다중 선형 회귀는 y = W1*x1 + W2*x2 + ... + Wn*xn + b 로 나타내며 n=2인 경우는 평면으로 표현됩니다. 

 

 

 

선형 회귀 모델의 학습 

 

선형 회귀 모델의 학습은 선형식으로 표현된 모델에서 데이터를 가장 잘 설명하는 파라미터를 찾아 모델을 결정하는 것입니다. 이를 위해 손실함수(loss function)를 이용해 예측과 실제 데이터의 차이를 구해 오차가 최소가 되는 모델의 파라미터를 최종 모델로 결정합니다. 

 

 

이처럼 모델이 예측한 값과 실제 데이터의 차이인 오차를 표현하는 식을 손실함수(loss function)

손실함수를 기반으로 오차가 최소가 되는 파라미터를 찾아 모델을 업데이트 하는 과정을 경사하강법(Gradient Descent)라고 합니다. 

 

 

선형 회귀에서 의 손실함수로는 MAE, MSE, 결정계수(R-squared) 등이 사용됩니다. 

1) MSE(Mean Squared Error), 평균 제곱 오차 

MSE 는 선형 회귀에서 가장 많이 쓰이는 손실 함수로, 오차를 제곱합 뒤 이들의 평균을 이용합니다. 

 

MSE, 이미지 출처 https://hackernoon.com/my-notes-on-mae-vs-mse-error-metrics

 

 

 

2) MAE(Mean Absolute Error), 평균 절대 오차

MAE는 오차의 절댓값의 평균이며 다음과 같이 표현됩니다. 

MAE, 이미지 출처 https://hackernoon.com/my-notes-on-mae-vs-mse-error-metrics

MAE는 오차의 부호가 다름으로 인해서 평균을 구할 때 오차가 상쇄되는 현상을 방지하기 위해 절댓값을 적용해 이를 해결하고 있습니다.

 

 

일반적으로 MSE가 선형회귀의 손실함수로 더 많이 사용됩니다. 그 이유는 계산의 복잡성이 더 낮기 때문입니다. 하지만 MSE는 제곱 연산으로 인해 오차가 큰 값은 더욱 강조되고, 작은 값은 더욱 작아지면서 이상점(outlier)의 영향을 크게 받는다는 단점이 있습니다. 

MAE는 예측에서 오차가 크게 발생하는 상황을 더 민감하게 모델에 반영하지 못한다는 특징이 있습니다. 하지만 이상점(outlier)에 대해 다른 방법에 비해 영향을 적게 받아 이상점에 강건(robust)하다는 장점이 있습니다. 

 

 

오늘 포스팅은 로지스틱 선형 회귀를 이해하기 위함이므로 손실함수에 대한 이야기는 다른 포스트에서 자세히 다뤄보겠습니다.- 

 

 

 

범주형 데이터와 로지스틱 회귀 

 

그렇다면, 선형 회귀 모델이 0, 1 과 같이 분류를 나누는 범주형 데이터에 대해서도 유효하게 작동할까요?

답은 '그렇지 않다!' 입니다. 

 

 

다음 그림과 같이 종속 변수의 값이 0과 1인 데이터에서 선형회귀로 모델링한 결과를 살펴보면, 

연속변수를 예측하는 선형회귀 모델은 0과 1만이 의미가 있는 다음의 데이터를 잘 설명하고 있다고 보기 어렵습니다. 

선형 회귀 모델의 종손 변수의 범위가 [0, 1]을 벗어나는 결과가 나오기 때문에 오히려 예측의 정확도만 떨어트립니다. 

 

 

범주형 데이터와 선형회귀 모델링, 이미지 출처 https://hyunlee103.tistory.com/12

 

 

그래서, 범주에 속할 확률(p)를 바탕으로 승산(odds)을 이용해 "성공할 확률을 예측하는 선형회귀"의 문제로 치환하여 모델링을 진행하여 범주 분류 문제를 해결할 수 있습니다. 

 

이러한 방식을 로지스틱 회귀 분석이라고 합니다. 

 

 

 

로지스틱 함수 

 

사건이 발생할 확률을 예측하는 모델링을 수행하기 위해서 사용하는 함수가 logistic function(다른 말로는 sigmoid 함수)입니다. 

 

시그모이드 함수(로지스틱 함수)

 

 

로지스틱 함수(시그모이드 함수)는 위의 그림과 같이 독립 변수가  (-∞,∞)의 어느 숫자이던지 상관없이 종속 변수의 결과 값이 항상 [0, 1] 사이에 존재합니다. 이러한 로지스틱 함수는 승산(Odds)를 로짓 변환(logit transformation)을 수행함으로써 얻어집니다. 이 때, Odds는 승산을 의미하며 실패할 확률에 대비해 성공할 확률을 나타냅니다. 

 

다음은 로지스틱 함수의 유도 과정입니다. 

 

로지스틱 함수 유도 과정

 

 

사건의 확률을 p라고 할 때, 승산(odds)을 구하고, 

승산에 로짓 변환을 취하면(log(odds)) 종속 변수의 범위가  (-∞,∞)가 되어 이제 선형 회귀( 종속변수의 범위: (-∞,∞)) 분석이 유효한 문제가 됩니다. 

 

 

따라서, log(odds)의 값을 예측하는 선형 모델링을 수행합니다. 

이때, p에 대해서 식을 풀면, 로지스틱 함수가 유도됩니다. 

 

 

결국, 범주형 데이터가 주어졌을 때, 로지스틱 함수의 값을 예측하는 회귀문제로 변환되고, 

범주형의 분류 문제를 로지스틱 "회귀"라고 부르는 이유입니다. 

 

 

 

로지스틱 회귀모델의 학습 (파라미터 추정)

 

① MSE의 한계

로지스틱 회귀 또한 손실함수를 기반으로 경사 하강법을 사용해 가중치(파라미터)를 찾아내지만, 손실함수로 MSE를 사용할 수 없습니다. 

 

로지스틱 함수의 비용함수가 MSE인 경우의 cost

 

위의 그림과 같이 MSE를 비용함수로 사용했을 때 cost 그래프가 다음과 같이 그려지고 이에 따라서 local minimum에 빠질 가능성이 지나치게 높아 최적의 값을 찾아내는 것이 어렵습니다. 

 

 

② MLE(Maximum Likelihood Estimation), 최대우도법

로지스틱 회귀 문제는 MSE를 비용함수로 사용할 수 없어 다른 방법으로 최적의 파라미터값을 찾아내야 합니다. 

이때, 적용되는 개념이 MLE(Maximum Likelihood Estimation) 최대우도법입니다. 

 

최대우도법은 데이터가 주어지고, 분포 모형을 알 수 없는 상황에서 우도가 최대가 되는 분포를 추정하는 방법입니다. 

(최대우도법에 대한 자세한 설명은 해당 포스트에 업로드했습니다! )  👉🏻https://eunsun-develop.tistory.com/51

 

[통계/수학] MLE(Maximum Likelihood Estimation, 최대우도법) : "데이터를 가장 잘 설명하는 원래 분포를 찾

안녕하세요🤓 오늘은 데이터 밀도 추정 방법으로 많이 사용되는 최대우도법에 대해서 알아보겠습니다.🔎 우도(likelihood, 가능도)란? 최대 우도법은 말 그대로 우도를 최대화하는 지점을 찾는

eunsun-develop.tistory.com

 

 

로지스틱 회귀는 범주형 데이터를 odd 확률값을 구하여 발생가능한 확률로 변환한 뒤, 이 데이터를 가장 잘 따르는 모델(분포)를 추정하는 방식으로 모델링을 수행합니다.

 

 

다음은 우도 함수(가능도)와 로그 변환 우도함수식 입니다. 

 

이미지 출처 https://huidea.tistory.com/274

 

이 때, cross entropy는 두 확률분포의 차이를 나타내며 

어떤 데이터가 0, 1로 예측될 확률을 각각 ŷ , 1−ŷ라고 하면 로그 우도(log Likelihood)와 cross entropy의 관계는 다음과 같습니다. 

 

 

 

로그 우도식에 (-)를 취하면 Cross Entropy의 정의와 일치하게 됩니다. 

따라서, 우도를 최대화시키는 모델은 Cross Entropy를 최소화하는 모델임을 유도할 수 있습니다. 

MLE를 위해 우도를 구하고, 우도를 최대화시키는 파라미터를 구하기 위해 편미분을 하지 않고도

비용 함수로 Cross Entropy를 사용해 값이 최소가 되는 지점을 간편하게 찾으면 최적의 모델을 찾을 수 있습니다. 

 

 

 

로지스틱 회귀모델의 결과 해석 

 

이진 분류의 로지스틱 회귀 모델에서, 기준값을 설정할 때는 일반적으로 0.5보다 크면 1의 범주로, 작으면 0의 범주로 분류합니다. 적용하는 문제와 데이터에 따라서 기준값을 다르게 설정할 수 있습니다. 

 

 

 



 

오늘은 로지스틱 회귀 분석에 대해 자세히 알아보았습니다. 

자주 접하는 분류 문제에 많이 사용되는 

분석 기법이므로 아주 중요하고 꼭 알아둬야 하는 개념입니다. 

로지스틱 파라미터 추정을 위해 최대 우도법 개념을 사용한다는 것도 알아두면 좋겠죠?! ✨

 

 

 

 

 

** Reference 

https://wikidocs.net/22881
https://www.youtube.com/watch?v=l_8XEj2_9rk

https://velog.io/@cha-suyeon/%ED%98%BC%EA%B3%B5%EB%A8%B8-Logistic-Regression%EB%A1%9C%EC%A7%80%EC%8A%A4%ED%8B%B1-%ED%9A%8C%EA%B7%80

https://sonstory.tistory.com/67

https://hackernoon.com/my-notes-on-mae-vs-mse-error-metrics

 

 

 

반응형