Machine Learning/ 로지스틱 회귀

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

로지스틱 회귀 (Logistic Regression)

http://www.puzzlr.org/write-your-own-logistic-regression-function-in-r/

  • 데이터를 분류하기 위한 방법
    • 메일이 스팸인지 아닌지, 종양이 양성인지 음성인지를 구분한다.
  • 특정 데이터를 분류하는 기준(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
    • θ는 파라미터 θ의 벡터이고, x는 feature들의 벡터이다. θ의 전치행렬과 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_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 값)
    • max – min 값이 아니라 표준편차를 써도 좋다고 한다.

로지스틱 회귀의 Regularization

  • 로지스틱 회귀의 Regularization 개념 자체는 선형 회귀의 것과 동일하다.
    • 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)) ] + \frac{\lambda}{2m} \sum_{j=1}^n \theta_j^2
[ssba]

The author

지성을 추구하는 디자이너/ suyeongpark@abyne.com

댓글 남기기

This site uses Akismet to reduce spam. Learn how your comment data is processed.