Friday 25 August 2017

Decisão Árvore 100% Exactidão Forex


Supondo que você diga taxa de erro de computação na amostra usada para ajustar o modelo, você pode usar o printcp (). Por exemplo, usando o exemplo on-line, o erro do nó Raiz é usado para calcular duas medidas de desempenho preditivo, considerando valores exibidos no erro rel e coluna xerror e dependendo do parâmetro de complexidade (primeira coluna): 0.76471 x 0.20988 0.1604973 (16.0) é a taxa de erro de resubstituição (ou seja, taxa de erro calculada na amostra de treino) - isto é aproximadamente 0.82353 x 0.20988 0.1728425 (17.2) é a taxa de erro validada em cruz (usando CV de 10 vezes, veja xval em Rpart. Controle (), mas veja também xpred. rpart () e plotcp () que depende desse tipo de medida). Esta medida é um indicador mais objetivo da precisão preditiva. Observe que está mais ou menos de acordo com a precisão da classificação da árvore: onde a taxa de erro de Misclassificação é calculada a partir da amostra de treinamento. Aprendizagem da árvore de decisão 11 Aprendizagem Como discutido na última palestra, o esquema de representação que escolhemos para representar nossas soluções aprendidas e a A maneira pela qual aprendemos essas soluções são os aspectos mais importantes de um método de aprendizagem. Nós observamos essa palestra em árvores de decisão - um esquema de representação simples, mas poderoso, e nós olhamos para o método ID3 para aprendizagem de árvores de decisão. 11.1 Árvores de decisão Imagine que você só faz quatro coisas no fim de semana: faça compras, assista a um filme, jogue tênis ou fique no. O que você faz depende de três coisas: o clima (ventoso, chuvoso ou ensolarado) quanto dinheiro você tem (Rico ou pobre) e se seus pais estão visitando. Você diz para si mesmo: se meus pais estão visitando, vá para o cinema. Se eles não estão visitando e estão ensolarados, então eu vou jogar tênis, mas se estiver ventoso, e estou rico, então eu vou fazer compras. Se eles não estão visitando, são ventosos e eu sou pobre, então irei ao cinema. Se eles não estão visitando e está chuvoso, então eu ficarei. Para lembrar de tudo isso, você desenha um fluxograma que permitirá que você leia sua decisão. Nós chamamos esses diagramas de árvores de decisão. Uma árvore de decisão adequada para as escolhas de decisão de fim de semana seria a seguinte: podemos ver por que esses diagramas são chamados de árvores, porque, embora reconhecidamente de cabeça para baixo, eles começam a partir de uma raiz e têm filiais que levam a folhas (as dicas do gráfico no fundo). Note-se que as folhas são sempre decisões, e uma decisão específica pode ser no final de vários ramos (por exemplo, poderíamos escolher ir ao cinema por dois motivos diferentes). Armado com a nossa árvore de decisão, no sábado de manhã, quando acordamos, tudo o que precisamos fazer é verificar (a) o tempo (b) quanto dinheiro temos e (c) se o carro dos nossos pais está estacionado na unidade. A árvore de decisão nos permitirá então tomar nossa decisão. Suponha, por exemplo, que os pais não tenham aparecido e o sol está brilhando. Então, este caminho através da nossa árvore de decisão nos dirá o que fazer: e, portanto, fugimos para jogar tênis porque nossa árvore de decisão nos disse. Observe que a árvore de decisão cobre todas as eventualidades. Ou seja, não há valores que o tempo, os pais aparecendo ou a situação do dinheiro poderia tomar, que não são atendidos na árvore de decisão. Note-se que, nesta palestra, estaremos examinando como gerar automaticamente árvores de decisão a partir de exemplos, e não sobre como transformar processos de pensamento em árvores de decisão. Leitura de árvores de decisão Existe um link entre as representações de árvore de decisão e as representações lógicas, que podem ser exploradas para facilitar a compreensão (leitura) de árvores de decisão aprendidas. Se pensarmos sobre isso, cada árvore de decisão é realmente uma disjunção de implicações (se, então, declarações), e as implicações são cláusulas de Chifre: uma conjunção de literais que implica um único literal. Na árvore acima, podemos ver isso lendo do nó raiz para cada nó da folha. Se os pais estão visitando, então vá ao cinema ou Se os pais não estão visitando e está ensolarado, então jogue tênis ou Se os pais não estão visitando e está ventoso e você é rico, então faça compras ou Se os pais não estão Visitando e está com vento e você é pobre, então vá ao cinema ou se os pais não estão visitando e está chuvoso, então fique lá. Claro, isso é apenas uma reencontrar o processo de tomada de decisão mental original que descrevemos. Lembre-se, no entanto, que estaremos programando um agente para aprender árvores de decisão a partir do exemplo, então esse tipo de situação não ocorrerá, pois iniciaremos apenas situações de exemplo. Portanto, será importante para nós poder ler a árvore de decisão que o agente sugere. As árvores de decisão não têm que ser representações dos processos de tomada de decisão e podem igualmente se aplicar a problemas de categorização. Se expressarmos a questão acima de forma ligeiramente diferente, podemos ver isso: em vez de dizer que desejamos representar um processo de decisão sobre o que fazer em um fim de semana, poderemos perguntar que tipo de fim de semana é esse: é um fim de semana em que jogamos Tênis ou aonde vamos às compras, ou onde vemos um filme, ou um lugar onde nos hospedamos. Para outro exemplo, podemos nos referir ao exemplo dos animais da última palestra: nesse caso, queríamos categorizar a classe Um animal era (mamífero, peixe, réptil, pássaro) usando atributos físicos (seja ele ovos, número de pernas, etc.). Isso poderia ser facilmente redigido como uma questão de aprender uma árvore de decisão para decidir em qual categoria um determinado animal está dentro, p. Se ele coloca ovos e é homeothermic, então é um pássaro, e assim por diante. 11.2 Árvores de decisão de aprendizagem usando ID3 Agora precisamos olhar como você mentalmente construiu sua árvore de decisão ao decidir o que fazer no fim de semana. Uma maneira seria usar algumas informações de fundo como axiomas e deduzir o que fazer. Por exemplo, você pode saber que seus pais realmente gostam de ir ao cinema e que seus pais estão na cidade, então (usando algo como Modus Ponens) você decidiria ir ao cinema. Outra maneira pela qual você pode ter tomado a decisão foi generalizando as experiências anteriores. Imagine que você se lembrou de todas as vezes quando teve um ótimo final de semana. Algumas semanas atrás, estava ensolarado e seus pais não estavam visitando, você jogou tênis e foi bom. Um mês atrás, estava chovendo e você não estava sem dinheiro, mas uma viagem ao cinema animou você. E assim por diante. Essa informação poderia ter orientado sua tomada de decisão e, se esse fosse o caso, você usaria um método indutivo, e não dedutivo, para construir sua árvore de decisão. Na realidade, é provável que os seres humanos tenham razão para resolver decisões usando processos indutivos e dedutivos. Podemos afirmar o problema de aprender árvores de decisão da seguinte forma: Temos um conjunto de exemplos corretamente categorizados em categorias (decisões). Nós também temos um conjunto de atributos que descrevem os exemplos, e cada atributo possui um conjunto finito de valores que ele pode tomar. Queremos usar os exemplos para aprender a estrutura de uma árvore de decisão que pode ser usada para decidir a categoria de um exemplo não visto. Supondo que não há inconsistências nos dados (quando dois exemplos têm exatamente os mesmos valores para os atributos, mas são categorizados de forma diferente), é óbvio que sempre podemos construir uma árvore de decisão para decidir corretamente os casos de treinamento com 100 precisões. Tudo o que temos a fazer é garantir que todas as situações sejam atendidas por algum ramo da árvore de decisão. Claro, 100 precisões podem indicar excesso de capacidade. A idéia básica Na árvore de decisão acima, é significativo que o nó visitante dos pais tenha chegado ao topo da árvore. Não sabemos exatamente o motivo disso, como não vimos o exemplo de fins de semana a partir do qual a árvore foi produzida. No entanto, é provável que o número de fins de semana que os pais visitaram fosse relativamente alto, e todos os fins de semana que visitaram, houve uma viagem ao cinema. Suponhamos, por exemplo, que os pais visitaram cada quinzena por um ano, e em cada ocasião a família visitou o cinema. Isso significa que não há evidências a favor de fazer algo além de assistir a um filme quando os pais visitam. Dado que estamos aprendendo regras de exemplos, isso significa que, se os pais visitam, a decisão já foi tomada. Portanto, podemos colocar isso no topo da árvore de decisão e ignorar todos os exemplos em que os pais visitaram ao construir o resto da árvore. Não ter que se preocupar com um conjunto de exemplos tornará o trabalho de construção mais fácil. Esse tipo de pensamento está subjacente ao algoritmo ID3 para aprender árvores de decisões, que descreveremos mais formalmente abaixo. No entanto, o raciocínio é um pouco mais sutil, pois (no nosso exemplo) também levaria em consideração os exemplos quando os pais não visitaram. Entropy Juntar uma árvore de decisão é uma questão de escolher qual atributo testar em cada nó na árvore. Devemos definir uma medida chamada ganho de informação que será usada para decidir qual atributo testar em cada nó. O ganho de informação é calculado por meio de uma medida chamada entropia, que primeiro definimos para o caso de um problema de decisão binária e depois define para o caso geral. Dada uma categorização binária, C e um conjunto de exemplos, S, para os quais a proporção de exemplos categorizados como positivos por C é p e a proporção de exemplos categorizados como negativos por C é p -. Então a entropia de S é: a razão pela qual definimos a entropia primeiro para um problema de decisão binária é porque é mais fácil ter uma impressão do que está tentando calcular. Tom Mitchell coloca isso bastante bem: para definir com precisão a informação, começamos definindo uma medida comumente usada na teoria da informação, chamada entropia que caracteriza a (im) pureza de uma coleção arbitrária de exemplos. Imagine ter um conjunto de caixas com algumas bolas. Se todas as bolas estivessem em uma única caixa, então isso seria bem ordenado, e seria extremamente fácil encontrar uma bola em particular. Se, no entanto, as bolas fossem distribuídas entre as caixas, isso não seria muito bem ordenado, e pode demorar um bom tempo para encontrar uma bola em particular. Se nós definíssemos uma medida com base nessa noção de pureza, gostaríamos de poder calcular um valor para cada caixa com base no número de bolas nele, e então tomar a soma destes como a medida geral. Gostaríamos de recompensar duas situações: caixas quase vazias (muito arrumadas) e caixas com quase todas as bolas em (também muito bem). Esta é a base para a medida de entropia geral, que é definida da seguinte forma: Dada uma categorização arbitrária, C em categorias c 1. C n. E um conjunto de exemplos, S, para os quais a proporção de exemplos em c i é p i. Então a entropia de S é: esta medida satisfaz os nossos critérios, por causa da construção - plog 2 (p): quando p fica perto de zero (ou seja, a categoria tem apenas alguns exemplos nele), então o log (p) se torna Um grande número negativo, mas a parte p domina o cálculo, então a entropia funciona quase que zero. Lembrando que a entropia calcula a desordem nos dados, essa baixa pontuação é boa, pois reflete nosso desejo de recompensar categorias com poucos exemplos. Da mesma forma, se p chegar perto de 1 (ou seja, a categoria tem a maioria dos exemplos), então A parte do log (p) fica muito perto de zero, e é isso que domina o cálculo, de modo que o valor geral fica próximo de zero. Portanto, vemos que ambos, quando a categoria está quase ou completamente vazia, ou quando a categoria quase contém - ou contém completamente - todos os exemplos, a pontuação para a categoria fica perto de zero, o que modela o que queríamos. Observe que 0ln (0) é considerado zero por convenção. Ganho de informação Agora retornamos ao problema de tentar determinar o melhor atributo a escolher para um nó específico em uma árvore. A seguinte medida calcula um valor numérico para um determinado atributo, A, em relação a um conjunto de exemplos, S. Observe que os valores do atributo A variará em um conjunto de possibilidades que chamamos de Valores (A) e que, para Um valor particular desse conjunto, v, escrevemos S v para o conjunto de exemplos que têm o valor v para o atributo A. O ganho de informação do atributo A, relativo a uma coleção de exemplos, S, é calculado como: O ganho de informação de Um atributo pode ser visto como a redução esperada na entropia causada pelo conhecimento do valor do atributo A. Um Exemplo de Cálculo Como exemplo, suponha que estivéssemos trabalhando com um conjunto de exemplos, S 1, s 2, s 3, s 4 categorizados em Uma categorização binária de positivos e negativos, de modo que s 1 é positivo eo restante é negativo. Suponha ainda que desejamos calcular o ganho de informação de um atributo, A, e que A pode levar os valores. Finalmente, suponha que: s 1 tenha valor v2 para A s 2 leva o valor v2 para A s 3 leva o valor v3 para A s 4 toma o valor v1 para A Para calcular o ganho de informação para A em relação a S, primeiro precisamos calcular A entropia de S. Para usar nossa fórmula para categorizações binárias, precisamos conhecer a proporção de positivos em S e a proporção de negativos. Estes são dados como: p 14 e p - 34. Então, podemos calcular: Note que, para fazer este cálculo com sua calculadora, talvez seja necessário lembrar que: log 2 (x) ln (x) ln (2), Onde ln (2) é o log natural de 2. Em seguida, precisamos calcular a Entropia ponderada (S v) para cada valor v v1, v2, v3, v4, observando que a ponderação envolve a multiplicação por (S vi S). Lembre-se também de que S v é o conjunto de exemplos de S que têm o valor v para o atributo A. Isso significa que: Agora precisamos realizar esses cálculos: Observe que tomamos 0 log 2 (0) para ser zero, o que É padrão. Em nosso cálculo, nós só exigimos o log 2 (1) 0 e log 2 (12) -1. Agora temos que adicionar esses três valores juntos e tirar o resultado do nosso cálculo para Entropy (S) para nos dar o resultado final: Gain (S, A) 0.811 - (0 12 0) 0.311 Observamos agora como o ganho de informação pode Ser usado na prática em um algoritmo para construir árvores de decisão. O algoritmo ID3 O cálculo para o ganho de informação é a parte mais difícil desse algoritmo. O ID3 executa uma pesquisa em que os estados de busca são árvores de decisão e o operador envolve a adição de um nó a uma árvore existente. Ele usa ganho de informação para medir o atributo para colocar em cada nó, e executa uma busca gananciosa usando essa medida de valor. O algoritmo é o seguinte: Dado um conjunto de exemplos, S, categorizados nas categorias c i. Então: 1. Escolha o nó da raiz para ser o atributo, A, que obtém o maior índice de ganho de informação em relação a S. 2. Para cada valor v que A possivelmente possivelmente pode tomar, desenhe um ramo do nó. 3. Para cada ramificação de A correspondente ao valor v, calcule S v. Então: Se S v estiver vazio, escolha a categoria c default que contém a maioria dos exemplos de S, e coloque isso como a categoria do nó da folha que termina esse ramo. Se S v contiver apenas exemplos de uma categoria c, coloque c como a categoria de nó de folha que termina esse ramo. Caso contrário, remova A do conjunto de atributos que podem ser colocados em nós. Em seguida, coloque um novo nó na árvore de decisão, onde o novo atributo que está sendo testado no nó é aquele que obtém pontuação mais alta para obter ganhos de informação em relação a S v (nota: não relativa a S). Este novo nó inicia o ciclo novamente (a partir de 2), com S substituído por S v nos cálculos e a árvore é construída iterativamente assim. O algoritmo termina quando todos os atributos foram esgotados, ou a árvore de decisão classifica perfeitamente os exemplos. O diagrama a seguir deve explicar o algoritmo ID3 mais adiante: 11.3 Um exemplo trabalhado Ficamos com o nosso exemplo de fim de semana. Suponha que queremos treinar uma árvore de decisão usando as seguintes instâncias: A primeira coisa que precisamos fazer é descobrir qual atributo será colocado no nó no topo da nossa árvore: clima, pais ou dinheiro. Para fazer isso, precisamos calcular: e precisamos determinar o melhor de: Gain (S, pais) 1.571 - (S yes 10) Entropy (S sim) - (S no 10) Entropy (S no) 1.571 - ( 0,5) 0 - (0,5) 1,922 1,571 - 0,961 0,61 Ganho (S, dinheiro) 1,571 - (S rico 10) Entropia (S rico) - (S pobre 10) Entropia (S fraca) 1,571 - (0,7) (1,842) - (0,3) 0 1,571 - 1,2894 0,2816 Isso significa que o primeiro nó na árvore de decisão será o atributo do tempo. Como um exercício, convença-se por que isso marcou (ligeiramente) maior do que o atributo dos pais - lembre-se do que entropia significa e veja a forma como o ganho de informação é calculado. Do nó do tempo, desenhamos um ramo para os valores que o tempo pode tomar: sol, ventoso e chuvoso: agora olhamos para o primeiro ramo. S ensolarado. Isso não está vazio, então não colocamos um nó de folha de categorização padrão aqui. As categorizações de W1, W2 e W10 são Cinema, Tênis e Tênis, respectivamente. Como estes não são todos iguais, não podemos colocar um nó de folha de categorização aqui. Por isso, colocamos um nó de atributos aqui, o que deixaremos em branco por enquanto. Olhando para o segundo ramo, S windy. Novamente, isso não está vazio, e eles não pertencem à mesma classe, então colocamos um nó de atributos aqui, deixado em branco por enquanto. A mesma situação acontece com o terceiro ramo, daí a nossa árvore alterada parece assim: agora temos que preencher a escolha do atributo A, que sabemos que não pode ser o tempo, porque já removemos isso da lista de atributos a serem usados. Então, precisamos calcular os valores de Gain (S sunny. Parents) e Gain (S sunny. Money). Em primeiro lugar, Entropy (S sunny) 0.918. Em seguida, estabelecemos S para ser S ensolarado (e, para esta parte do ramo, ignoraremos todos os outros exemplos). Com efeito, estamos interessados ​​apenas nesta parte da tabela: portanto, podemos calcular: Observe que a Entropia (S sim) e a Entropia (S não) foram zero, porque S sim contém exemplos que estão todos na mesma categoria (cinema ), E S não contém exemplos que são todos na mesma categoria (tênis). Isso deve tornar mais óbvio por que usamos o ganho de informações para escolher atributos para colocar nos nós. Dado nossos cálculos, o atributo A deve ser tomado como pais. Os dois valores dos pais são sim e não, e vamos desenhar um ramo do nó para cada um desses. Recordando que substituímos o set S pelo set S Sunny. Olhando para S sim. Vemos que o único exemplo disso é W1. Assim, o ramo para sim pára em uma folha de categorização, sendo a categoria Cinema. Além disso, S no contém W2 e W10, mas estes estão na mesma categoria (Tênis). Daí o ramo para nenhum fim aqui em uma folha de categorização. Daí a nossa árvore atualizada parece assim: acabar com esta árvore é deixada como um exercício tutorial. 11.4 Evitando a superposição Como discutimos na leitura anterior, a superposição é um problema comum na aprendizagem de máquinas. As árvores de decisão sofrem com isso, porque eles são treinados para parar quando classificaram perfeitamente todos os dados de treinamento, ou seja, cada ramo é ampliado o suficiente para categorizar corretamente os exemplos relevantes para esse ramo. Muitas abordagens para superar a superposição em árvores de decisão foram tentadas. Conforme resumido por Tom Mitchell, essas tentativas se encaixam em dois tipos: Pare de crescer a árvore antes de atingir a perfeição. Permita que a árvore cresça completamente, e depois pós-podar alguns dos ramos dele. A segunda abordagem encontrou-se mais bem sucedida na prática. Ambas as abordagens se resumem à questão de determinar o tamanho da árvore correto. Veja o Capítulo 3 do livro de Tom Mitchells para uma descrição mais detalhada sobre a superação da evasão na aprendizagem de árvores de decisão. 11.5 Problemas apropriados para a aprendizagem de árvores de decisão É um trabalho habilidoso na AI escolher exatamente o método de representação de aprendizagem correto para uma determinada tarefa de aprendizagem. Conforme elaborado por Tom Mitchell, o aprendizado da árvore de decisão é mais adequado aos problemas com essas características: os conceitos de fundo descrevem os exemplos em termos de pares atributo-valor e os valores para cada intervalo de atributos em relação a infinitas possibilidades fixas. O conceito a ser aprendido (Mitchell o chama de função de destino) possui valores discretos. Descrições simbólicas podem ser necessárias na resposta. Além disso, o aprendizado da árvore de decisão é robusto para erros nos dados. Em particular, funcionará bem à luz de (i) erros nas instâncias de classificação fornecidas (ii) erros nos pares atributo-valor fornecidos e (iii) valores faltantes para determinados atributos para determinados exemplos. Copie Simon Colton 2004

No comments:

Post a Comment