Mutinomial Logistic Regression 이란 무엇인가?
Multinoial Logistic Regression은 Multiclass 문제를 해결하기 위해 Logistic Regression (로지스틱 회귀) 를 일반화 한 분류 방법이다.
Multinomial Logistic Regression은 분류 문제에서 종속변수가 명목형 (예, 색깔, 수강 과목 등)이고, 그 값의 종류가 2개 보다 많은 경우 사용된다 (예, 색깔의 경우 하얀색, 파란색, 초록색 등).
예를 들면, 어떤 사람이 입고 있는 셔츠의 색을 예측하는 모델을 만들어 보겠다고 가정해보자. 이 경우의 셔츠의 색상은 여러 가지 옵션 (하얀색, 파란색, 초록색 등) 중 하나일 수 있다.
그리고 Multinomial Logistic Regression 모델은 어떤 사람이 선택한 특성 (날씨, 장소, 시간 등)을 기반으로, 그 사람이 선택한 셔츠의 색상이 어떤 색상에 속하는지 각 색상에 대한 확률을 구한 후에, 가장 높은 확률을 가진 색상을 예측 결과로 반환한다.
1. Multinomial Logistic Regression 의 원리
Multinomial Logistic Regression 은 Softmax 함수를 사용하여 각 클래스에 속할 확률을 계산한다.
Softmax 함수는 다음과 같은 수학적 형태를 가진다:
$$ P(y=k|x) = \frac{exp(x\cdot \beta _k)}{\sum_{j=1}^{K}exp(x\cdot \beta _j)}$$
여기서:
- $P(y=k|x)$: 주어진 입력 $x$에 대해 클래스 $k$가 선택될 확률
- $exp$: 지수함수
- $x$: 입력 특성 벡터(feature vector)
- $\beta _k$: 클래스 $k$에 대한 회귀 계수 벡터
- $K$: 클래스의 총 개수
Softmax 함수는 각 클래스에 대해 계산된 점수를 정규화하여 총합이 1이 되도록 만든다. 이 결과를 바탕으로 모델은 가장 높은 확률을 가진 클래스를 최종 예측 값으로 선택한다.
2. Multinomial Logistic Regression을 사용하는 방법
이 모델은 Python의 scikit-learn 라이브러리에서 간단하게 사용할 수 있다.
예를 들어, Iris 데이터 세트에서 꽃의 종류를 예측하는 모델을 만드는 코드는 다음과 같다.
from sklearn.linear_model import LogisticRegression
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
# 데이터 로드
iris = load_iris()
X = iris.data
y = iris.target
# 훈련 및 테스트 데이터로 분할
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
# 다항 로지스틱 회귀 모델 생성
model = LogisticRegression(multi_class='multinomial', solver='lbfgs', max_iter=200)
model.fit(X_train, y_train)
# 모델 평가
score = model.score(X_test, y_test)
print(f"Test Accuracy: {score:.2f}")
위 코드는 Iris 데이터 세트를 사용하여 꽃의 종류를 예측하는 Multinomial Logistic Regression 모델을 훈련하고 평가한다.
결과는 Accuracy: 1로 Iris 데이터에 한해서 높은 성능을 보이는 것을 볼 수 있다.
결론
Multinomial Logistic Regression은 Multiclass 분류 문제를 해결하는데 유용한 알고리즘이다. 이햐하기 쉬운 모델링을 제공하는 동시에 해석 가능성이 높다는 장점이 있지만, 비선형 패턴을 잘 포착하지 못하는 한계가 있으므로, 경우에 따라서는 더 복잡한 알고리즘을 고려해야 할 수도 있다.
참고자료
https://en.wikipedia.org/wiki/Multinomial_logistic_regression