Naive Bayes 모델의 스무딩


13

Naive Bayes 예측자는 다음 공식을 사용하여 예측합니다.

P(Y=y|X=x)=αP(Y=y)iP(Xi=xi|Y=y)

여기서 는 정규화 인자입니다. 이를 위해서는 데이터에서 파라미터 P ( X i = x i | Y = y ) 를 추정해야합니다 . k -smoothing 으로이 작업을 수행 하면 추정치를 얻습니다.αP(Xi=xi|Y=y)k

P^(Xi=xi|Y=y)=#{Xi=xi,Y=y}+k#{Y=y}+nik

이 곳에 가능한 값 X . 나는 이것으로 괜찮습니다. 그러나 이전에는niXi

P^(Y=y)=#{Y=y}N

여기서 존재 데이터 세트의 예는. 우리는 왜 이전을 부드럽게하지 않습니까? 또는 오히려, 않습니다 우리는 이전을 원활하게? 그렇다면 어떤 스무딩 파라미터를 선택합니까? 우리는 다른 계산을하고 있기 때문에 k 도 선택하는 것은 약간 어리석은 것처럼 보입니다 . 합의가 있습니까? 아니면 너무 중요하지 않습니까?Nk

답변:


5

#{Xi=xi|Y=y}=0P(Y=y|X=x)=0

예를 들어, 텍스트 문서를 분류 할 때 훈련 데이터에 없거나 특정 클래스에 나타나지 않은 단어를 발견 한 경우에 발생합니다.

P(Y=y)

k


1
일반적으로 평활화의 이유는 데이터가 과적 합되지 않도록하기위한 것입니다. 일부 클래스의 수가 0 인 경우는 특정 초과 적합 사례 (특히 불량한 경우)입니다. 모든 수업이 지켜 질 때 확률을 매끄럽게하고 싶을 수도 있습니다. 나는 명백한 비대칭에 의해 신경 쓰였다 고 가정합니다. Laplace smoothing은 데이터 세트에 추가 관찰이 있다고 가정하는 것에 해당합니다. 이전에 적합 할 때 왜 그러한 관찰을 무시하겠습니까?
Chris Taylor

P(Y=y)P(Xi=xi|Y=y)

"이 상황은 발생하지 않아야합니다. 이것이 수행 된 경우 훈련 데이터에 표시되지 않은 클래스에 객체를 할당하려고 함을 의미합니다." 어 ... 분류자는 이전에 보지 못했던 클래스에 객체를 어떻게 할당합니까 (즉, 훈련 데이터에없는 것)?
Jemenake

@Jemenake이 문제는 일반적으로 Zero-shot learning이라고합니다. 예를 들어 의미 출력 코드를 사용한 Zero-Shot Learning
alto

훈련 데이터 세트를 사용하여 모델을 훈련시킬 때 훈련 데이터 세트에서 발생하는 단어를 사용하여 단어를 만들 수 있습니다. 테스트 세트에서 예측할 때 단어가 아닌 단어를 제거하지 않는 이유는 무엇입니까?
아보카도
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.