Em geral, você tem uma opção ao lidar com valores ausentes ao treinar um classificador Bayes ingênuo. Você pode optar por
- Omita registros com quaisquer valores ausentes,
- Omita apenas os atributos ausentes.
Usarei o exemplo vinculado acima para demonstrar essas duas abordagens. Suponha que adicionemos mais um registro de treinamento a esse exemplo.
Outlook Temperature Humidity Windy Play
------- ----------- -------- ----- ----
rainy cool normal TRUE no
rainy mild high TRUE no
sunny hot high FALSE no
sunny hot high TRUE no
sunny mild high FALSE no
overcast cool normal TRUE yes
overcast hot high FALSE yes
overcast hot normal FALSE yes
overcast mild high TRUE yes
rainy cool normal FALSE yes
rainy mild high FALSE yes
rainy mild normal FALSE yes
sunny cool normal FALSE yes
sunny mild normal TRUE yes
NA hot normal FALSE yes
Se decidirmos omitir o último registro devido ao outlook
valor ausente , teríamos exatamente o mesmo modelo treinado conforme discutido no link.
Também podemos optar por usar todas as informações disponíveis neste registro. Poderíamos optar por simplesmente omitir o atributo outlook
desse registro. Isso produziria a seguinte tabela atualizada.
Humidade da temperatura do Outlook
==================== ================= ============= ====
Sim Não Sim Não Sim Não
Ensolarado 2 3 Quente 3 2 Alto 3 4
Encoberto 4 0 Leve 4 2 Normal 7 1
Chuvoso 3 2 Frio 3 1
----------- --------- ----------
Ensolarado 2/9 3/5 Quente 3/10 2/5 Alto 3/10 4/5
Encoberto 4/9 0/5 Leve 4/10 2/5 Normal 7/10 1/5
Chuvoso 3/9 2/5 Fresco 3/10 1/5
Windy Play
================= ========
Sim Não Sim Não
Falso 7 2 10 5
Verdadeiro 3 3
---------- ----------
Falso 7/10 2/5 10/15 15/5
Verdadeiro 3/10 3/5
Observe que há 15 observações para cada atributo , exceto Outlook
que possui apenas 14. Isso ocorre porque esse valor não estava disponível para o último registro. Todo o desenvolvimento continuaria conforme discutido no artigo vinculado.
Por exemplo, no pacote R, a e1071
implementação naiveBayes tem a opção na.action
que pode ser definida como na.omit ou na.pass.