280 likes | 470 Views
Indução de Árvore de Decisão. Jacques Robin. Roteiro. Entrada e saída da indução de árvore decisão Tarefas de aprendizagem implementadas por ID3 Exemplo Algoritmo básico e complexidade Heurísticas de escolha do atributo de partição de exemplos Poda da árvore para evitar overfitting
E N D
Indução de Árvore de Decisão Jacques Robin
Roteiro • Entrada e saída da indução de árvore decisão • Tarefas de aprendizagem implementadas por ID3 • Exemplo • Algoritmo básico e complexidade • Heurísticas de escolha do atributo de partição de exemplos • Poda da árvore para evitar overfitting • Atributos numéricos, multi-valorados, nulos e numerosos • Árvores de regressão e de modelo • Vantagens e limitações de ID3
age? <=30 30..40 >40 student? credit rating? no yes excellent fair no yes no yes yes Entrada e saída da indução de árvore de decisão (ID3)
Tarefas de aprendizagem realizáveis por ID3 • Classificação: • Atributos classificadores nos ramos • Valores da classe nas folhas • Regressão: • Valores das variáveis fornecidas nos ramos • Valor da variável a estimar nas folhas • Previsão temporal: • Valores passadas do atributo a prever nos ramos • Valor futura do atributo a prever nas folhas • Detecção de padrão: • Valores antecedentes da associação nos ramos • Valores conseqüentes da associação nas folhas • Controle: • Atributos descrevendo situação nos ramos • Ação a executar nessa situação nas folhas • Otimização: • Valores das variáveis do domínio da função a otimizar nos ramos • Valor da imagem máxima ou mínima da função das folhas
age? <=30 30..40 >40 student? credit rating? no yes excellent fair no yes no yes yes Expressividade das árvores de decisão • Representação como programa lógico: buy(X,computer) :- age(X) <= 30, student(X), creditRating(X,fair). buy(X,computer) :- age(X) >= 30, age(X) <= 40. buy(X,computer) :- age(X) > 40, creditRating(X,fair).
Expressividade das árvores de decisão age? • Representação proposicional: ((under30 student) 30something (over40 fairCreditRating) buyComputer ((under30 student) (over40 excellentCreditRating) buyComputer) (under30 30something over40) (under30 30something) (under30 over40) (over40 30something) (fairCreditRating excellentCreditRating) (fairCreditRating excellentCreditRating) <=30 30..40 >40 student? credit rating? no yes excellent fair no yes no yes yes
Expressividade das árvores de decisão • Pode representar qualquer função booleana • No entanto, algumas funções – como a função de paridade ou de maioria – só podem serem representadas por uma árvore de tamanho exponencial no número de atributos • Cardinal do espaço de hipótese de uma tarefa de aprendizagem com 6 atributos booleanos: 18.446.744.073.709.551.661 • Mesmo para problemas pequenos: • Aprender árvores pequenos o suficiente para serem inteligível e então validáveis • Requer heurísticas (i.e., viés) podendo a busca no espaço de hipótese de maneira violenta • Em recuperação de informação utiliza-se geralmente um número de atributo igual a o número de palavras na língua utilizada nos documentos ...
Algoritmo básico de ID3 • Escolher dentro do conjunto de atributo atual A = {A1,..., Ak} o atributo Ai que separa melhor o conjunto atual de exemplos E em termos dos valores do atributo a prever P • Dividir E em termos dos valores de Ai = {Vi1,..., Vik}i.e., E = Ej, x Ej, Ai(x) = Vij, criando um novo arco teste Ai(x) = Vii na árvore para cada Ej • Para todos Ei ainda heterogêneos em termos do valor de Pi.e., x,y Ei, P(x) P(y), • Recursivamente reaplicar algoritmo sobre Ej com o conjunto de atributo A´= A – {Ai} • Continuar até que: • Todos os Ej seja homogêneos em termos do valor de P • Não tenha mais atributos a processar, i.e., A´=
Árvore aprendida com viés de ID3 Número de bits: 3 Viés de aprendizagem de ID3 • Árvore “aprendida” sem viés • Número de bits: 6
Heurísticas de escolha de atributo de partição de exemplos • Ganho da informação • Índice GINI
Ganho da informação • Informação (em número de bits) esperada necessária para classificar, em m classes, amostra arbitrária de s exemplos: • Informação esperada necessária para classificar, em m classes, dado o valor, entre V valores possíveis, do atributo A (entropia de A): • Ganho de informação pelo conhecimento do valor de A: Si = numero de exemplos de classe i Si j = numero de exemplos de classe i com valor j para atributo A
Exemplo de escolha de atributo baseadona heurística do maior ganho de informação • Class p: buysComputer = “yes” • Class n: buysComputer = “no” • I(p, n) = I(9, 5) =0.940 • Entropia paraage: age <= 30 para 5/14 dos exemplos dos quais 2 buyComputer = yes e 3 buyComputer = no
Exemplo de ID3 age? <=30 31..40 >40 +: e9, e11 +: e3, e7, e12, e13 +: e4, e5, e10 -: e1, e2, e8 -: e6, e14
age? <=30 31..40 >40 +: e9, e11 +: e3, e7, e12, e13 +: e4, e5, e10 -: e1, e2, e8 -: e6, e14 student? no yes +: e9, e11 -: e1, e2, e8 Exemplo de ID3
age? <=30 31..40 >40 +: e9, e11 +: e3, e7, e12, e13 +: e4, e5, e10 -: e1, e2, e8 -: e6, e14 student? credit rating? no yes excellent fair +: e9, e11 -: e1, e2, e8 -: e6, e14 +: e4, e5, e10 Exemplo de ID3
Poda de árvores para evitar overfitting • Broto de decisão: árvore de decisão de profundidade 1 • Em muitos casos, tão precisão se não melhor sobre conjunto de teste do que árvore de decisão completa gerada por ID3 • Caso também de kNN, Classificador Bayesiana Ingênuo e Regra de Classificação 1R, i.e., regra da forma: atributo a = v classe = c • Em processo de aprendizagem qualquer, sempre começar pelo uso desses métodos simplórios, pós as vezes eles são suficientes, e sempre eles constituem um caso base para a avaliação de métodos mais sofisticados • Sugere idéia de podar árvores geradas por ID3 para melhorar sua generalidade • Pré-poda: • Introduzir novo ramo na árvore apenas para gerar divisão de exemplos estatisticamente significativa (por exemplo usando um test 2 • Pós-poda: • Podar árvore completa testando diferencia de precisão sobre outro conjunto de exemplos de duas operações de poda, colapso de ramo e subida de ramo
age? age? <=30 30..40 >40 <=30 30..40 >40 student? credit rating? credit rating? no yes excellent fair excellent fair no yes no yes no yes yes no yes Operações de pós-poda: colapso de ramo
age? student? <=30 30..40 >40 no yes student? credit rating? age? credit rating? no yes excellent fair excellent fair <=30 30..40 >40 no yes yes no yes no yes yes no yes Operações de pós-poda: elevação de ramo
Pós-poda • Processa a árvore de baixo para cima estimando benefício, em cada nó, de uma das duas operações • Divide conjunto de exemplos em 3 partes: • Conjunto de construção da árvore • Conjunto de poda da árvore • Conjunto de teste da árvore podada • Problemático com conjunto de exemplos pequenos: • Solução de C4.5 • Executa poda sobre mesmo conjunto do que a construção, usando um estimador estatístico diferente do ganho de informação usado para construção
Complexidade de ID3 • Abstrair e exemplos de treinamento, • cada um descrito por a atributos • por uma árvore de decisão de profundidade O(log n) • Execução: O(log n) • Treinamento sem poda: O(mn log n) • Pós-poda: O(n (log n)2)
Outras dificuldades práticas • Atributos multi-valorados • ID3 supõe que cada atributo de cada exemplo possui apenas um único valor • Nem é sempre o caso: ex, filhos de uma pessoa • Atributos com distribuição de valores muito desigual • ID3 tende a gerar broto de decisão
Atributos numerosos • Ganho de informação super-estima atributos com muitos valores distintos • Atributos com um valor distinto por exemplo, completamente inútil para classificação, no entanto com maior ganho de informação • Uma solução simples: usar razão do ganho sobre número de valores do atributo
Atributos nulos • Utilização: • Como classificar novo exemplo com atributo nulo ? • Prever valor nulo como sendo valor adicional • Treinamento: • Simplesmente excluir exemplos ou atributos com valores nulos não é sempre viável porque: • As vezes exemplo com valor nulo para determinado atributo, é extremamente informativo com respeito a outros atributos, • ou atributo com valor com valor nulo para determinado exemplo, é extremamente informativo via seus valores para outros exemplos • tamanho e dimensionalidade dos exemplos de treinamento ficam baixo demais • É necessário modificar a fórmula do ganho de informação para a tornar tolerante a valores nulos
Atributos numéricos • Qual é a partição em faixa de valores que maximiza o ganho de informação ?
Árvore de regressão Regressão linear paramêtrica: PRP = - 56.1 + 0.049MYCT + 0.015MMIN + 0.006MMAX + 0.630CACH - 0.270CHMIN + 1.46CHMAX Árvore de regressão para mesma tarefa:
Árvore de modelo Árvore de modelo para mesma tarefa: LM1: PRP = 8.29 + 0.004 MMAX + 2.77 CHMIN LM2: PRP = 20.3 + 0.004 MMIN – 3.99 CHMIN + 0.946 CHMAX LM3: PRP = 38.1 + 0.012 MMIN LM4: PRP = 19.5 + 0.002 MMAX + 0.698 CACH + 0.969 CHMAX LM5: PRP = 285 – 1.46 MYCT + 1.02 CACH – 9.39 CHMIN LM6: PRP = -65.8 + 0.03 MMIN – 2.94 CHMIN + 4.98 CHMAX
Vantagens de ID3 • Muito versátil • Algoritmo de aprendizagem muito simples, e então fácil de entender • Muito bem estudado • Eficiente e escalável • Disponível na grande maioria das caixas de ferramenta gerais para aprendizagem • Processa cada exemplo apenas uma única vez
Limitações de ID3 • Redundância para representar sem muita redundância funções sem ordem claro de poder separativo dos exemplos entre atributos • Não pode aprender relacionamentos genéricos entre vários indivíduos, • ex: árvore de decisão definindo conceito de mãe, de ancestral ? • Não é incremental: todos os exemplos tem que ser disponíveis com antecedência