fabr cio olivetti de fran˘ca...construindo a arvore de decis~ao vamos utilizar o erro de classi...

42
´ Arvores de Decis˜ ao Fabr´ ıcio Olivetti de Fran¸ ca Universidade Federal do ABC

Upload: others

Post on 04-Jul-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Arvores de Decisao

Fabrıcio Olivetti de Franca

Universidade Federal do ABC

Topicos

1. Arvores de Decisao

1

Arvores de Decisao

Base de Dados

Relembrando nossa base de dados utilizada na aula passada:

Pele Cor Tamanho Carne Classe

peludo marrom grande dura seguro

peludo verde grande dura seguro

liso vermelho grande macia perigoso

peludo verde grande macia seguro

peludo vermelho pequeno dura seguro

liso vermelho pequeno dura seguro

liso marrom pequeno dura seguro

peludo verde pequeno macia perigoso

liso verde pequeno dura perigoso

peludo vermelho grande dura seguro

liso marrom grande macia seguro

liso verde pequeno macia perigoso

peludo vermelho pequeno macia seguro

liso vermelho grande dura perigoso

liso vermelho pequeno dura

peludo verde pequeno dura2

Base de Dados

Uma outra forma de pensar na solucao para esse problema e atraves de

decisoes baseadas em uma sequencia de perguntas e respostas:

peludo?

Seguro Perigoso

X ×

3

Base de Dados

Cada nova pergunta aumenta nossa certeza em relacao a classificacao da

amostra.

peludo?

Verde?

Perigoso Seguro

Perigoso

X ×

×

4

Arvore de Decisao

Essa tecnica e conhecida como Arvore de Decisao.

peludo?

Verde?

Perigoso Seguro

Perigoso

X ×

×

5

Arvore de Decisao

Cada no da arvore divide os exemplos em dois grupos, cada divisao

subsequente formam novos grupos.

peludo?

Verde?

Perigoso Seguro

Perigoso

X ×

×

6

Arvore de Decisao

Para Regressao, basta fazer com que os nos folhas sejam a media dos

valores-alvo do grupo referente aquele no.

peludo?

Verde?

media media

media

X ×

×

7

Arvore de Decisao

A grande questao e como construir essa arvore partindo dos exemplos de

entrada.

peludo?

Verde?

Perigoso Seguro

Perigoso

X ×

×

8

Construindo a Arvore de Decisao

Assumindo duas classes, escolha um atributo-valor para ser o no inicial e

formule a questao para dividir os dados:

atributo-valor

60/40 30/70

6= =

Os valores nos nos e a proporcao de exemplos da classe1/classe2,

respectivamente.

9

Construindo a Arvore de Decisao

Continue inserindo novos nos com os atributos restantes:

atributo-valor

atributo-valor

90/10 5/95

30/70

6= 6=

=

10

Construindo a Arvore de Decisao

Continue inserindo novos nos com os atributos restantes:

atributo-valor

atributo-valor

90/10 5/95

atributo-valor

80/20 10/90

6= = 6= =

11

Construindo a Arvore de Decisao

Ate onde devemos dividir?

atributo-valor

atributo-valor

90/10 5/95

atributo-valor

80/20 atributo-valor

100/0 0/100

6= = 6=

6= =

12

Construindo a Arvore de Decisao

Todos os nos folhas sao puros...

atributo-valor

atributo-valor

atributo-valor

100/0 0/100

atributo-valor

0/100 100/0

atributo-valor

80/20 atributo-valor

100/0 0/100

6= = 6= =

6=

6= =

13

Construindo a Arvore de Decisao

...ou uma maxima altura e atingida...

atributo-valor

atributo-valor

90/10 5/95

atributo-valor

80/20 atributo-valor

100/0 0/100

6= = 6=

6= =

14

Construindo a Arvore de Decisao

...ou um criterio de desempenho e atingido.

atributo-valor

atributo-valor

90/10 5/95

atributo-valor

80/20 atributo-valor

100/0 0/100

6= = 6=

6= =

15

Construindo a Arvore de Decisao

Na pratica o primeiro criterio causa overfitting pois tende a criar questoes

especıficas ate que os nos folhas contenham apenas um exemplo da base.

Os dois outros criterios costumam serem utilizados em conjunto.

16

Construindo a Arvore de Decisao

Como escolher o melhor atributo-valor para cada divisao?

Pele Cor Tamanho Carne Classe

peludo marrom grande dura seguro

peludo verde grande dura seguro

liso vermelho grande macia perigoso

peludo verde grande macia seguro

peludo vermelho pequeno dura seguro

liso vermelho pequeno dura seguro

liso marrom pequeno dura seguro

peludo verde pequeno macia perigoso

liso verde pequeno dura perigoso

peludo vermelho grande dura seguro

liso marrom grande macia seguro

liso verde pequeno macia perigoso

peludo vermelho pequeno macia seguro

liso vermelho grande dura perigoso

17

Construindo a Arvore de Decisao

Queremos que cada ramificacao nos traga o maximo de informacao!

Pele Cor Tamanho Carne Classe

peludo marrom grande dura seguro

peludo verde grande dura seguro

liso vermelho grande macia perigoso

peludo verde grande macia seguro

peludo vermelho pequeno dura seguro

liso vermelho pequeno dura seguro

liso marrom pequeno dura seguro

peludo verde pequeno macia perigoso

liso verde pequeno dura perigoso

peludo vermelho grande dura seguro

liso marrom grande macia seguro

liso verde pequeno macia perigoso

peludo vermelho pequeno macia seguro

liso vermelho grande dura perigoso

18

Construindo a Arvore de Decisao

Vamos utilizar o erro de classificacao: e = 1−max p(y)

Pele Cor Tamanho Carne Classe

peludo marrom grande dura seguro

peludo verde grande dura seguro

liso vermelho grande macia perigoso

peludo verde grande macia seguro

peludo vermelho pequeno dura seguro

liso vermelho pequeno dura seguro

liso marrom pequeno dura seguro

peludo verde pequeno macia perigoso

liso verde pequeno dura perigoso

peludo vermelho grande dura seguro

liso marrom grande macia seguro

liso verde pequeno macia perigoso

peludo vermelho pequeno macia seguro

liso vermelho grande dura perigoso

19

Construindo a Arvore de Decisao

O erro inicial e 1− 9/14 = 0.36

Pele Cor Tamanho Carne Classe

peludo marrom grande dura seguro

peludo verde grande dura seguro

liso vermelho grande macia perigoso

peludo verde grande macia seguro

peludo vermelho pequeno dura seguro

liso vermelho pequeno dura seguro

liso marrom pequeno dura seguro

peludo verde pequeno macia perigoso

liso verde pequeno dura perigoso

peludo vermelho grande dura seguro

liso marrom grande macia seguro

liso verde pequeno macia perigoso

peludo vermelho pequeno macia seguro

liso vermelho grande dura perigoso

20

Construindo a Arvore de Decisao

9/5 (0.36)

21

Construindo a Arvore de Decisao

Escolhendo se ele tem pele dura ou nao, temos:

dura?

3/3 (0.5) 6/2 (0.25)

6= =

22

Construindo a Arvore de Decisao

A diferenca do erro foi: 0.36− (6/14) · 0.5− (8/14) · 0.25 = 0.00. Nao

houve ganho, a busca para por aqui!

dura?

3/3 (0.5) 6/2 (0.25)

6= =

23

Construindo a Arvore de Decisao

A divisao por erro de predicao nao leva em conta uma distribuicao

uniforme dos exemplos nas divisoes.

dura?

3/3 (0.5) 6/2 (0.25)

6= =

24

Construindo a Arvore de Decisao

Vamos utilizar a entropia: H = −∑n

i=1 p(i) log2 p(i). Inicialmente temos:

−(9/14) log (9/14)− (5/14) log (5/14) = 0.94

9/5 (0.36)

25

Construindo a Arvore de Decisao

Escolhendo se ele tem pele dura ou nao, temos:

dura?

3/3 (0.81) 6/2 (1.00)

6= =

26

Construindo a Arvore de Decisao

A diferenca de entropia fica:

0.94− (8/14) · 0.81− (6/14) · 1.0 = 0.05

dura?

3/3 (0.81) 6/2 (1.00)

6= =

27

Construindo a Arvore de Decisao

Agora temos um ganho!

dura?

3/3 (0.81) 6/2 (1.00)

6= =

28

Construindo a Arvore de Decisao

Por que o erro de classificacao nos enganou?

dura?

3/3 (0.81) 6/2 (1.00)

6= =

29

Erro vs Entropia

A funcao de erro forma um triangulo com pico no centro, a entropia tem

uma curva mais suave com pico tambem no centro:

0.0 0.2 0.4 0.6 0.8 1.0x

0.0

0.2

0.4

0.6

0.8

1.0y

ErroEntropia

30

Erro vs Entropia

Mas qual a diferenca?

0.0 0.2 0.4 0.6 0.8 1.0x

0.0

0.2

0.4

0.6

0.8

1.0

y

ErroEntropia

31

Erro vs Entropia

No erro de predicao, a media entre o erro do no da esquerda e no da

direita tem chances de coincidir com o erro do no central.

0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80x

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1.0y

ErroEntropia

32

Erro vs Entropia

Na entropia, isso nao ocorre:

0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80x

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1.0

y

ErroEntropia

33

Erro vs Entropia

Na pratica a metrica utilizada e o Indice de Gini:

E = 1−∑i=1

np(i)2.

34

Overfitting

As Arvores de Decisao costumam causar overfitting, pois e capaz de se

especializar a nıvel de amostra unica.

Pequenas mudancas nos exemplos podem causar uma grande mudanca

na predicao, dependendo do que for alterado.

Solucao: poda de arvores

35

Poda de arvore

Para a poda das arvores utilizar o erro de predicao como criterio e

suficiente para generalizar a predicao.

A ideia e ”corte as folhas com erro de predicao menor do que x , para

evitar especializacao”.

36

Pontos fortes da Arvore de Decisao

E facil interpretar e converter para uma logica se-entao-senao.

Funciona para qualquer tipo de variavel sem necessidade de

transformacao.

Nao e necessario escalonar ou normalizar variaveis.

37

Arvore de Decisao - Scikit-Learn

from sklearn.tree import DecisionTreeClassifier

clf = DecisionTreeClassifier(criterion=’gini’,

max_features=10, max_depth=5)

clf = clf.fit(X_train, y_train)

yi = clf.predict(xi)

Alterar para DecisionTreeRegressor para regressao.

38

Proxima Aula

Na proxima aula aprenderemos sobre:

• Redes Neurais Artificiais.

47

Atividade 05

Complete os Laboratorios:

Decision Trees Exercises.ipynb

48