Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 

README.md

Naive Bayes

Uma forma de lidar com dados ruidosos e imprecisos é utilizando algoritmos baseados no Teorema de Bayes. O Teorema de Bayes assume que a probabilidade de um evento A ocorrer dado um outro evento B, depende da relação entre ambos, além da probabilidade de observar esses eventos de forma independentes. Nessa definição, a probabilidade de ocorrência do evento A e B podem ser estimada pela frequência com que esses eventos ocorrem de forma independente P(A) e P(B). De forma semelhante, é possível estimar a probabilidade de um evento ocorrer dado B para cada evento A por meio da probabilidade P(B|A). Com isso podemos estimar a probabilidade de A ocorrer dado B, ou seja, P(A|B). O Teorema de Bayes pode ser definido como:

De forma análoga podemos reescrever esse teorema para calcular a probabidade de ocorrência de cada uma das classes de uma base de dado para uma amostra :

Aquela classe que maximizar a probabilidade a posteori deve ser a classe com maior probabilidade. Portanto, temos:

Como o denominador é constante para todas as classes , podemos reescrever a expressão como:

Expandindo a segunda parte da equação temos:

Infelizmente é computacionalmente impraticável calcular todas essas probabilidades. Pensando nisso, simplificações são propostas. Uma delas, chamada de Naive Bayes (NB), assume que os valores dos atributos é independente portanto, a probabilidade pode ser decomposta em . Assim, podemos definir a probabilidade de uma amostra pertencer a uma classe como:

As principais vantagens desse algoritmo são: sua eficiência, uma vez que todas as probabilidades podem ser calculadas na etapa de treinamento; a construção do modelo é eficiente além de ser de fácil implementação; o algoritmo também é robusto a ruídos e atributos irrelevantes. As principais desvantagens são: o algoritmo desconsidera a dependência entre os atributos o que pode ser danoso para uma gama de problemas reais; ele traça hiperplanos lineares (o que também pode não ser suficiente dependendo da complexidade do problema); e ele necessita de adaptações quando os atributos são numéricos.

Exemplo Ilustrativo

O conjunto de dados Jogar Tênis é um problema de classificação binária em que pretende-se classificar se uma pessoa deve ou não, dado certas condições climáticas, jogar tênis. Os atributos de entrada são o Tempo, Temperatura, Umidade e Vento. O conjunto tem 14 amostras de treinamento e a última coluna denominada Joga representa os rótulos jogar ou não tênis. Os atributos Tempo e Vento são categóricos e os atributos Temperatura e Umidade são contínuos.

Base de dados Jogar Tênis. Adaptado de Katti Faceli et al., (2011)

Para construir um NB precisamos descobrir as probabilidades associadas dos atributos e das classes para o novo exemplo. Assumindo que o exemplo de teste é (Tempo=Ensolarado, Temperatura=70, Umidade=80 e Vento=Sim), calcule a probabilidade de jogar tênis.

1⁰ Passo:

Probabilidade associada de cada classe:

2⁰ Passo:

Estimar a probabilidades de observar os valores do exemplo de teste para cada classe:

Quando temos atributos numéricos como Temperatura e Unidade, o procedimento consiste em calcular a média geral do atributo e definir esse valor como ponto de corte para o cálculo das probabilidades. Caso a amostra a ser classificada tenha um valor menor do que o ponto de corte, basta calcular a frequência com que isso acontece.

3⁰ Passo:

4⁰ Passo:

Portanto devemos jogar tênis!

Links úteis

Outras versões desse mesmo algoritmo: