Lesson 4: Decision Trees

2,643 views

Published on

The objective of this lesson is to introduce the most popular algorithms for decision tree induction (ID3, c5.4) based on a greedy search strategy. More information is given in the course site: https://sites.google.com/site/gladyscjaprendizagem/program/decision-trees

Published in: Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,643
On SlideShare
0
From Embeds
0
Number of Embeds
437
Actions
Shares
0
Downloads
92
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Lesson 4: Decision Trees

  1. 1. Capítulo 4<br />Aprendizagem de Árvores de Decisão<br />
  2. 2. Figura extraída dos acetatos de Introduction to Data Mining  P. Tan, M.Steinbach, V.Kumar <br />Aprendizagem SupervisadaEsquema Geral<br />Um conjunto de treino com exemplos rotulados é usado para treinar o classificador. Cada exemplo representa um objecto descrito pelos seus atributos e a sua classe. <br />1º. Um algoritmo de aprendizagem é executado para induzir um classificador a partir do conjunto de treino <br />conjunto de exemplos sem rótulos<br />2º. Uma vez construído o classificador, este pode ser usado para classificar futuros exemplos<br />Aprendizagem Computacional Gladys Castillo, Universidade de Aveiro<br />
  3. 3. Modelos de Classificação Supervisada<br />Árvores de decisãoQuinlan, 1986; Breiman y col. 1984<br />Classificadores baseados em regrasClark y Nibblet, 1989; Cohen, 1995; Holte, 1993<br />Classificadores baseados em instâncias<br />Classificadores k–NNCovert & Hart, 1967; Dasarathy, 1991<br />Classificadores Bayesianos<br />Naïve BayesDuda & Hart, 1973<br />Redes BayesianasPearl, 1988<br />Redes NeuronaisMcCulloch & Pitts, 1943<br />Máquinas de suporte vectorialCristianini & Shawe–Taylor,2000<br />Aprendizagem Computacional Gladys Castillo, Universidade de Aveiro<br />
  4. 4. Problema de Classificação: x1, x2 - 2 variáveis preditoras5 classes  C<br /> f: x1x2 C<br />Figura extraída dos acetatos sobre árvores de decisão de João Gama<br />Árvore de Decisão <br />raiz<br />regra<br />nó de decisão<br />Cada nó de decisão contem um teste num atributo<br />Cada ramo descendente corresponde a um possível valor deste atributo.<br />Cada folha está associada a uma classe.<br />Cada percurso na àrvore (da raiz à folha) corresponde a uma regra de classificação.<br />folhas<br />IFx1 < a1ANDx2 < a3THEN<br />Aprendizagem Computacional Gladys Castillo, Universidade de Aveiro<br />
  5. 5. Problema de Classificação: x1, x2 - 2 variáveis preditoras5 classes  C<br /> f: x1x2 C<br />Figura extraída dos acetatos sobre árvores de decisão de João Gama<br />Árvore de decisãoEspaço de Atributos<br />No espaço definido pelos atributos:<br />cada folha corresponde a uma região: um hiper-rectângulo<br />a intersecção dos hiper-rectângulos = vazía <br />a união dos hiper-rectângulos = espaço completo<br />Aprendizagem Computacional Gladys Castillo, Universidade de Aveiro<br />
  6. 6. Figura extraída dos acetatos de Introduction to Data Mining  P. Tan, M.Steinbach, V.Kumar <br />Árvore de Decisão Exemplo 2: Atribuição de Crédito Bancário<br />Conjunto de Treino<br />Refund<br />Yes<br />No<br />Aprender<br />Marital State<br />NO<br />Married<br />Single, Divorced<br />TaxInc<br />NO<br />< 80K<br />> 80K<br />YES<br />NO<br />Aprendizagem Computacional Gladys Castillo, Universidade de Aveiro<br />
  7. 7. NO<br />Figura extraída dos acetatos de Introduction to Data Mining  P. Tan, M.Steinbach, V.Kumar <br />Árvore de Decisão Exemplo 2: Atribuição de Crédito Bancário<br />Conjunto de Treino<br />Outra árvore para representar o mesmo problema <br />MarSt<br />Single, Divorced <br />Married<br />Refund<br />NO<br />No<br />Yes<br />TaxInc<br />> 80K<br />< 80K<br />YES<br />NO<br />Usando diferentes algoritmos podemos obter diferentes árvores para ajustar (representar) os mesmos dados<br />Aprendizagem Computacional Gladys Castillo, Universidade de Aveiro<br />
  8. 8. Refund<br />No<br />Yes<br />No<br />MarSt<br />NO<br />Married<br />Single Divorced<br />TaxInc<br />NO<br />Married <br />< 80K<br />> 80K<br />YES<br />NO<br />Figura extraída dos acetatos de Introduction to Data Mining  P. Tan, M.Steinbach, V.Kumar <br />Árvores de DecisãoClassificação de um novo exemplo<br />Novo exemplo<br />Começar pela raiz da árvore<br />Atribuir Cheat = “No”(engano, fraude)<br />Aprendizagem Computacional Gladys Castillo, Universidade de Aveiro<br />
  9. 9. Esta árvore de decisão foi obtida com a implementação do algoritmo C4.5 no software RapidMiner<br />Árvores de Decisão & Lógica<br />Cada classe = disjunção de conjunções das condições aplicadas aos valores dos diversos atributos<br />Os ramos na árvore são disjuntos<br />Cada ramo na árvore = conjunção de condições<br />Will I play golf today? = “Yes”<br />(Outlook=overcast)  (Outlook=rainWind = false) (Outlook = sunnyHumidity <= 77.5 )<br />Indução<br />Aprendizagem Computacional Gladys Castillo, Universidade de Aveiro<br />
  10. 10. Árvores de Decisão & Lógica<br />Cada classe = disjunção de conjunções das condições aplicadas aos valores dos diversos atributos<br />Os ramos na árvore são disjuntos<br />Cada ramo na árvore = conjunção de condições<br />Problema de Classificação Binário<br />Árvore de Decisão<br />X1 Xor X2<br />Aprendizagem Computacional Gladys Castillo, Universidade de Aveiro<br />
  11. 11. Aprendizagem Supervisada<br />Seja X=X1 xX2… xXn o espaço de atributos para um problema dado e C ={c1, c2, …,cm}um conjunto de classes definidas em X<br />Dado:um conjuntoD={ <x(1),c(1)>, <x(2), c(2)>, …. <x(N), c(N)> } com N exemplos previamente classificados tal quex(k) X, c(k)  C , k =1…NInduzir: um classificador (hipótese) h: X Ccapaz de predizer o melhorpossível a classe de futuros exemplos de X<br />h<br />Supervised Learning <br />Algorithm<br />aprendizagem<br />Saída: um classificador que aproxima o melhor possível a função alvo f: X  C “oculta” nos dados<br />hipótese<br />função alvó<br />para cada futuro exemplo xa classe atribuída é c= h(x)  f(x)<br />Aprendizagem Computacional Gladys Castillo, Universidade de Aveiro<br />
  12. 12. Hypothesis in Machine Learning<br />Hypothesis – the current target function approximation<br />the current hypothesis to what the ideal target function may be<br />Hypothesis space – the set of all possible hypotheses from which the target function is approximated (i.e. learnt) through the machine learning process<br />Machine Learning is SEARCH<br />search through the hypothesis space for a single, simplest hypothesis that is consistent with the training data<br />Search - a discreteoptimizationproblemwithtwomainissues:<br />how to search the space of candidate  search strategy<br />what scoring function to optimize for  objective function<br />Aprendizagem Computacional Gladys Castillo, Universidade de Aveiro<br />
  13. 13. Indução de Árvores de Decisão<br />Decision Tree<br />Aprendizagem Computacional Gladys Castillo, Universidade de Aveiro<br />
  14. 14. Indução de Árvores de Decisão<br />O problema de construir uma árvore de decisão consistente com um conjunto de exemplos é um problema NP-completo<br /> implementar algoritmos heurísticos <br />Top Down Induction of Decision Trees <br />Greedy TDIDT: (estratégia de busca gulosa)<br />guia a busca sobre o espaço de possíveis árvores<br />particiona os exemplos segundo um teste do atributo que optimiza um critério de divisão dado<br />constrói a árvore de uma forma recursiva e descendenteestratégia “dividir para conquistar”<br />algoritmo míope: toma decisão olhando apenas um passo em frente; não reconsidera as opções tomadas<br />Aprendizagem Computacional Gladys Castillo, Universidade de Aveiro<br />
  15. 15. Algoritmos da família TDIDTIdeia Base<br />Top Down Induction of Decision Trees <br />Início: Começar com uma árvore vazia <br />Escolher o melhor atributo A como raízmelhor  mais informativo  que melhor discrimina os exemplos dados<br />Particionar os exemplos de acordo com os valores de A <br />Para cada valor de A:<br />estender a árvore adicionando um ramo (subárvore)<br />passar os exemplos para as folhas<br />Para cada folha:<br />se todos os exemplos são da mesma classe associar essa classe à folha<br />senão repetir os passos 1 a 4 (procedimento recursivo)<br />Aprendizagem Computacional Gladys Castillo, Universidade de Aveiro<br />
  16. 16. TDIDT Algorithm<br />Refund<br />Refund<br />Yes<br />No<br />Yes<br />No<br />Don’t <br />Cheat<br />Marital<br />Status<br />Don’t <br />Cheat<br />Marital<br />Status<br />Single,<br />Divorced<br />Refund<br />Married<br />Married<br />Single,<br />Divorced<br />Yes<br />No<br />Don’t <br />Cheat<br />Taxable<br />Income<br />Don’t <br />Cheat<br />Cheat<br />Don’t <br />Cheat<br />Cheat?<br />< 80K<br />>= 80K<br />Cheat<br />Don’t <br />Cheat<br />dividir<br />Refund =NO  MaritalStat.= Single/Divorced<br />Income < 80K<br />dividir<br />Income > 80K<br />Aprendizagem Computacional Gladys Castillo, Universidade de Aveiro<br />
  17. 17. Algoritmos da família TDIDTPseudocódigo<br />Entrada: conjunto de exemplos Exs, conjunto de Atributos Ats<br />Saída: árvore de decisão <br />funçãoGeraArvore(Exs, Ats) {<br />se (exemplos(Exs) são todos da mesma classe c C)<br />retornar folha com valor da classe c<br />se (Ats = ) <br />retornar folha com o valor da classe maioritária em Exs<br />A selecciona em Ats o atributo que maximizacritério_divisão(Exs)<br />para cada valorv no domínio do atributo AExs(v) {Exs A = v }<br />se (Exs(v) = ) SA(v)  folha com o valor da classe maioritária em Exscaso contrário<br />SA(v)  GeraArvore(Exs(v), AtsA} <br /> }<br /> retornar A como nó de decisão e SA(v) como sub-árvores descendentes<br />}<br />Aprendizagem Computacional Gladys Castillo, Universidade de Aveiro<br />
  18. 18. Como especificar a condição de teste do atributo?<br />Depende do tipo de atributo<br />Nominal<br />Ordinal<br />Contínuo<br />Depende de como dividir<br />em dois (2-way split)<br />em vários (multi-way split)<br />Aprendizagem Computacional Gladys Castillo, Universidade de Aveiro<br />
  19. 19. CarType<br />Family<br />Luxury<br />Sports<br />CarType<br />CarType<br />{Family, Luxury}<br />{Sports, Luxury}<br />{Sports}<br />{Family}<br />Partição de Atributos Nominais<br />Multi-way split:Usar tantas partições quantos valores<br />Binary split:Dividir os valores em dois subconjuntos. Precisa-se encontrar o particionamento óptimo<br />OR<br />Aprendizagem Computacional Gladys Castillo, Universidade de Aveiro<br />
  20. 20. Partição de Atributos Ordinais<br />Size<br />Small<br />Large<br />Medium<br />Size<br />Size<br />Size<br />{Medium, Large}<br />{Small, Medium}<br />{Small, Large}<br />{Small}<br />{Large}<br />{Medium}<br />Multi-way split:Usar tantas partições quantos valores<br />Binary split:Dividir os valores em dois subconjuntos. Precisa-se encontrar o particionamento óptimo<br />OR<br />OR<br />Aprendizagem Computacional Gladys Castillo, Universidade de Aveiro<br />
  21. 21. Partição de Atributos Contínuos<br />Multi-way split:<br />os intervalos podem ser determinados usando um método de discretização (iguais intervalos, iguais frequências, etc.)<br />Binary split:(A < v) or (A  v)<br /> considerar todas as possíveis partições e seleccionar a melhor<br /> pode resultar computacionalmente custoso<br />Aprendizagem Computacional Gladys Castillo, Universidade de Aveiro<br />
  22. 22. Qual atributo seleccionar?<br /><ul><li>Greedy TDIDT: (estratégia gulosa ou míope)
  23. 23. guia a procura sobre o espaço de possíveis árvores
  24. 24. particiona os exemplos segundo um teste do atributo que optimiza um critério de divisão
  25. 25. constrói a árvore de uma forma recursiva e descendente</li></ul>Before Splitting: 10 records of class 0, 10 records of class 1<br />Qual atributo escolher para testar num dado nó? Qual a melhor condição de teste?<br />Aprendizagem Computacional Gladys Castillo, Universidade de Aveiro<br />
  26. 26. Qual a melhor divisão?<br />Uma divisão que mantêm as proporções de classes em todas as partições é inútil<br />Uma divisão onde em cada partição todos os exemplos são da mesma classe tem utilidade máxima<br />Nós com distribuição de classe homogénea são preferidos<br />Valorizar a impureza das partições  medir impureza de um nó<br />Nó não-homogéneo<br />Alto grau de impureza<br />Nó homogéneo<br />Sem impureza<br />Aprendizagem Computacional Gladys Castillo, Universidade de Aveiro<br />
  27. 27. Medidas de Impureza de um Nó<br />Para um problema com duas classes<br />Gini Index<br />Entropy<br />Misclassification error<br />Aprendizagem Computacional Gladys Castillo, Universidade de Aveiro<br />
  28. 28. Entropia Medida de Impureza<br />A entropia mede o grau de impureza de um conjunto de exemplos <br />Dado um conjunto S com exemplos pertencentes a m classes, c1, c2, …, cm,a entropia é definida pela seguinte expressão <br />onde pj– proporção de exemplos da classe cj<br />Para uma variável aleatória discreta X que toma valores x1, x2, …. xn com pi = P(X=xi)<br /><ul><li>A entropia tem máximo (log2pi) se pi= pj para qualquer i <> j (distribuição uniforme), max=1 se 2 classes
  29. 29. Entropia(X) = 0 se existe um i tal que pi= 1 (assumindo que 0 * log2 0 = 0)
  30. 30. Entropia é uma medida muito usada em Teoria da Informação (TI):
  31. 31. mede a quantidade de informação que existe numa v.a. X definida em bits
  32. 32. interpretada como o número esperado de bits que são necessários para codificar a v.a. X
  33. 33. - log2 p(x) representa o número de bits necessário para codificar um símbolo x com probabilidade de ocorrência p(x) segundo a codificação de Shannon</li></ul>Aprendizagem Computacional Gladys Castillo, Universidade de Aveiro<br />
  34. 34. Entropia Exemplos<br />Problema de classificação binário<br />Distribuição dos exemplos por classes<br />P(C1) = 0/6 = 0 P(C2) = 6/6 = 1<br />Entropy = – 0 log 0– 1 log 1 = – 0 – 0 = 0 <br />P(C1) = 1/6 P(C2) = 5/6<br />Entropy = – (1/6) log2 (1/6)– (5/6) log2 (1/6) = 0.65<br />maior impureza, maior entropia<br />P(C1) = 2/6 P(C2) = 4/6<br />Entropy = – (2/6) log2 (2/6)– (4/6) log2 (4/6) = 0.92<br />P(C1) = 3/6 P(C2) = 3/6<br />Entropy = – (1/2) log2 (1/2)– (1/2) log2 (1/2) = 1<br />Aprendizagem Computacional Gladys Castillo, Universidade de Aveiro<br />
  35. 35. M0<br />M2<br />M3<br />M4<br />M1<br />M12<br />M34<br />Qual a melhor divisão?<br />medida de impureza antes da partição<br />Antes da partição:<br />A?<br />B?<br />Yes<br />No<br />Yes<br />No<br />Node N1<br />Node N2<br />Node N3<br />Node N4<br />medida de impureza depois da partição<br />medida de impureza depois da partição<br />Ganho = M0 – M12 vs M0 – M34<br />Aprendizagem Computacional Gladys Castillo, Universidade de Aveiro<br />
  36. 36. Ganho de Informação (Information Gain)(em quanto é reduzida a entropia?)<br />O ganho de informação medeo grau de redução da entropiaque se obtém pela partição dos exemplos a partir de um atributo seleccionado<br />O ganho de informação obtido por um atributo A, num conjunto de exemplosSé definido pela seguinte expressão: <br />ondeSv– subconjuntos de exemplos de S cujo valor de atributo A é igual a v<br />Aprendizagem Computacional Gladys Castillo, Universidade de Aveiro<br />
  37. 37. Ganho de Informação (Information Gain)(em quanto é reduzida a entropia?)<br />Assim, a construção de uma árvore de decisão pode ser guiada pelo objectivo de diminuir a entropia  diminuir o grau de impureza do conjunto de exemplos S quando osexemplos são particionados pelo teste de um atributo <br />Qual atributo escolher para nó de decisão, A1 ou A2?<br />Calcular Ganho(S, A1) e Ganho(S, A2)e escolher aquele atributo com maior ganho<br />Aprendizagem Computacional Gladys Castillo, Universidade de Aveiro<br />
  38. 38. Introduzido no algoritmo ID3<br />Ganho de Informação (Information Gain)(redução na entropia)<br />Conjunto de exemplos S<br />antes da partição: E =0.940depois da partição: Gain(S, Humidity) = 0.151  melhorGain(S, Wind) = 0.048<br />Aprendizagem Computacional Gladys Castillo, Universidade de Aveiro<br />
  39. 39. Qual atributo escolher como raiz?Exemplo: to play or not to play?<br />Ganho(S, “humidity”)=0.151 bits<br />Ganho(S, “outlook”)=0.247 bits<br />Conjunto de exemplos S<br />Ganho(S, “temperature”)=0.029 bits<br />Ganho(S, “windy”)=0.048 bits<br />Aprendizagem Computacional Gladys Castillo, Universidade de Aveiro<br />
  40. 40. D1<br />D2<br />D8<br />D9<br />D11<br />Qual atributo escolher?Exemplo: to play or not to play?<br />Qual atributo escolher a seguir para o nó de decisão assinalado?<br />Calculando os ganhos para Outlook= “Sunny” <br />Info(SSunny)= Entropy(SSunny) = -(2/5 log 2/5 + 3/5 log 3/5) = 0.971<br />Aprendizagem Computacional Gladys Castillo, Universidade de Aveiro<br />
  41. 41. D1<br />D2<br />D8<br />D9<br />D11<br />Exemplo:To play or not to play?<br />Aprendizagem Computacional Gladys Castillo, Universidade de Aveiro<br />
  42. 42. Exemplo: To play or not to play?Árvore de Decisão Final<br />TDIDT algorithm<br />Critérios de Paragem: <br />Quando parar a divisão dos exemplos?<br />Todos os exemplos pertencem á mesma classe<br />Todos os exemplos têm os mesmos valores dos atributos (mas diferentes classes)<br />O número de exemplos é inferior a um certo limite<br />O mérito de todos os possíveis testes de partição dos exemplos é muito baixo<br />Aprendizagem Computacional Gladys Castillo, Universidade de Aveiro<br />
  43. 43. Ganho de InformaçãoAtributos Numéricos<br />Um teste num atributo numérico A produz uma partição binária do conjunto de exemplos dada um ponto de partição k, ou seja:<br /> S = ( S A < k)  ( S A  k)<br />Como escolher o melhor ponto de partição k ? Avaliar o ganho de informação para todos os possíveis “cutpoints”<br />Ordenar os exemplos por ordem crescente dos valores do atributo numérico e considerar para avaliação o valor médio entre dois valores diferentes e consecutivos.<br />Escolher o k que maximiza o ganho de informação<br />Onde particionar os valores do atributo Temperatura do exemplo Play?<br />Avaliar todos os possíveis cut points<br />Custo computacional elevado !!!<br />suponhamos k=71.5<br /><ul><li> (S|temperature <71.5): yes/4, no/2
  44. 44. (S|temperature ≥71.5): yes/5, no/3
  45. 45. Info([4,2],[5,3]) = 6/14 info([4,2]) + 8/14 info([5,3]) = 0.939 bits</li></ul>Aprendizagem Computacional Gladys Castillo, Universidade de Aveiro<br />
  46. 46. Ganho de InformaçãoAtributos com Muitos Valores Distintos<br />O ganho de informação para um atributo com muitos valores distintos pode se tornar muito elevado: <br />Exemplo: suponhamos um atributo toma um valor distinto para cada um dos exemplos existentes<br />Como o nó de decisão tem tantos ramos como valores nos atributos  cada ramo teria apenas um exemplo  entropia nula  ganho máximo<br />Está provado que o algoritmo TDIDT guiado pela medida do ganho de informação pode beneficiar atributos com muitos valores<br />Solução: penalizar atributos com muitos valores durante a selecção usando o Rácio do Ganho em vez do Ganho. <br />O Rácio do Ganho considera número e cardinalidade dos subconjuntos resultantes após a partição<br />Aprendizagem Computacional Gladys Castillo, Universidade de Aveiro<br />
  47. 47. In C4.5, Quinlan introduces the gain ratio<br />Rácio do Ganho<br /> O rácio do ganho é obtido dividendo o valor do ganho de informação pela entropia da partição<br />onde<br />Esta medida como guia no processo de busca garante que: <br />sejam penalizadas as partições com elevada entropia(um grande número de pequenas partições)  não sejam seleccionados atributos com muitos valores distintos<br />  não sejam obtidas árvores tão complexas<br />Aprendizagem Computacional Gladys Castillo, Universidade de Aveiro<br />
  48. 48. In C4.5, Quinlan introduces the gain ratio<br />Rácio do GanhoExemplo:To play or not to play?<br />Outlook continua sendo o melhor, mas o valor do rácio está muito mais perto do valor do rácio do atributo Humidity<br />Aprendizagem Computacional Gladys Castillo, Universidade de Aveiro<br />
  49. 49. Indução de Árvores de DecisãoAlgoritmos da família TDIDT<br />Top Down Induction of Decision Trees <br />Hunt (Hunt et. al, 1966) <br />CART (Breiman et. al, 1984) "Classification and Regression Trees," Wadsworth International Group, Belmont, California.<br />ID3   (Quinlan, 1986) publicadoem: “Induction of Decision Trees”, Machine Learning 1: 81-106, 1986<br />online in www.springerlink.com/content/ku63wm5513224245/fulltext.pdf<br />C4.5(Quinlan, 1993) publicado no livro C4.5: Programs for MachineLearningonline inhttp://books.google.com/books?hl=pt-PT&lr=&id=HExncpjbYroC&oi=fnd&pg=PP9&ots=nJjddWq3Zk&sig=66rPhXO3VRU1cAHTihDOb0AdQGI#PPR9,M1Este é o algoritmo de ML mais popular segundo o artigo “Top 10 algorithmsin Data Mining”, KnowledgeandInformationSystems (2007) <br />Aprendizagem Computacional Gladys Castillo, Universidade de Aveiro<br />
  50. 50. ID3 Decision Tree construction algorithm (Quinlan ‘86)<br /><ul><li>Algoritmo da família TDIDT: (estratégia de busca greedy)
  51. 51. guia a busca sobre o espaço de possíveis árvores
  52. 52. particiona os exemplos segundo um teste do atributo que optimiza um critério de divisão dado
  53. 53. constrói a árvore de uma forma recursiva e descendente (top down)
  54. 54. Algoritmo miope: considera apenas próximo passo</li></ul>medidaparaseleccionaratributos: ganho de informação<br />permite atributos numéricos: não<br />Tratamento de valores desconhecidos: não<br />Apesar de que, quando foi lançado o algoritmo ID3 pareceu eficiente, verificaram-se alguns problemas, como é o caso do sobre-ajustamento da árvore aos dados de treino (overfitting)<br />Aprendizagem Computacional Gladys Castillo, Universidade de Aveiro<br />
  55. 55. overfitting<br />underfitting<br />Optimal<br />Low <br />High<br />Erro de treino  erro no conjunto de treinoErro de teste  erro no conjunto de teste <br />Underfitting vs. Overfitting<br /><ul><li>Se um classificador é muito simples pode “underfit” (não ajustar-se) aos dados
  56. 56. Pelo contrário, se é muito complexo pode “overfit” (sobre-ajustarse) aos dados</li></ul>Complexidade vs. Performance Trade-Off<br /><ul><li>Quando o modelo é muito simples (underfitting) tanto o erro de treino como o erro de teste são elevados
  57. 57. Quando o modelo é muito complexo (overfitting) o erro de treino é muito baixo mais o erro de teste pode ser elevado</li></ul> Existe sempre um classificador de complexidade óptima que permite obter o melhor desempenho (menor erro de classificação verdadeiro) em dados futuros<br />erro verdadeiro<br />Aprendizagem Computacional Gladys Castillo, Universidade de Aveiro<br />
  58. 58. Overfitting devido a ruído<br />Decision boundary is distorted by noise point<br />Aprendizagem Computacional Gladys Castillo, Universidade de Aveiro<br />
  59. 59. Overfitting devido a poucos exemplos de treino<br />A falta de exemplos de treino na metade inferior do espaço de atributos torna difícil prever correctamente a classe dos exemplos de teste (futuros exemplos) naquela região<br />Aprendizagem Computacional Gladys Castillo, Universidade de Aveiro<br />
  60. 60. Overfitting em ID3<br />Overfitting<br />O numero de parâmetros de uma árvore de decisão cresce linearmente com o numero de exemplos.<br />– Uma árvore de decisão pode obter um ajuste perfeito aos dados de treino.<br />A medida que a complexidade da árvore aumenta, o modelo vai se ajustar melhor ao conjunto de treino, mas a partir de um certo ponto começa a diminuir a sua capacidade de generalização nos exemplos de teste<br />Aprendizagem Computacional Gladys Castillo, Universidade de Aveiro<br />
  61. 61. Occam’s Razor<br /> Dada duas hipóteses que explicam os dados, escolher a mais simples<br />Existem menos hipóteses simples do que complexas<br />Se uma hipótese simples explica os dados é pouco provável que seja uma coincidência<br />Pelo contrário, uma hipótese complexa pode explicar os dados apenas por coincidência.<br />A complexidade deve ter-se em conta no processo de selecção da melhor hipótese que explica os dados<br />Aprendizagem Computacional Gladys Castillo, Universidade de Aveiro<br />
  62. 62. Como evitar o sobre-ajustamento?Paragem Antecipada (Pré-Poda)<br />Parar o crescimento da árvore antes que se atinja um ponto onde o erro do conjunto de treino é nulo e a árvore seja demasiada complexa<br />Condições de paragem para um nó:<br /> todos os exemplos pertencem à mesma classe<br /> todos os exemplos têm os mesmos valores dos atributos (mas diferentes classes)<br />Condições mais restritas:<br />o número de exemplos é menor que um dado threshold<br />a expansão do nó actual não melhora o seu grau de impureza<br />Aprendizagem Computacional Gladys Castillo, Universidade de Aveiro<br />
  63. 63. Como evitar o sobre-ajustamento?Pós-Poda da Árvore<br />Crescer a árvore completa e logo podá-la: substituir alguns ramos for folhas<br />Ajustar iterativamente os nós da árvore de decisão de maneira ascendente (bottom-up)para cada nó de decisão:<br />Avaliar duas hipóteses: árvore de decisão actualvs. árvore podada(substituindo a sub-árvore descendente do nó pela folha)<br />se a estimativa do erro de generalização melhora após a poda:  substituir pela folha com a classe maioritária de todos os exemplos associados à sub-árvore podada<br />Aprendizagem Computacional Gladys Castillo, Universidade de Aveiro<br />
  64. 64. Pós-Poda<br />Toda a sub-arvore descendente do nó “working hours” é substituída por uma folha com a classe “bad” (a classe maioritária)<br />Aprendizagem Computacional Gladys Castillo, Universidade de Aveiro<br />
  65. 65. Pós-PodaEstimativas do Erro Verdadeiro<br /> Podar só se a estimativa do erro de generalização (erro verdadeiro) melhora<br />Como obter estimativas fiáveis do erro verdadeiro durante o processo de poda? <br />“reduced-error pruning” :<br />estimar o erro num conjunto de teste independente do conjunto de treino que é usado para construir a arvore (hold-out validation)<br />Aprendizagem Computacional Gladys Castillo, Universidade de Aveiro<br />
  66. 66. C4.5 Decision Tree construction algorithm (Quinlan ‘93)<br /><ul><li>C4.5 é uma extensão do ID3
  67. 67. medida para seleccionar atributos: rácio do ganho
  68. 68. Tratamento de valores numéricos
  69. 69. Tratamento de valores desconhecidos
  70. 70. Implementa pós-poda para evitar overfitting
  71. 71. Gera regras de decisão a partir da árvore (C4.5 rules)
  72. 72. C4.5 é um dos mais populares algoritmos em ML
  73. 73. Última versão: C4.8 (implementado em Weka como J4.8)
  74. 74. Operador em RapidMiner: DecisionTree
  75. 75. Sucesor comercial: C5.0 (available from Rulequest)</li></ul>Aprendizagem Computacional Gladys Castillo, Universidade de Aveiro<br />
  76. 76. Árvores de DecisãoVantagens<br />Modelo não-paramétrico<br />Não assume nenhuma distribuição particular para os dados<br />Pode construir modelos para qualquer função desde que o numero de exemplos de treino seja suficiente.<br />A estrutura da árvore de decisão é independente da escala das variáveis<br />Transformações monótonas das variáveis (log x, 2*x, ...) não alteram a estrutura<br /> Elevado grau de interpretabilidade<br />Uma decisão complexa (prever o valor da classe) é decomposto numa sucessão de decisões elementares.<br />Os algoritmos de indução são eficientes:<br />Complexidade média O(n log n) <br />Robusto á presença de outliers e atributos redundantes ou irrelevantes<br />Inclui mecanismo de selecção de atributos(embedded feature selection)<br />Aprendizagem Computacional Gladys Castillo, Universidade de Aveiro<br />
  77. 77. Árvores de DecisãoDesvantagens<br />Instabilidade<br />Pequenas perturbações do conjunto de treino podem provocar grandes alterações no modelo aprendido<br />Presença de valores desconhecidos<br />Fragmentação de conceitos<br />Replicação de sub-arvores<br />Aprendizagem Computacional Gladys Castillo, Universidade de Aveiro<br />
  78. 78. Espaço de Hipóteses<br />O espaço de hipóteses é completo<br />Qualquer função pode ser representada por uma árvore de decisão<br />Os algoritmos de indução não reconsideram opções tomadas<br />mínimos locais<br />Escolhas com suporte estatístico<br />Robusto ao ruído<br />Preferência por árvores mais pequenas<br />Aprendizagem Computacional Gladys Castillo, Universidade de Aveiro<br />
  79. 79. Bibliografia(algumas das figuras e textos foram adaptados das fontes aquí indicadas)<br />Livros<br />Chapter 4: Classification: Basic Concepts, Decision Trees and Model EvaluationP. Tan, M.Steinbach, V.KumarSection 4.1-4.4 (pag 105 - 135)  lecture slides: [ PPT][PDF]<br />Capítulo 3. Árvores de DecisãoAnáliseInteligente de Dados: Algoritmos e Implementaçãoem JAVAMiguel Rocha, Paulo Cortez e José Maia NevesFAC, Editora de Informática (2008) <br />Acetatos<br />Árvores de decisãoJoão Gama, Universidade do Porto  <br />Decision TreesPier Luca Lanzi, Politêcnicodi Milano <br />Decision Tree ClassifiersDr. Toby P. BreckonSchool of Engineering Cranfield University, UK<br />Aprendizagem Computacional Gladys Castillo, Universidade de Aveiro<br />

×