주의) 이 페이지에서는 공식의 유도 과정 같은 것은 정리하지 않는다. 공식의 유도 과정은 <코세라 강의> 참조.
로지스틱 회귀 (Logistic Regression)

*https://www.researchgate.net/figure/Logistic-regression-and-linear-regression_fig1_335786324*
- 데이터를 분류하기 위한 방법
- 메일이 스팸인지 아닌지, 종양이 양성인지 음성인지를 구분한다.
- 특정 데이터를 분류하는 기준(threshold)을 바탕으로 기준을 넘어서면 분류에 속하고 아니면 분류에 속하지 않는 것으로 판별한다.
- 분류에 속하느냐 아니냐이기 때문에 값은 0이냐 1이냐로 나온다. 보다 정확히 말하면 결과값이 0에 가까우냐 1에 가까우냐를 가지고 0 또는 1로 값을 매긴다.
- 분류의 종류가 여러개일 경우 각각의 분류 마다 분류에 속하는지 아닌지를 판별한다.
- 분류 문제에 선형회귀를 쓰는 것은 좋은 방법이 아닌데, outlier 값이 선의 기울기를 크게 바꾸기 때문.
로지스틱 회귀의 가설함수

https://www.quora.com/Why-is-logistic-regression-considered-a-linear-model
- 로지스틱 회귀의 가설함수는 시그모이드 함수를 이용한다. –시그모이드 함수는 $g(z)$라고 표기한다.
- $h_{\theta}(x) = g(z) = \frac{1}{1 + e^{-z}}$
- $z = \theta^T x$
- $\theta$는 파라미터 $\theta$의 벡터이고, $x$는 feature들의 벡터이다. $\theta$의 전치행렬과 $x$의 곱은 선형회귀에서 사용했던 가설함수와 같은 의미가 된다.
- 위의 가설함수를 바탕으로 데이터 사이에 영역을 구분한 것을 Decision Boundary라고 한다.
- 데이터가 Decision Boundary의 어느 쪽에 있느냐에 따라 분류에 속하는지 아닌지를 알 수 있다.
로지스틱 회귀의 비용함수
- 로지스틱 회귀의 비용함수 개념 자체는 선형 회귀의 비용함수와 같다. 가설함수와 실제 데이터의 차이를 합산하는 것. 다만 log를 이용해 계산하는 부분에 차이가 있다.
- $J(\theta) = - \frac{1}{m} \sum_{i=1}^m [ y_i log h_\theta (x_i) + (1 - y_i) log (1 - h_\theta (x_i)) ]$
- 로지스틱 회귀의 비용함수가 log 함수를 사용하는 이유는, 어차피 데이터가 0인지 1인지만 알면 되고, log 함수가 1인 점을 지나는 곡선을 그리기 때문
- 로그에 음수 를 취해 그래프를 뒤집고, 0-1 사이의 구간만 잘라내서 사용한다. 자세한 내용은 코세라 강의 참조.
로지스틱 회귀의 Gradient Descent
- 로지스틱 회귀의 Gradient Descent 개념 자체는 선형 회귀의 그것과 동일하다. 비용함수를 가설함수의 $\theta$ 별로 편미분한 후 기존 $\theta$ 값에서 빼서 $\theta$를 업데이트 하는 것.
- 로지스틱 회귀의 비용함수는 선형 회귀의 것과 모양이 다르지만 편미분한 것은 선형 회귀의 것과 비슷하다.
- $\theta_j := \theta_j - \alpha \frac{1}{m} \sum_{i=1}^m (h_\theta (x_i) - y_i) x_i$
로지스틱 회귀의 Multi-class Classification
https://drive.google.com/uc?id=1Fy9rLVFtMDz85T_ip794VcaPoweg81Or