02 | 다항 로지스틱 회귀 분석

    예측하고자 하는 분류가 두 개가 아니라 여러 개가 될 수 있는 경우 다항 로지스틱 회귀 분석Multinomial Logistic Regression을 사용한다. 이 방법의 기본 아이디어는 로지스틱 회귀 분석을 확장하는 것이다. 이 절에서는 위키피디아에 설명된 독립 바이너리 회귀의 집합에 따라 모델을 설명한다.[3]

    분류 K를 기준으로 하여 데이터가 각 분류에 속할 확률을 βiXi로 놓는다.

    양변을 e의 지수로 하고 정리하면 다음과 같다.

    확률의 합은 1이므로 위 식의 좌변과 우변을 모두 합하면 다음과 같다.

    이를 정리하면 P(Yi = K를 다음과 같이 구할 수 있다.

    최종적으로 i < K인 경우는 P(Yi = i)는 다음과 같다.

    R에서는 nnet::multinom( )을 사용해 다항 로지스틱 회귀 모델을 작성할 수 있다.

    표 10-2 다항 로지스틱 회귀 모델

    nnet::multinom : 다항 로지스틱 회귀 모델을 생성한다.

    nnet::multinom(
      formula,  # 모델 포뮬러
      data,     # 포뮬러를 적용할 데이터
    )

    반환 값은 nnet 객체다.

    fitted : 모델에 의해 훈련 데이터가 어떻게 적합(fit)되었는지 보인다.

    fitted(
      object  # 모델
    )

    기계 학습 모델은 훈련 데이터에 대한 분류 예측을 잘 수행하도록 파라미터를 수정해가면서 만들어진다. 이를 모델이 훈련 데이터에 적합된다고 말한다. fitted( )의 반환 값은 모델이 훈련 데이터에 어떻게 적합되었는지 보여주는 값들이다.

    predict.multinom : 다항 로지스틱 회귀 모델을 사용한 예측을 수행한다.

    predict.multinom(
      object,   # multinom() 함수로 생성한 nnet 객체
      newdata,  # 예측을 수행할 데이터
      # 예측 결과의 유형. class는 분류를, probs는 각 분류일 확률을 반환한다. 기본값은 class다.
      type=c("class", "probs")
    )

    반환 값은 예측 결과다.

    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.