앞서 우리는 선형 회귀를 통해 주어진 데이터가 연속적인 값일 경우 하나의 선으로 회귀시키는 예측 모델을 만들었습니다. 그런데 만약 주어지는 데이터가 범주형이거나 특정 분류로 나눠지는 데이터일 경우 어떻게 해야 할까요?


예를 들어서 동전이 앞면이 나올지 뒷면이 나올지, 아니면 내일 비가 올지, 맑을지, 구름이 낄지 등과 같이 수량이 아닌 확률과 같은 범주형으로 데이터가 주어지는 경우 처럼 말이죠.


이때 사용하는 방법이 바로 로지스틱 회귀(Logistic Regression)입니다.


로지스틱 회귀(Logistic Regression)

로지스틱 회귀법은 주어진 데이터가 1, 2, ..., 100 처럼 연속적인 값이 아닌, 동전이 앞면이 나올 확률, 내일 비가 올 확률과 같이 특정 분류로 나누어 지거나, 확률적으로 나타나는 데이터를 하나의 선으로 회귀 시켜 예측 모델을 만드는 방법입니다.


어떤 강아지가 밤에 짖는 확률은 로지스틱 회귀 모델로 아래처럼 표현 할 수 있습니다.


p( bark | night ) = 밤에 강아지가 짖을 확률


우리는 로지스틱 회귀를 통해 반환된 확률을 두 가지 방법으로 사용할 수 있습니다.

  • 반환된 확률을 있는 그대로 사용
    => p( bark | night ) = 0.05 라고 가정하겠습니다. 우리는 이 정보를 통해 1년에 강아지가 얼마나 짖는지를 로지스틱 회귀 값을 그대로 사용하여 알아 낼 수 있습니다. (p( bark | night ) * 365 = 0.05 * 365 = 18)

  • 반환된 확률을 이진 카테고리로 변환하여 사용
    => 내일 비가 온다/안 온다와 같이 Yes or No의 형태로 매핑(Mapping)하여 사용할 수 있습니다.

시그모이드 함수(Sigmoid Function)

로지스틱 회귀 모델 결과 값이 어떻게 항상 0 과 1 사이의 값으로 나타나는지 궁금할 수 있습니다. 이는 아래와 같이 정의된 시그모이드 함수로 인해 0과 1사이의 값을 출력해 냅니다.


  • y: 특정 예에 대한 로지스틱 회귀 모델의 출력

  • z: b + W1X1 + W2X2 + ... + WnXn    (b: 편향(Bias), w: 모델이 학습된 가중치(weight), x: 특정 값(Feature))

시그모디으 함수의 그래프는 다음과 같이 S자 모양으로 나타납니다. 실제로 많은 자연, 사회현상에서는 특정 변수에 대한 확률값이 선형으로 나타나지 않고, S자 커브 형태로 나타나는 경우가 많습니다.



로그 손실(Log Loss)

로그시틱 회귀 모델에서의 손실 함수는 로그 손실(Log Loss)로 다음과 같이 정의 됩니다.


  • (x,y) ∈ D: 라벨이 있는 예(x, y 쌍)가 많이 포함된 데이터 세트

  • y: 라벨이 있는 예의 라벨(로지스틱 회귀이므로 y 값은 모두 0 또는 1)

  • y': x의 특성 세트에 대한 예측 값(0 ~ 1 사이의 값)


+ Recent posts