Search
Duplicate

Machine Learning/ 로지스틱 회귀

주의) 이 페이지에서는 공식의 유도 과정 같은 것은 정리하지 않는다. 공식의 유도 과정은 <코세라 강의> 참조.

로지스틱 회귀 (Logistic Regression)

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

로지스틱 회귀의 가설함수

로지스틱 회귀의 가설함수는 시그모이드 함수를 이용한다. –시그모이드 함수는 g(z)g(z)라고 표기한다.
hθ(x)=g(z)=11+ezh_{\theta}(x) = g(z) = \frac{1}{1 + e^{-z}}
z=θTxz = \theta^T x
θ\theta는 파라미터 θ\theta의 벡터이고, xx는 feature들의 벡터이다. θ\theta의 전치행렬과 xx의 곱은 선형회귀에서 사용했던 가설함수와 같은 의미가 된다.
위의 가설함수를 바탕으로 데이터 사이에 영역을 구분한 것을 Decision Boundary라고 한다.
데이터가 Decision Boundary의 어느 쪽에 있느냐에 따라 분류에 속하는지 아닌지를 알 수 있다.

로지스틱 회귀의 비용함수

로지스틱 회귀의 비용함수 개념 자체는 선형 회귀의 비용함수와 같다. 가설함수와 실제 데이터의 차이를 합산하는 것. 다만 log를 이용해 계산하는 부분에 차이가 있다.
J(θ)=1m i=1m[yiloghθ(xi)+(1yi)log(1hθ(xi))]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를 업데이트 하는 것.
로지스틱 회귀의 비용함수는 선형 회귀의 것과 모양이 다르지만 편미분한 것은 선형 회귀의 것과 비슷하다.
θj:= θjα1mi=1m(hθ(xi)yi)xi\theta_j := \theta_j - \alpha \frac{1}{m} \sum_{i=1}^m (h_\theta (x_i) - y_i) x_i

로지스틱 회귀의 Multi-class Classification

친구, 가족, 직장 동료와 같이 분류가 여러개인 경우엔 모든 분류에 대해 로지스틱 회귀를 돌려보고 결과가 가장 큰 분류에 넣으면 된다.
결과가 친구 0.5, 가족 0.8, 직장 동료 0.1 이라고 나오면 가족인 것이다.

로지스틱 회귀의 Feature Scaling

로지스틱 회귀의 Feature Scaling 개념 자체는 선형 회귀의 것과 동일하다.
(xi–해당 feature의 평균값)(해당 feature의 max 값–해당 feature의 min 값){(x_{i} – \text{해당 feature의 평균값}) \over (\text{해당 feature의 max 값} – \text{해당 feature의 min 값})}
max – min 값이 아니라 표준편차를 써도 좋다고 한다.

로지스틱 회귀의 Regularization

로지스틱 회귀의 Regularization 개념 자체는 선형 회귀의 것과 동일하다.
J(θ)=1mi=1m[yiloghθ(xi)+(1yi)log(1hθ(xi))]+λ2mj=1nθj2J(\theta) = - \frac{1}{m} \sum_{i=1}^m [ y_i log h_\theta (x_i) + (1 - y_i) log (1 - h_\theta (x_i)) ] + \frac{\lambda}{2m} \sum_{j=1}^n \theta_j^2