더북(TheBook)

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")
)

반환 값은 예측 결과다.

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