Como o Naive Bayes é um classificador linear?

31

Eu já vi o outro tópico aqui, mas não acho que a resposta tenha satisfeito a pergunta real. O que eu tenho lido continuamente é que Naive Bayes é um classificador linear (por exemplo: aqui ) (de modo que traça um limite de decisão linear) usando a demonstração de log odds.

No entanto, simulei duas nuvens gaussianas e ajustei um limite de decisão e obtive os resultados como tal (biblioteca e1071 em r, usando naiveBayes ()) 1- Verde, 0 - Vermelho

Como podemos ver, o limite de decisão é não linear. Ele está tentando dizer que os parâmetros (probabilidades condicionais) são uma combinação linear no espaço de log, em vez de dizer que o próprio classificador separa os dados linearmente?

Kevin Pei
fonte
como você criou o limite de decisão? Suspeito que isso tenha a ver com a sua rotina adequada e não com o verdadeiro limite de decisão do classificador. normalmente alguém geraria um limite de decisão calculando a decisão em cada ponto do seu quadrante.
seanv507
Foi o que fiz, peguei os dois intervalos de X = [Min (x), Max (x)] e Y = [Min (Y), Max (Y)] com um espaçamento de 0,1. I então equipado todos os pontos de dados com o classificador e treinados encontrados pontos de modo a que as probabilidades logarítmicas estavam entre -0,05 e 0,05
Kevin Pei

Respostas:

30

p(xic)

Você pode escrever qualquer classificador ingênuo de Bayes como *

p(c=1x)=σ(ilogp(xic=1)p(xic=0)+logp(c=1)p(c=0)),

σp(xic)

p(xic)=hi(xi)exp(uicϕi(xi)Ai(uic)),

e, portanto

p(c=1x)=σ(iwiϕi(xi)+b),

Onde

wi=ui1ui0,b=logp(c=1)p(c=0)i(Ai(ui1)Ai(ui0)).

ϕi

p(xic)ϕi(xi)=(xi,xi2)

wi1=σ12μ1σ02μ0,wi2=2σ022σ12,bi=logσ0logσ1,

p(c=1)=p(c=0)=12


* Veja como obter esse resultado:

p(c=1x)=p(xc=1)p(c=1)p(xc=1)p(c=1)+p(xc=0)p(c=0)=11+p(xc=0)p(c=0)p(xc=1)p(c=1)=11+exp(logp(xc=1)p(c=1)p(xc=0)p(c=0))=σ(ilogp(xic=1)p(xic=0)+logp(c=1)p(c=0))
Lucas
fonte
Obrigado pela derivação, que agora entendo, você pode explicar as notações na equação 2 e abaixo? (u, h (x_i), phi (x_i), etc) P (x_i | c) está sob uma família exponencial, simplesmente pegando o valor do pdf?
Kevin Pei
uϕ
11
ϕ(x)=(x,x2)w
Acho esta resposta enganosa: como apontado no comentário, e a resposta logo abaixo, o ingênuo gaussiano Bayes não é linear no espaço original, mas em uma transformação não linear deles. Portanto, não é um classificador linear convencional.
Gael Varoquaux
p(xi|c)ϕi(xi)=(xi,xi2)T(x)x/σ
8

É linear apenas se as matrizes de variação condicional da classe forem as mesmas para as duas classes. Para ver isso, anote a razão das partes posteriores do log e você obterá apenas uma função linear se as variações correspondentes forem as mesmas. Caso contrário, é quadrático.

axk
fonte
3

Eu gostaria de acrescentar um ponto adicional: a razão de uma certa confusão está no que significa estar executando a "classificação Naive Bayes".

Sob o tópico amplo de "Análise Gaussiana Discriminante (GDA)", existem várias técnicas: QDA, LDA, GNB e DLDA (DA quadrática, DA linear, DA bayes ingênuas gaussianas, LDA diagonal). [ATUALIZADO] O LDA e o DLDA devem ser lineares no espaço dos preditores fornecidos. (Veja, por exemplo, Murphy , 4.2, pág. 101 para DA e pág. 82 para NB. Nota: GNB não é necessariamente linear. NB discreto (que usa uma distribuição multinomial sob o capô) é linear. Você também pode conferir Duda , Seção Hart & Stork 2.6). O QDA é quadrático, como outras respostas apontaram (e acho que é o que está acontecendo no seu gráfico - veja abaixo).

Σc

  • Σc
  • Σc=Σ
  • Σc=diagc
  • Σc=diag

Embora os documentos do e1071 afirmem que ele está assumindo independência condicional de classe (ou seja, GNB), desconfio que ele esteja realmente fazendo QDA. Algumas pessoas confundem "Bayes ingênuos" (fazendo suposições de independência) com "regra simples de classificação bayesiana". Todos os métodos GDA são derivados do posterior; mas apenas o GNB e o DLDA usam o primeiro.

Um grande aviso: não li o código-fonte e1071 para confirmar o que está fazendo.

MrDrFenner
fonte