Skip to content

Logistic regression

로지스틱 회귀(영어: logistic regression)는 D.R.Cox가 1958년 에 제안한 확률 모델로서 독립 변수의 선형 결합을 이용하여 사건의 발생 가능성을 예측하는데 사용되는 통계 기법이다.

로지스틱 회귀의 목적은 일반적인 회귀 분석의 목표와 동일하게 종속 변수와 독립 변수간의 관계를 구체적인 함수로 나타내어 향후 예측 모델에 사용하는 것이다. 이는 독립 변수의 선형 결합으로 종속 변수를 설명한다는 관점에서는 선형 회귀 분석과 유사하다. 하지만 로지스틱 회귀는 선형 회귀 분석과는 다르게 종속 변수가 범주형 데이터를 대상으로 하며 입력 데이터가 주어졌을 때 해당 데이터의 결과가 특정 분류로 나눠지기 때문에 일종의 분류 (classification) 기법으로도 볼 수 있다.

흔히 로지스틱 회귀는 종속변수가 이항형 문제(즉, 유효한 범주의 개수가 두개인 경우)를 지칭할 때 사용된다. 이외에, 두 개 이상의 범주를 가지는 문제가 대상인 경우엔 다항 로지스틱 회귀 (multinomial logistic regression) 또는 분화 로지스틱 회귀 (polytomous logistic regression)라고 하고 복수의 범주이면서 순서가 존재하면 서수 로지스틱 회귀 (ordinal logistic regression) 라고 한다. 로지스틱 회귀 분석은 의료, 통신, 데이터마이닝과 같은 다양한 분야에서 분류 및 예측을 위한 모델로서 폭넓게 사용되고 있다.

장단점

  • 장점: 계산 비용이 적고, 구현하기 쉬우며, 결과 해석을 위한 지식 표현이 쉽다.
  • 단점: 언더피팅(underfitting) 경향이 있어, 정확도가 낮게 나올 수도 있다.
  • 활용: 수치형 값, 명목형 값.

의사코드

기울기 상승을 위한 의사코드는 아래와 같다.

Start with the weights all set to 1 // 모두 1로 설정된 가중치를 가지고 시작.
Repeat R number of times: // R회 반복.
    Calculate the gradient of the entire dataset // 입력 데이터 집합의 기울기를 계산.
    Update the weights vector by alpha * gradient // 알파 * 기울기로 가중치 벡터를 변경.
    Return the weights vector // 가중치 벡터 변환.

Example

Regression 이 continuous value 를 다룬다면 Classification 은 discrete value 를 다룬다. 따라서 Classification (분류) 의 예는,

  • 이메일이 스팸인지 / 아닌지
  • 온라인 거래가 사기인지 / 아닌지 (Online Transaction: Fraudulent)
  • 종양의 크기(Tumor size)에 대해, 악성(Malignant) 종양인지 / 아닌지

Tumor_size_-malignant-logistic_regression-_figure_2.png

위와 같은 경우, Regression 으로 문제를 풀면 당장은 맞아 보이나, 종양이 이상한 위치에 생겼을 경우 아래와 같이 직선이 크게 변한다.

Tumor_size_-malignant-logistic_regression-_figure_1.png

따라서 이렇게 discrete value 에 대해서는 Regression 보다는 Threshold 에 기반을 두어, h(x) 가 일정 값 이상이면 y=1 로 예측하는 편이 더 정확도가 높아진다. 게다가 regression 은 직선이기 때문에, 0 <= y <= 1 인 y 에 대해서 0보다 작거나, 1보다 더 큰 y 를 만들어낼 수 있다.

이런 이유 때문에 Classification 문제에 Regression 을 잘 사용하지 않는다. 그러나 y 의 범위가 0 <= h(x) <= 1 을 가지는 Logistic Regression 도 있다. 이건 Classification 에 사용되기도 한다.

See also

Favorite site