Introdução a Aprendizagem de Máquina através da Indução de Árvores de Decisão Geber Ramalho Jacques Robin CIn-UFPE Modelo do Agente Aprendiz (on-line) Padrões de aceitação Agente t+1 sensores ambiente t crítico avaliação trocas elemento ator elemento de conhecimento aprendizagem objetivos de aprendizagem efetuadores Depende da KRL Gerador de problemas Experiências informativas Aprendizagem para construção do agente (off-line) exemplos Engenheiro de conhecimento parametriza elemento ator elemento de aprendizagem Agente Base de conhecimento Árvore de Decisão A partir de um conjunto de propriedades, decide sim ou não Exemplo Soparia (by Carlos Figueira) • predicado-objetivo: vaiASoparia • Atributos considerados: Sono: Estou com sono? Transporte: Tenho como ir de carro? Carona? etc. CONIC: Devo estar amanhã cedo no CONIC? Álcool: Estou precisando de álcool? Sair: Quero sair de casa? Fome: Estou com fome? Árvore de Decisão “pensada” valores atributo Sono? Não. Sim. Meio de transporte? Carona CONIC? Precisa de álcool? Sim. Não. Não. CONIC? Sim. Não. Quer sair? Sim. Não. ID3: exemplos da soparia Atributos: (Sono, Transporte, CONIC, Álcool, Sair, Fome)-> propriedade-objetivo • • • • • • • • • • • • E01: (Pouco,Carro,Sim,Sim,Não,Sim) -> Sim! E02: (Pouco,Carona,Não,Não,Sim,Sim) -> Sim! E03: (Sim,Carro,Não,Sim,Sim,Sim) -> Não. E04: (Pouco,Carona,Não,Não,Sim,Não) -> Sim! E05: (Sim,Outros,Sim,Sim,Sim,Não) -> Não. E06: (Pouco,Outros,Não,Sim,Não,Sim) -> Não. E07: (Pouco,Carro,Sim,Não,Sim,Sim) -> Sim! E08: (Pouco,Carona,Não,Não,Não,Sim) -> Não. E09: (Sim,Carro,Não,Sim,Sim,Não) -> Não. E10: (Não,Outros,Sim,Sim,Sim,Sim) -> Sim! E11: (Não,Carro,Não,Sim,Sim,Não) -> Sim! E12: (Não,Carona,Não,Sim,Sim,Sim) -> Sim! ID3: conceitos Classificação • aplicação do predicado objetivo p a um exemplo Exemplo positivo (ep) e exemplo negativo (en) • p(ep) = verdadeiro, p(en) = falso Conjunto de treinamento • positivos + negativos Objetivo da aprendizagem • gerar a descrição d de p segundo os atributos dados • d deve ser consistente (cobre todos positivos e exclui todos negativos) e preditiva/geral (vai além da memorização) • d deve ser a mais simples possível (navalha de Ockahm) ID3: construção da árvore Escolha do melhor atributo • O que discrimina o maior número de exemplos • Maior ganho de informação (entropia) Candidatos: • Transporte: Não classifica imediatamente nenhum dos exemplos • Sono: Classifica de imediato 6 dos 12 exemplos • ... Exemplo: atributo transporte +:E01,E02,E04,E07,E10,E11,E12 - :E03,E05,E06,E08,E09 Transporte? carro +: E01,E07,E11 -: E03,E09 carona +: E02,E04,E12 -: E08 outros +: E10 -: E05,E06 Exemplo: atributo sono +:E01,E02,E04,E07,E10,E11,E12 - :E03,E05,E06,E08,E09 Sono? sim +: - - -: E3, E5, E9 pouco +: E1,E2,E4, E7 -: E6,E8 não +: E10,E11,E12 -: - - - Cálculo do ganho de informação Ganho(A) = I p/p+n, n/p+n - vi=1(pi+ni)/(pi+ni) I pi/pi+ni, ni/pi+ni I p/p+n, n/p+n = -p/(p+n) (log2 p/(p+n)) - n/(n+p) (log2 n/(p+n)) Onde A = atributo p = positivo n = negativo ID3: Algoritmo de aprendizagem function APRENDIZAGEM_DA_ID3(exemplos,atributos,default) : árvore de decisão if (exemplos é vazio) then return default; else if (todos os exemplos têm a mesma classificação) then return (a classificação); elseif (atributos é vazio) then return maioria(exexmplos); else melhor <- ESCOLHA_MELHOR_ATRIBUTO(atributos,exemplos); árvore <- nova árvore com raiz “melhor”; para cada valor vi de melhor faça exemplosi <- exemplos onde melhor = vi; subárvore <- APRENDIZAGEM_DA_ID3(exemplosi, atributos-{melhor}, maioria(exemplos)); adicione subárvore como um ramo à árvore com rótulo vi; return arvore; Árvore de Decisão “Induzida” +: E1,E2,E4,E7,E10,E11,E12 -: E3, E5, E6, E8, E9 Sono? +: - - -: E3, E5, E9 Não. +: E1,E2,E4, E7 -: E6,E8 +: E10,E11,E12 -: - - - Meio de transporte? Sim. Carona +: E1,E7 -: - - - Sim. +: E2,E4 -: E8 +: - - -: E6 Quer sair? +: E2,E4 -: - - - +: - - -: E8 Sim. Não. Não. Regras É possível mostrar o resultado como regras lógicas • toma-se as folhas com conclusão positiva e sobe-se até a raiz Exemplos: • t Sono(Não,t) VaiASoparia(t) • t Sono(Pouco,t) Transporte(Carro,t) VaiASoparia(t) • t Sono(Pouco,t) Transporte(Carona,t) QuerSair(Sim,t) VaiASoparia(t) Dimensões para classificar tarefas e técnicas de aprendizagem de máquina Tarefas de aprendizagem: componente e aspeto do elemento de performance a melhorar Complexidade do ambiente do agente aprendiz Retorno no processo de treinamento do agente Controle dos mecanismos de aprendizagem e de ação Formalismo de representação do conhecimento Aproveitamento de conhecimento prévio Visões unificadoras: • aprendizagem = adquirir uma representação, geralmente aproximativa, de uma função matemática • aprendizagem = busca de uma região em um espaço de hipótese explicando os dados (exemplos) Relação com otimização, analise numérica, estatística Propriedades matemática e viés a priori sobre a função a aproximar ou do espaço de hipótese a buscar Técnicas de aprendizagem Paradigma simbólico: Aprendizagem de conceitos por busca no espaço de soluções (version-space) Indução de árvores de decisão e regras proposicionais Programação em lógica indutiva Aprendizagem por explicações Raciocínio baseado em casos Aprendizagem Q Agrupamento de conceitos proposicionais Paradigma probabilista: K Vizinhos mais próximo Regressão estatística Funções de bases radiais Aprendiz bayesiano ingênuo Paradigma conexionista: Perceptron multicamada Memórias associativas Paradima evolucionista: Algoritmos genéticos Abordagens híbridos: Rede bayesianas Tarefas de aprendizagem Classificação: dados = instâncias conceitos • aprende novo conhecimento da forma: CI: Estado(Ambiente,t) x Percepções(t) Estado(Ambiente,t+1) Previsão: dados(t) conceitos dados(t+1) • aprende novo conhecimento da forma: CP1: Estado(Ambiente,t) Estado(Ambiente,t+1) CP2: Estado(Ambiente,t) x Ações(t) Estado(Ambiente,t+1) • classificação destacando atributo tempo • generaliza-se na identificação de serias temporais Controle: dados política de comportamento • aprende novo conhecimento da forma: R: Percepções Ações, ou Cu1: Estado(Ambiente,t) x Objetivos(t) Utilidade, ou Cu2: Estado(Ambiente,t) x Ações(t) x Objetivos(t) Utilidade Tarefas de aprendizagem Otimização: • • • • • aprender nova representação de conhecimento prévio para melhorar desempenho do agente e não sua versatilidade embora não envolve aprender nada de fundamentalmente novo as vezes a diferença entre 2 representações do mesmo problema é a diferença entre uma solução puramente teórica e uma solução operacional na prática Meta-aprendizagem • aprender valores ótimas de parâmetros ou de representações de viés para aprendizagem de conhecimento do domínio da aplicação Aprendizagem multi-camada: muitas vezes, • controle requer previsão, que requer classificação • e o conhecimento assim obtido precisa ser otimizado para execução em tempo real • ex, futebol de robôs Complexidade do ambiente Acessível? Episódico? Discreto? Determinista? Ruidoso? Dinâmico? Relacional? Diverso? Grande? Retorno no processo de treinamento Aprendizagem supervisionada • certo(ação) ou errado(ação) • Dado conjunto de exemplos pré-classificados, • Aprender descrição que abstraí a informação contida nesses exemplos • e que pode ser usada para prever casos futuros • ex., concessão de crédito Aprendizagem não-supervisionada • se vire! • Dada uma coleção de dados não classificados, • Agrupá-los por regularidades • ex., caixa de supermercado empacotando Retorno no processo de treinamento Aprendizagem por reforço: recompensa/punição • certo(ação1(t0)/.../ação(tn) ou errado(ação1(t0)/.../ação(tn)) • dado sucesso ou insucesso global de um seqüência de ação, determinar qual ação e’ a mais desejável em cada situação • ex., DeepBlue jogando contra ele próprio: é por a • propagar para trás recompensas e punições a partir do estado final Controle da aprendizagem Aprende depois age ou aprende agindo (treinos x jogos) Agir sempre otimamente x aprender novas habilidades Busca de hipótese: • incremental (exemplos apresentado ao poucos) ou não (todos de uma vez) • iterativa (exemplos re-apresentados em várias épocas) ou não (uma apresentação de cada exemplo basta) • top-down (refina hipótese geral para cobrir exemplos) ou bottom-up (generaliza exemplos para abstrair hipótese) ou bi-direcional • gulosa (generaliza exemplos assim que encontrados) ou preguiçosa (não generaliza exemplos com antecedência, apenas os indexa para os adaptar ao receber novas consultas parecidas) • global (aproxima função completa) ou local (aproxima-la por partes) Representação do conhecimento Função matemática: • domínio e escopo: {0,1}, Z, R • monotonia, continuidade • polinomial, exponencial, logarítmica Lógica: • proposicional (ordem 0), de atributos (ordem 0+) • de Horn ou dos predicados (ordem 1) • exóticas (ordem superior, temporal, modal, etc) Distribuição de probabilidades Outros, ex.: • • • • Pesos em redes conexionistas, Representações orientada a objetos, Árvores de decisão, etc... se reduzem as 3 primeiras Conhecimento prévio Aprendizagem sem conhecimento prévio: • dados (exemplos) conhecimento Aprendizagem com conhecimento prévio: • dados x conhecimento prévio conhecimento aprendido Métodos de aprendizagem que permitem usar conhecimento prévio em entrada: • re-aproveitam de conhecimento: adquirido com especialistas humanos aprendido durante passos anteriores de KDD • para aprendem a partir de muito menos dados • Homogeneidade: • Exemplos, conhecimento prévio e conhecimento aprendido pode ser representados no mesmo formalismo? Viés Conhecimento prévio: • conhecimento do domínio da aplicação inteligente • ex, futebol de robôs, bolsa de valor, meteorologia, etc. • no mesmo formalismo do que o conhecimento a aprender Viés: • meta-conhecimento prévio • sobre a forma do conhecimento a aprender a partir dos dados, ex., classe de função a aproximar (linear, polinomial, ...) classe de função medindo o erro da aproximação (médio quadrado, …) dimensionalidade do espaço de hipótese distribuição probabilista dos pontos nesse espaço (normal, poisson, ..) restrições lexicais e sintática da linguagem de representação do conhecimento a aprender (ex, número de premissa ou conclusões de regras, numero de grupos classificando exemplos, …) Aprendizagem sem viés não tem poder de generalização ! Indução de árvore de decisão: características Tarefas: classificação, previsão e controle Ambiente: • • • • • • • • inacessível: + não episódico: + contínuo: + ou ruidoso: + dinâmico: + relacional: diverso: grande: + Supervisionado Controle da aprendizagem: • • • • • • Treino antes da ação Não incremental Não iterativo Top-down Guloso Global Representação do conhecimento: lógica propocisional Não pode aproveitar de conhecimento prévio Propriedades da função aproximada: escada N dimensional Problemas c/ ID3: Expressividade Só pode tratar de um único objeto • t Sono(Não,t) VaiASoparia(t) • t Sono(Pouco,t) Transporte(Carro,t) VaiASoparia(t) Mais de um... não dá com eficiência • Ex: “se posso ficar mais indisposto mais tarde, eu vou logo à soparia” • t1t2 MesmoDia(t1,t2) Disposição(t1,d1) Disposição(t2,d2) Maior (d1,d2) VaiASoparia(t) • alternativa: atributo possoFicarMaisIndisposto(t) Problemas c/ ID3: Expressividade Exemplo: Goal predicate = BomPesquisador (x) Como tratar atributos multi-valorados? • Filiação(José, {USP, Unesp}) Como tratar atributos numéricos? • Tem entre 45 e 52 anos Como tratar listas ordenadas? • Formação = {graduação, mestrado, doutorado, pós} Como inserir conhecimento a priori? • Hierarquias conceituais BR NE PE PB Norte AL CE Problemas gerais: ambigüidade Ambigüidade: • Dois ou mais exemplos com a mesma descrição (em termos de atributos) mas classificações diferentes Causas: • Ruído • Atributos insuficientes Soluções: • tratamento estatístico • indução construtiva • etc. Problemas gerais: overfitting Overfitting (hiper-especialização): • Evitar encontrar uma “regularidade” muito restrita nos dados Soluções: • Validação cruzada • Pré-Poda: parar a construção da árvore cedo não dividir um nó se isso resultar em um critério abaixo de um limiar difícil escolher o limiar apropriado • Pós-Poda: remover ramos de uma árvore completa conjunto de dados e critério de qualidade da árvore diferentes para a fase inicial de constução da árvore e para a fase final de poda da árvore Pós-poda de arvore de decisão: Validação Cruzada Serve para evitar overfitting e para averiguar robustez dos resultados Algoritmo 1) Divide o conjunto de exemplos em dois sub-conjuntos: conjuntos de treinamento (TR) e de teste (TE) 2) Usa indução para gerar hipótese H sobre TR 3) Mede percentagem de erro de H aplicada à TE 4) Repete passos 1-3 com diferentes tamanhos de TE e TR, e tendo elemento escolhidos aleatoriamente Treinamento Teste Curva de aprendizagem