Naive Bayes Example


-          Exemplo do uso de Naive Bayes

Age

Spectacle prescription

Astigmatism

Tear production rate

Recommended lences

Young

Myope

No

Reduced

None

Young

Myope

No

Normal

Soft

Young

Myope

Yes

Reduced

None

Young

Myope

Yes

Normal

Hard

Young

Hypermetrope

No

Reduced

None

Young

Hypermetrope

No

Normal

Soft

Young

Hypermetrope

Yes

Reduced

None

Young

Hypermetrope

Yes

Normal

Hard

Pre-presbyopic

Myope

No

Reduced

None

Pre-presbyopic

Myope

No

Normal

Soft

Pre-presbyopic

Myope

Yes

Reduced

None

Pre-presbyopic

Myope

Yes

Normal

Hard

Pre-presbyopic

Hypermetrope

No

Reduced

None

Pre-presbyopic

Hypermetrope

No

Normal

Soft

Pre-presbyopic

Hypermetrope

Yes

Reduced

None

Pre-presbyopic

Hypermetrope

Yes

Normal

None

Presbyopic

Myope

No

Reduced

None

Presbyopic

Myope

No

Normal

None

Presbyopic

Myope

Yes

Reduced

None

Presbyopic

Myope

Yes

Normal

Hard

Presbyopic

Hypermetrope

No

Reduced

None

Presbyopic

Hypermetrope

No

Normal

Soft

Presbyopic

Hypermetrope

Yes

Reduced

None

Presbyopic

Hypermetrope

Yes

Normal

None

Problema1.

 

A tabela abaixo mostra as probabilidades associadas de cada valor de um atributo com os valores da classe do problema1:

 

Age

Young

Pre-presbyopic

Presbyopic

None

4

5

6

Soft

2

2

1

Hard

2

1

1

Pr(None)

4 / 15

5 / 15

6 / 15

Pr(Soft)

2 / 5

2 / 5

1 / 5

Pr(Hard)

2 / 4

1 / 4

1 / 4

Spetacle prescription

Myope

Hypermetrope

 

None

7

8

 

Soft

2

3

 

Hard

3

1

 

Pr(None)

7 / 15

8 / 15

 

Pr(Soft)

2 / 5

3 / 5

 

Pr(Hard)

3 / 4

1 / 4

 

Astigmatism

No

Yes

 

None

7

8

 

Soft

5

0

 

Hard

0

4

 

Pr(None)

7 / 15

8 / 15

 

Pr(Soft)

5 / 5

0 / 5

 

Pr(Hard)

0 / 4

4 / 4

 

Tear production rate

Reduced

Normal

 

None

12

3

 

Soft

0

5

 

Hard

0

4

 

Pr(None)

12 / 15

3 / 15

 

Pr(Soft)

0 / 5

5 / 5

 

Pr(Hard)

0 / 4

4 / 4

 

Recommended lences

None

Soft

Hard

None

15

 

 

Soft

 

5

 

Hard

 

 

4

Pr(None)

15 / 24

 

 

Pr(Soft)

 

5 / 24

 

Pr(Hard)

 

 

4 / 24

 

                Por exemplo, na tabela acima o valor Normal do atributo Tear production rate ocorre 3 vezes para None, 5 para Soft e 4 para Hard. Logo abaixo as informações são escritas na forma de frações, ou probabilidades observadas. Por exemplo, das 15 vezes em que o valor da classe None ocorre, em 12 delas o valor de Tear production rate é Reduced, dando a fração 12 / 15.

                Agora suponhamos que se queira determinar a probabilidade do valor None da classe quando os valores dos atributos são E1(Age = Young), E2(Spetacle presciption = Myope), E3(Astigmatism = Yes), E4(Tear production rate = Normal). Utillizando o teorema de Bayes, chamaremos de evidência E a combinação dos valores acima. Assumindo que estes valores são independentes (dada a classe), sua probabilidade combinada é obtida pela multiplicação das probabilidades da evidência, então

,

após este cálculo a probabilidade deve ser normalizada para que a soma dos valores da classe dê 1, fazendo assim que o denominador da fórmula acima desapareça.

    Um problema com este método é que se um valor particular de um atributo não ocorre no conjunto de treinamento em conjunção com cada valor da classe, ocorrem discrepâncias no método. Suponha que estivéssemos calculando a probabilidade no exemplo acima do valor Soft no atributo Astigmatism quando o valor da classe é Yes. Esta probabilidade seria zero fazendo com que a multiplicação da fórmula acima dê zero não importando o quão grande fossem os outros termos acima.

                Uma estratégia para se resolver este problema é utilizar uma técnica chamada estimador de Laplace. Cada numerador das probabilidades acima tem seu valor adicionado em 1 enquanto que o denominador é adicionado ao número de valores da classe. Por exemplo, quando a classe = none, Age é Young para 4 instâncias, Pre-presbyopic para 5 instâncias e Presbyopic para 6 instâncias. Suas respectivas probabilidades são 4 / 15, 5 / 15, 6 / 15. Então usando o estimador de Laplace teríamos 5 / 18, 6 / 18, 7 / 18. Este método assegura que um valor de atributo que ocorra zero vezes receba uma probabilidade diferente de zero, ainda pequena.

                Usando o estimador de Laplace e normalizando estes números temos então:

 

Age

Young

Pre-presbyopic

Presbyopic

Pr(None)

0.27777778

0.33333333

0.38888889

Pr(Soft)

0.375

0.375

0.25

Pr(Hard)

0.42857143

0.28571429

0.28571429

Spetacle prescription

Myope

Hypermetrope

 

Pr(None)

0.47058824           

0.52941176

 

Pr(Soft)

0.42857143

0.57142857

 

Pr(Hard)

0.66666667           

0.33333333

 

Astigmatism

No

Yes

 

Pr(None)

0.47058824           

0.52941176

 

Pr(Soft)

0.85714286           

0.14285714

 

Pr(Hard)

0.16666667           

0.83333333

 

Tear production rate

Reduced

Normal

 

Pr(None)

0.76470588           

0.23529412

 

Pr(Soft)

0.14285714           

0.85714286

 

Pr(Hard)

0.16666667           

0.83333333

 

Recommended lences

None

Soft

Hard

Pr(None)

0.59259259

 

 

Pr(Soft)

 

0.22222222

 

Pr(Hard)

 

 

0.18518519

 

                Estes probabilidades estão então prontas para serem usadas na fórmula dada acima derivada do teorema de Bayes. Continuando o problema acima, temos:

Pr[ None | E ] = 0.27778 x 0.47059 x 0.52941 x 0.23529 x 0.59259 = 0.009649251

Pr[ Soft | E ] = 0.375 x 0.42857 x 0.14286 x 0.85741 x 0.22222 = 0.00437457

Pr[ Hard | E ] = 0.42857 x 0.66667 x 0.83333 x 0.83333 x 0.18519 = 0.03674386

 

                Normalizando os valores, temos:

 

Probabilidade de None:      0.009649251 = 19%

                                                               0.050767681

Probabilidade de Soft:        0.00437457 = 8.62%

                                                               0.050767681

Probabilidade de Hard:       0.03674386 = 72.38%

                                                               0.050767681

 

-          Missing values

 

Missing values não é um problema grave para o Naive Bayes. Se o atributo Age estivesse faltando no problema1, o cálculo das probabilidades simplesmente omitiria este atributo, resultando em

 

Pr[ None | E ] = 0.47059 x 0.52941 x 0.23529 x 0.59259 = 0.03473703

Pr[ Soft | E ] = 0.42857 x 0.14286 x 0.85741 x 0.22222 = 0.01166552

Pr[ Hard | E ] = 0.66667 x 0.83333 x 0.83333 x 0.18519 = 0.08573585

 

                Os números acima são individualmente um pouco maiores que antes porque um dos atributos está faltando. Normalizando os valores, temos:

 

Probabilidade de None:      0.03473703 = 26.29%

                                                               0.1321384

Probabilidade de Soft:        0.01166552 = 8.83%

                                                               0.1321384

Probabilidade de Hard:       0.08573585 = 64.88%

                                                               0.1321384

 

                Se estivesse faltando um valor no conjunto de treinamento, ele simplesmente não seria incluído na contagem das freqüências. As taxas de probabilidade são baseadas no número de valores que realmente ocorrem do que no número total de instâncias.

 

-          Atributos numéricos

 

Valores numéricos são geralmente manipulados assumindo-se que eles têm uma distribuição de probabilidade normal ou Gaussiana. Para os atributos nominais o cálculo é feito como antes, enquanto que para os atributos numéricos é calculada a média e o desvio padrão para cada classe e para cada atributo numérico. Então para o problema2 teríamos:

 

Outlook

Temperature

Humidity

Windy

Play

 

Yes

No

 

Yes

No

 

Yes

No

 

Yes

No

Yes

No

S

2

3

 

83

85

 

86

85

F

6

2

9

5

O

4

0

70

80

96

90

T

3

3

 

R

3

2

68

65

80

70

 

 

 

64

72

65

95

69

71

70

91

75

 

80

 

75

70

72

90

81

75

S

2/9

3/5

M

73

74.6

M

79.1

86.2

F

6/9

2/5

9/14

5/14

O

4/9

0/5

DP

6.2

7.9

DP

10.2

9.7

T

3/9

3/5

 

R

3/9

2/5

 

                             

 

Onde S = Sunny, O = Overcast, R = Rainy, F = False, T = True, M = Média, DP = Desvio Padrão. A Média é simplemente a soma dos valores dividido pelo número de valores do atributo. O desvio padrão é a raiz quadrada da variância.

A função de densidade de probabilidade para uma distribuição normal com média M e desvio padrão D é a expressão

                Considerando a classe Yes quando Temperature = 66, então o valor da função de densidade de probabilidade é

                Da mesma forma, considerando a classe Yes quando Humidity tem valor = 90, temos

                Caso tenhamos uma nova instância no problema2 onde os valores dos atributos são E1(Outlook = Sunny), E2(Temperature = 66), E3(Humidity = 90), E4(Windy = True). O cálculo das probabilidades dos valores da classe é

 

Pr[ Yes | E ] = 2/9 x 0.0340 x 0.0221 x 3/9 x 9/14 = 0.000036

Pr[ No | E] = 3/5 x 0.0291 x 0.0380 x 3/5 x 5/14 = 0.000136

 

                Normalizando os valores temos:

 

Probabilidade de Yes =      0.000036 = 20.9%

                                                               0.000172

Probabilidade de No =        0.000136 = 79.1%

                                                               0.000172