이번 포스팅에서는 베이즈 분류기(Bayes Classifier)에 대해서 알아보고자 한다. 여기서 다루는 내용은 다음과 같다.
1. 베이즈 분류기(Bayes Classifier) 정의
1. 베이즈 분류기(Bayes Classifier) 정의
먼저 설명의 편의를 위하여 이진 분류 문제를 생각하기로 하자. 출력 변수 $y$가 가질 수 있는 라벨을 $G=\{1, -1\}$라하자. 분류 문제는 주어진 독립변수(또는 설명변수) $X$에 대하여 $y$를 예측하는 문제이다.
먼저 다음과 같이 분류기 공간 $C^*$를 정의한다.
$$C^* = \{f : S \rightarrow G\}$$
여기서 $S$는 독립변수가 가질 수 있는 값들의 집합이다. 분류기 공간은 주어진 독립변수$X(\in S)$에 대하여 라벨을 출력하는 분류기(분류기도 함수이다)들의 총집합이다. 이제 우리는 분류기 공간에서 최적의 분류기를 찾아야한다.
그렇다면 어떻게 찾을 것인가? 특정 기준을 만족하는 분류기를 찾으면 된다. 그렇다면 특정 기준은 무엇인가? 그 기준을 찾아보자. 분류에서는 다음과 같은 손실 함수 $L$을 생각할 수 있다.
$$L((X, y), f) = I(f(X) \neq y)$$
여기서 $I(A)$는 $A$가 참이면 1, 거짓이면 0을 출력하는 지시 함수(Indicator function)이다. 즉, 손실 함수 $L$은 주어진 독립변수 $X$에 대하여 분류기 $f$가 실제 라벨 $y$를 정확히 예측하면 0, 예측하지 못하면 1의 손실을 발생시킨다(이러한 연유로 $L$을 0-1 Loss라고 부른다).
그리고 손실함수 $L$의 기대값인 위험 함수 $R$은 다음과 같다.
$$\begin{align}R &= E(L((X,y), f)) \\ &= E(I(f(X)\neq y)) \\ &= P(f(X) \neq y)\end{align}$$
이때 $R$을 최소화하는 분류기가 바로 우리가 찾는 최적의 분류기이며 이를 베이즈 분류기라고 한다.
다시 정리하면 베이즈 분류기는 0-1 손실 함수의기대값을 최소화하는 분류기이다(사실 이름과 다르게 베이즈 분류기는 베이지안과 직접적인 관련은 없다).
또한 베이즈 분류기 $f^{\text{Bayes}}$는 다음과 같음을 보일 수 있다.
$$\DeclareMathOperator*{\argmaxB}{argmax} f^{\text{Bayes}}(X)=\argmaxB_{j\in\{1,-1\}}P(y=j|X) \tag{1}$$
이는 다음과 동치이다.
$$f^{\text{Bayes}}(X) = 1\cdot I(P(y=1|X)\geq 0.5) + (-1)\cdot I(P(y=1|X)< 0.5)$$
또한 베이즈 분류기 $f^{\text{Bayes}}$에 대한 위험 함수 $E(I(f^{\text{Bayes}}(X)\neq y))$를 베이즈 위험(Bayes risk)라고 한다.
※(1)의 증명(수식만 보면 멀미가 나는 사람들은 그냥 넘어가도 좋다)※
나는 좀 더 일반적인 내용을 증명하려고 한다. 즉, 라벨 집합 $G=\{1, 2, \ldots, J\}$인 경우 위험 함수 $R$의 베이즈 분류기 $f^{\text{Bayes}}$는 다음과 같음을 증명할 것이다.
$$\DeclareMathOperator*{\argmaxB}{argmax} f^{\text{Bayes}}(X)=\argmaxB_{j\in G}P(y=j|X)$$
먼저 $R$을 풀어서 써보자.
$$\begin{align} R &= E(I(f(X)\neq y)) \\ &= \int_X\sum_{j=1}^JI(f(X)\neq j)P(X, j)dX \\ &= \int_X\sum_{j=1}^JI(f(X)\neq j)P(j | X)P(X)dX \\ &= E_X\left(\sum_{j=1}^JI(f(X)\neq j)P(j | X) \right) \end{align}$$
이제 모든 $X$에 대하여
$$\sum_{j=1}^JI(f^{\text{Bayes}}(X)\neq j)P(j | X) \leq \sum_{j=1}^JI(f(X)\neq j)P(j | X) $$
을 보이면 된다.
주어진 $X$, $f$에 대하여 $f^{\text{Bayes}}(X) = j^*$, $f(X) = j^{**}$라고 하자.
$$\sum_{j=1}^JI(f(X)\neq j)P(j | X) - \sum_{j=1}^JI(f^{\text{Bayes}}(X)\neq j)P(j | X) \\ = \sum_{j\neq j^{**}}P(j | X) - \sum_{j\neq j^*}P(j | X) \\ = P(j^* | X) - P(j^{**} | X) \geq 0 $$
마지막 부등식은 $P(j^* | X) = \max_{j}P(Y=j | X)$이므로 성립한다. □
2. 베이즈 분류기 추정 방법
앞에서 베이즈 분류기가 어떻게 표현되는지 알아보았다. 정확한 베이즈 분류기를 구하기 위해서는 $X$와 $y$의 결합 분포 또는 $X$가 주어졌을 때 $y$의 조건부 분포를 알아야한다. 하지만 대부분의 경우 모른다. 따라서 베이즈 분류기를 데이터를 통해 추정해야 한다.
추정하는 방법은 2가지가 있다.
첫 번째 모든 $j\in G$에 대하여 $P(y = j | X)$를 추정하고 베이즈 분류기를 다음과 같이 추정하는 방법이 있다.
$$\DeclareMathOperator*{\argmaxB}{argmax} \hat{f}^{\text{Bayes}} = \argmaxB_{j\in G} \hat{P}(y=j | X)$$
이 방법을 사용하는 대표적인 예로 로지스틱 모형이 있다. 로지스틱 모형은 이진 분류 문제에서 다음과 같이 조건부 확률 모델링한다.
$$P(y = j | X) = \frac{\exp(\beta_0+\beta_1X)}{1+\exp(\beta_0+\beta_1X)}$$
두 번째 방법은 데이터 $(X_i, y_i), \;\;i=1,\ldots, n$ 에 대하여 위험 함수가 아닌 다음과 같이 경험 위험 함수를 최소화하는 분류기를 찾는 방법이 있다.
$$\frac{1}{n}\sum_{i=1}^nI(f(X_i)\neq y_i)$$
이 방법은 경험 위험 함수가 convex가 아니므로 실제 계산이 어렵고 이론적인 문제가 있다고 알려져 있다. 따라서 경험 위험 함수와 비슷한 대체 손실(Surrogate loss) 함수를 최소화하는 분류기를 찾는 방법이 있다. 이 방법에 대해서는 기회가 된다면 추후 포스팅하겠다.
참고자료
R을 이용한 데이터마이닝 - 박창이, 김용대, 김진석, 송종우, 최호식
'통계 > 머신러닝' 카테고리의 다른 글
6. Least Absolute Deviation Regression에 대해서 알아보자 with Python (0) | 2021.01.26 |
---|---|
[머신 러닝] 5. EM(Expectation-Maximization) Algorithm(알고리즘)에 대해서 알아보자. (0) | 2021.01.19 |
[머신 러닝] 4. 나이브 베이즈 분류기(Naive Bayes Classifier) with Python (7) | 2020.12.26 |
[머신 러닝] 2. K-최근접 이웃 분류기(K-Nearest Neighbor Classifier)에 대하여 알아보자 with Python (0) | 2020.12.15 |
[머신 러닝] 1. 소개 (0) | 2020.11.27 |
댓글