[손실 함수 비교] MSE vs 푸아송(Poisson)
푸아송 분포는 일정한 시간이나 구간에서 어떤 일이 몇 번 발생하는지를 다룰 때 사용하는 확률 분포임.
예를 들면 다음과 같은 데이터에 활용 가능.
- 하루 주문 건수
- 시간당 서버 요청 수
- 콜센터 문의 건수
- 노선별 운송 건수
- 설비 고장 횟수
공통점은 0, 1, 2, 3...처럼 발생 횟수를 세는 카운트 데이터라는 점임.
1. 푸아송 분포의 기본 개념
하루 평균 1건 발생하는 일이 있다고 가정.
푸아송 분포를 이용하면 다음과 같은 확률 계산 가능.
- 오늘 0건 발생할 확률
- 정확히 1건 발생할 확률
- 2건 이상 발생할 확률
확률식은 다음과 같음.
P(X=k) = e^(-λ) · λ^k / k!
λ: 평균 발생 횟수k: 실제 발생 횟수e: 자연상수k!: 팩토리얼
예를 들어 하루 평균 발생량이 0.5건이라면, 하루 동안 실제로 0건 또는 1건이 발생할 확률 계산 가능.
2. MSE와 푸아송 손실의 차이
머신러닝의 손실 함수는 예측값이 실제값과 얼마나 다른지 계산하는 기준임.
MSE
MSE는 실제값과 예측값 차이를 제곱하는 방식.
MSE = (y - ŷ)²
예시.
실제값 : 0
예측값 : 0.4
MSE = (0 - 0.4)² = 0.16
키, 온도, 가격처럼 일반적인 연속형 수치를 예측할 때 많이 사용하는 방식.
다만 카운트 데이터를 일반 회귀로 처리할 경우 모델 구조에 따라 -0.1, 0.4, 1.7과 같은 예측 발생 가능.
Poisson
푸아송 손실은 목표값을 일반적인 연속형 수치가 아니라 발생 횟수로 보고 학습하는 방식.
대표적인 Poisson 회귀에서는 다음과 같이 평균 발생량을 표현함.
λ = exp(f(x))
지수 함수의 결과는 항상 양수이므로 예상 발생량이 음수가 되지 않는 구조.
또한 실제값이 0인 데이터도 푸아송 확률모형 안에서 자연스럽게 학습 가능.
다만 푸아송을 사용한다고 예측값이 항상 0, 1, 2 같은 정수가 되는 것은 아님.
0.05
0.4
1.2
같은 값도 정상적인 예측값이며, 예상되는 평균 발생량을 의미함.
3. 0이 많은 데이터에서 푸아송을 검토하는 이유
예를 들어 한 노선의 일주일 운송량이 다음과 같은 경우.
| 요일 | 실제 건수 |
|---|---|
| 월 | 0 |
| 화 | 0 |
| 수 | 1 |
| 목 | 0 |
| 금 | 2 |
| 토 | 0 |
| 일 | 0 |
전체 7일 중 5일이 0건인 형태.
일반 회귀에서는 다음과 같은 예측 가능.
| 실제값 | 일반 회귀 예측 예시 |
|---|---|
| 0 | 0.40 |
| 0 | 0.30 |
| 1 | 0.80 |
| 0 | 0.20 |
| 2 | 1.60 |
| 0 | -0.10 |
| 0 | 0.30 |
이 자체가 잘못된 것은 아니지만 카운트 데이터에서는 다음 문제 발생 가능.
- 음수가 존재할 수 없는 데이터에서 음수 예측 가능성
- 카운트 데이터의 분포 특성 미반영
- 0과 작은 값이 많은 구간에서 별도 보정 필요 가능성
푸아송 방식은 이런 데이터를 카운트 문제로 직접 학습할 수 있다는 점이 주요 장점.
단순히 0이 많다는 이유만으로 푸아송이 항상 더 좋은 것은 아니며 실제 검증 결과 확인 필요.
4. 선택 기준
| 구분 | MSE | Poisson |
|---|---|---|
| 주요 대상 | 일반 연속형 데이터 | 카운트 데이터 |
| 대표 예시 | 가격, 온도, 길이 | 주문 수, 운송 건수, 접속 수 |
| 음수 예측 | 모델에 따라 가능 | 일반적인 Poisson 회귀에서는 방지 가능 |
| 0 처리 | 별도 구조 없음 | 카운트 분포 안에서 처리 |
| 예측값 | 실수 | 실수 형태의 평균 발생량 |
MSE가 적합한 경우
- 연속적인 수치 예측
- 목표값이 카운트가 아닌 경우
- 오차의 절대적인 크기가 중요한 경우
Poisson을 검토할 경우
- 목표값이
0, 1, 2...형태의 발생 건수 - 음수가 존재할 수 없는 데이터
- 0 또는 작은 값이 자주 발생하는 데이터
- 주문량, 운송량, 장애 건수 등 발생 횟수 예측