로지스틱 회귀분석에서 사용하는 모델은 아래와 같습니다. 로지스틱 함수라고 부릅니다.
$f(x)=\frac{1}{1+e^{-(\beta_{0}+\beta_{1}x)}}$
우리는 이 함수의 계수인 $\beta_{0}$과 $\beta_{1}$을 결정해야 합니다. 우리가 가진 데이터를 가장 잘 표현하도록 계수를 정할겁니다. 데이터는 아래와 같습니다.
번호 | 공부시간 | 통과여부 |
1 | 1.5 | 0 |
2 | 1.8 | 0 |
3 | 2.3 | 1 |
4 | 3.3 | 0 |
5 | 4.6 | 1 |
6 | 6.5 | 1 |
오차의 제곱을 비용으로 정의하고, 비용을 전부 더하여 비용함수를 정의하였습니다. 이 비용함수를 최소화하는 계수를 찾으면 됩니다. 지난시간에 비용함수를 아래와 같이 설정했었습니다.
$\begin{align}
J(\beta_{0},\beta_{1})&=\sum_{i=1}^{6}\left ( \frac{1}{1+e^{-(\beta_{0}+x_{i}\beta_{1})}}-y_{i} \right )^2
\\&=\sum_{i=1}^{6}\left ( f(x_{i})-y_{i} \right )^2
\end{align}$
위 비용함수는 볼록함수가 아니라는 문제가 있어서 사용할 수 없었습니다. 오늘은 다른 형태의 비용함수를 고안해볼 것입니다.
로지스틱함수에 로그를 한번 취해보았습니다.
$z=\log f(x)$
f(x)는 x가 커질 수록 1에 가까워지고, 작아질 수록 0에 가까워 집니다. 결과적으로 f(x)는 0과 1 사이 값을 갖습니다. f(x)에 대해 그래프를 그려보면 아래와 같습니다.
-를 붙여서 z를 양수로 만들어봅시다.
f(x)가 1에 가까워지면 $-\log f(x)$는 0에 가까워지고 f(x)가 0에 가까워지면 $-\log f(x)$는 무한대가 됩니다. $-\log f(x)$ 를 cost로 사용할 수 있을 것 같다는 생각이 듭니다. $-\log f(x)$ 를 y=1인 관측값에 대한 cost 로 해석해봅시다. f(x)가 1에 가까워진다는 것은 오차가 줄어드는 것이므로 cost가 감소해아합니다. f(x)가 1에 가까워지면 $-\log f(x)$ 는 0에 가까워집니다. f(x)가 0에 가까워지면 오차가 늘어나는 것이므로 cost가 증가해야 합니다. f(x)가 0에 가까워지면 $-\log f(x)$ 는 증가합니다. 따라서 $-\log f(x)$를 y=1 인 관측값에 대한 cost로 사용할 수 있습니다.
y=0인 경우는 어떡해야 할까요. f(x)가 1에 가까워지면 커지고, f(x)가 0에 가까워지면 0에 가까워지는 함수를 정의하면 됩니다. 아래와 같이 정의합시다.
$-\log\left ( 1-f(x) \right )$
정리하면 아래와 같습니다.
y=1 인 학생의 비용은 $-\log f(x)$
y=0 인 학생의 비용은 $-\log\left ( 1-f(x) \right )$
우리가 다루던 데이터에 적용하여 비용을 구하면 아래와 같습니다.
$Cost_{1}=-\log\left ( 1-\frac{1}{1+e^{-\left ( \beta_{0}+1.5\beta_{1} \right )}} \right )$
$Cost_{2}=-\log\left ( 1-\frac{1}{1+e^{-\left ( \beta_{0}+1.8\beta_{1} \right )}} \right )$
$Cost_{3}=-\log\left ( \frac{1}{1+e^{-\left ( \beta_{0}+2.3\beta_{1} \right )}} \right )$
$Cost_{4}=-\log\left ( 1-\frac{1}{1+e^{-\left ( \beta_{0}+3.3\beta_{1} \right )}} \right )$
$Cost_{5}=-\log\left ( \frac{1}{1+e^{-\left ( \beta_{0}+4.6\beta_{1} \right )}} \right )$
$Cost_{6}=-\log\left ( \frac{1}{1+e^{-\left ( \beta_{0}+6.5\beta_{1} \right )}} \right )$
비용을 전부 더하여 비용함수를 정의합시다.
$\begin{align}
J\left ( \beta_{0},\beta_{1} \right )=&
-\log\left ( 1-\frac{1}{1+e^{-\left ( \beta_{0}+1.5\beta_{1} \right )}} \right )
\\&-\log\left ( 1-\frac{1}{1+e^{-\left ( \beta_{0}+1.8\beta_{1} \right )}} \right )
\\&-\log\left ( \frac{1}{1+e^{-\left ( \beta_{0}+2.3\beta_{1} \right )}} \right )
\\&-\log\left ( 1-\frac{1}{1+e^{-\left ( \beta_{0}+3.3\beta_{1} \right )}} \right )
\\&-\log\left ( \frac{1}{1+e^{-\left ( \beta_{0}+4.6\beta_{1} \right )}} \right )
\\&-\log\left ( \frac{1}{1+e^{-\left ( \beta_{0}+6.5\beta_{1} \right )}} \right )
\end{align}$
시그마 기호를 이용하여 아래와 같이 간단하게 만들어줍니다.
$J\left ( \beta_{0},\beta_{1} \right )=-\left [ \sum_{i=1}^{6}
y_{i}\times \log\left ( \frac{1}{1+e^{-\left ( \beta_{0}+x_{i}\beta_{1} \right )}} \right )
+\left ( 1-y_{i} \right )\times \log\left (1- \frac{1}{1+e^{-\left ( \beta_{0}+x_{i}\beta_{1} \right )}} \right )
\right ]$
평균비용이라는 의미를 갖게 하기 위해 전체 학생 수로 나눠줍니다.
$J\left ( \beta_{0},\beta_{1} \right )=-\frac{1}{6}\left [ \sum_{i=1}^{6}
y_{i}\times \log\left ( \frac{1}{1+e^{-\left (\beta_{0}+x_{i}\beta_{1} \right )}} \right )
+\left ( 1-y_{i} \right )\times \log\left (1- \frac{1}{1+e^{-\left ( \beta_{0}+x_{i}\beta_{1} \right )}} \right )
\right ]$
이 함수를 최소화하는 $\beta_{0}$와 $\beta_{1}$ 을 찾으면 됩니다.
'머신러닝 이론 (지도학습) > 로지스틱 회귀분석' 카테고리의 다른 글
[손으로 푸는 로지스틱 회귀분석] 4. 비용함수 (1) 오차제곱합을 쓰지 않는 이유 (0) | 2023.07.26 |
---|---|
[손으로 푸는 로지스틱 회귀분석] 3. 로지스틱 모형 (0) | 2022.12.10 |
[손으로 푸는 로지스틱 회귀분석] 2. 회귀분석의 한계 (0) | 2022.12.02 |
[손으로 푸는 로지스틱 회귀분석] 1. 소개 (0) | 2021.06.16 |
댓글