실습 · 연습문제 1개
1차원 가우시안 생성 분류기 gaussian-generative-classifier
생성 모델은 와 를 학습하고, 분류할 때는 Bayes 정리로 를 계산한다. 함수 fit_predict_proba(x_train, y_train, x_new)를 완성해, 새 입력마다 를 반환한다.
모델은 다음과 같다.
- 클래스 사전확률: , 학습 데이터에서 클래스 의 비율
- 클래스 조건부분포: . 평균 는 클래스마다 다르고, 분산 은 두 클래스가 공유한다.
- 는 클래스 의 표본 평균, 은 각 점에서 자기 클래스 평균을 뺀 편차 제곱의 평균(전체 으로 나눈 최대우도 추정)이다.
| 인자 | shape | 뜻 |
|---|---|---|
x_train |
(N,) |
학습 입력 |
y_train |
(N,) |
0 또는 1 |
x_new |
(M,) |
확률을 계산할 입력 |
반환값의 shape은 (M,)이다. 데이터에서 먼 에서는 가우시안 밀도가 0으로 언더플로할 수 있으므로, 로그 밀도의 차이로 계산하는 편이 안전하다.
테스트는 손으로 계산한 값과의 비교, 확률의 범위, 그리고 분산을 공유하면 가 의 선형 함수에 sigmoid를 씌운 꼴(로지스틱 회귀와 같은 꼴)이 된다는 성질을 확인한다. 생성 모델로 학습해도 판별 모델과 같은 형태의 가 나온다는 뜻이다.