Baixe o app para aproveitar ainda mais
Prévia do material em texto
Aluno: Vinícius Biasi Nascimento • Trabalho da N1 • Construir uma árvore de decisão (de forma automática, por indução) para o domínio (aplicação) de sua preferência. Justificar a sua escolha, ou seja, dizer o motivo pelo qual uma árvore de decisão pode ser aplicada ao conjunto de dados de sua preferência. Para isso, você pode utilizar a tecnologia de sua preferência. Na aba de arquivos deste curso, você encontrará exemplos em linguagem C, em Python e no Matlab. A variável de maior importância (que melhor explica a variabilidade dos dados) é “Possui Carteira Nacional de Habilitação (CNH)”. A partir da raiz, a árvore se ramifica em três grupos principais: (1) > 18 anos, (2) Possui Carro (3) Possui Moto. Com base nas justificativas, a arvore de decisão representa as decisões de pode tirar ou não a CNH, se ele tem a idade adequada para tirar a CNH e portar ela. Com isso, podemos analisar uma estimativa que se ele tiver a CNH, ele pode possuir dois grupos de automóveis que são os carros e motos. Podendo analisar o uso destes com o uso da CNH. • Árvore de decisão - Possui CNH: • Implementação • Console com a Geração dos Dados • Dados da Tabela • Imagem da Arvore Observam-se, através da AD representada, as variáveis selecionadas, bem como sua influência no uso (ou não) de cada um dos dois modos de transporte considerados. Ter Carteira Nacional de Habilitação (CNH), por exemplo, influencia positivamente o uso do modo de transporte particular automotivo (maior quer 0,50% utiliza automóvel), assim como ter CNH (maior que 0,50% e ter mais de 18 anos utilizando a mesma porcentagem). Indivíduos que não possuem CNH e não possuem Carro são mais propensos ao uso do modo de transporte motorizado ou não se utilizam transportes. Verificou-se também uma boa porcentagem com a de possuir carro e moto, o uso de não ter a CNH, e mesmo assim utilizando os automóveis para utilização no dia a dia e com isso, podendo levar Multa. • Código: # -*- coding: utf-8 -*- """ @author: Vinicius Biasi """ import six #Biblioteca de compatibilidade entre o Python 2 e 3 import sys sys.modules['sklearn.externals.six'] = six import pandas as pd #Manipula arquivos from sklearn.preprocessing import LabelEncoder #Biblioteca de data science from id3 import Id3Estimator #Importa o algoritmo id3 from id3 import export_graphviz #Importa o gráfico do algoritmo id3 import numpy as np #Biblioteca numérica arquivo = pd.read_csv('CNHArvore.csv') #Vai ler o arquivo .csv #Previsõres previsores = arquivo.iloc[:,0:3].values #Classe classe = arquivo.iloc[:,3].values #Nome dos previsores colunas = np.asarray(arquivo.columns[0:3]) print(previsores) print(classe) labelencoder = LabelEncoder() #Vai pegar os dados da tabela previsores[:,0] = labelencoder.fit_transform(previsores[:,0]) #Converte string para binário previsores[:,1] = labelencoder.fit_transform(previsores[:,1]) previsores[:,2] = labelencoder.fit_transform(previsores[:,2]) print("Depois da transformação:") print(previsores) #Treina a árvore e exporta o resultado estimator = Id3Estimator() estimator.fit(previsores, classe) t = export_graphviz(estimator.tree_, 'cnh.dot', colunas) #Gera um arquivo .dot com os dados da tabela #Para ver a imagem da árvore copia o texto do arquivo neste site: #https://dreampuf.github.io/GraphvizOnline/ ⚫ Atividade 1 • Ler o cap. 1 e cap 2 (livro de Norvig e Russel) e fazer os exercícios do cap. 2: 2.1, 2.2, 2.3, 2.4, 2.5 e 2.6. 2.1 Suponha que a medida de desempenho se preocupa apenas com os T primeiros passos de tempo do ambiente e ignora tudo a partir de então. Mostre que a ação de um agente racional depende não apenas do estado do ambiente, mas também do passo de tempo que ele alcançou. Um agente realiza a avaliação de seu ambiente abstraindo informações dele e gera uma sequência de ações de acordo com as percepções que recebe. Essas ações quando realizadas podem ou não afetar o ambiente e se houver alguma mudança nas ações do agente isso significa que é necessária uma atualização do ambiente. As ações do agente podem variar tomando diversos caminhos portanto é crucial que saibamos qual será o resultado, não somente apenas as etapas em que o tempo T (intervalos) influenciam por conta da constante mudança do mundo. Um agente deve realizar suas ações com base em seu conhecimento se houverem paradas no tempo T e o agente não for construído com o intuito de lidar com essas paradas não será possível que esse agente obtenha êxito. 2.2 Vamos examinar a racionalidade de várias funções do agente aspirador de pó. (a) Mostre que a função do agente aspirador de pó simples descrito na Figura 2.3 é realmente racional, conforme as suposições listadas na página 38. Para que o agente de aspirador de pó simples seja considerado racional é necessário que ele atenda algumas suposições como se o mapa já está anexado a sua base de conhecimento ou se ele consegue identificar através de um sensor se é hora de realizar a limpeza ou não e assim ele sempre agira dentre os limites preestabelecidos. (b) Descreva uma função de agente racional para o caso em que cada movimento custa um ponto. O programa de agente correspondente exige estado interno? Se cada movimento custar um ponto, um estado interno é necessário para manter o controle dos pontos de partida (se houver) e a subtração desses pontos. A não ser que a pontuação comece em 0 e seja negativa para cada movimento. Mas, se limpar um espaço, dá um ponto, então um objetivo ideal seria tentar obter uma pontuação de 0 ou mais. (c) Descreva possíveis projetos de agentes para os casos em que quadrados limpos podem ficar sujos e a geografia do ambiente é desconhecida. Faz sentido para o agente aprender a partir de sua experiência nessas situações? Em caso afirmativo, o que ele deve aprender? Se não, por quê? Se o ambiente pode variar seus estados como a mudança de um estado limpo para sujo então é necessário que o aspirador limpe esses espaços que ficaram sujos. E para economizar energia é necessário que o aspirador saiba analisar o ambiente e mapeá-lo a cada etapa concluída de limpeza para que seu sugador a vácuo não fique ligado o tempo todo e ele passe novamente em um espaço já limpo. Ao inicializar, ele deve assumir que todos os espaços estão sujos e iniciar um caminho para limpar todos eles, certificando-se de obter todos os espaços sujos. Quanto mais o aspirador faz isso, mais ele conhece os arredores e com que frequência deve limpar. 2.3 Para cada uma das seguintes afirmações, diga se é verdadeiro ou falso e justifique com exemplos a sua resposta ou com contraexemplos se for o caso. (a) Um agente que detecta apenas informações parciais sobre o estado não podem ser perfeitamente racionais. Falso, pois, a racionalidade está ligada a capacidade de tomada de decisões a partir de um conhecimento prévio. (b) Existem ambientes de tarefa nos quais nenhum agente reativo puro pode comportar-se racionalmente. Verdadeiro. Um agente reativo puro ignora percepts anteriores, portanto, não é possível obter uma estimativa de estado ideal em um ambiente parcialmente observável. Um exemplo disso é o xadrez, que é jogado através do envio de movimentos. Se o movimento do outro jogador é o percept atual, um agente reativo puro não poderia manter o controle do estado do tabuleiro e teria que responder da mesma maneira, independentemente da posição em que foi jogado. (c) Existe um ambiente de tarefa em que todo agente é racional. Verdadeiro. Pois em um ambiente onde há um único estado embelecido e toda e qualquer ação realizada irá convergir para o mesmo resultado e assim o agente sempre será racional. Em geral, qualquer ambiente que é invariante sob permutação das ações satisfará esta propriedade. (d) A entrada para o programa de agente é a mesma que a entradapara a função de agente. Falso. Pois a função do agente considera as sequências de entradas até o instante determinado já o programa de agente toma como entrada a percepção em tempo real. (e) Toda função de agente é implementável por uma combinação de programa/máquina. Falso. Porque há problemas que são intratáveis como de tamanhos aleatórios em tempo constante, ou seja, onde há diversas mudanças e que o agente não pode tomar uma decisão por faltado conhecimento prévio da entrada. (f) Suponha que um agente selecione sua ação uniformemente ao acaso do conjunto de ações possíveis. Existe um ambiente de tarefa determinista em que esse agente é racional. Verdadeiro. Trata-se de um caso especial. Já que não importa qual ação você é tomada, ao selecionar aleatoriamente, isso é racional. (g) É possível para um dado agente ser perfeitamente racional em dois ambientes de tarefa distintos. Verdadeiro. Por exemplo, podemos modificar arbitrariamente as partes do ambiente que são inacessíveis por qualquer política ideal, desde que fiquem inacessíveis (h) Todo agente é racional em um ambiente não observável. Falso. Algumas ações são estúpidas e o agente pode ter conhecimento disso se ele tem um modelo do ambiente, mesmo que o estado do ambiente não possa ser perceptível. (i) Um agente jogador de pôquer perfeitamente racional nunca perde. Falso. A não ser que tenha saído com uma mão perfeita, o agente pode sempre perder se um adversário tem cartas melhores. Isso pode acontecer por jogo após jogo. 2.4 Para cada uma das seguintes atividades, forneça uma descrição PEAS do ambiente da tarefa e caracterize-o em termos das propriedades listadas na Seção 2.3.2. • Jogar futebol: Parcialmente observável: O ambiente pode ser alterado por fatores como temperatura, chuva ou até mesmo neve. Agente múltiplo: Cada jogador realiza uma funcionalidade diferente sendo que cada jogador é um agente. Estocástico: Não há como definir completamente o estado do ambiente pois ele varia constantemente. Sequencial: As ações atuais do agente influenciam em decisões futuras. Dinâmico: Por ser um ambiente dinâmico ele se encontra em constante mudança e pode mudar durante a ação de um agente. Contínuo: A passagem do tempo e a velocidade da bola são contínuos no tempo. • Explorar os oceanos subterrâneos de Titã: Parcialmente observável: Mudanças podem ocorrer no ambiente como terremotos e desabamentos. Único: Apenas um robô explorando o local. Estocástico: Não há como definir completamente o estado do ambiente. Sequencial: As ações atuais do agente influenciam nas ações futuras. Dinâmico: O ambiente pode passar por mudanças. Contínuo: A passagem do tempo e a velocidade do agente são contínuos no tempo. • Comprar livros usados de IA na Internet: Parcialmente observável: Alterações podem ocorrer no ambiente como o lançamento de um livro novo ou a indisponibilidade de um livro. Agente único: Apenas um mecanismo de pesquisa. Determinístico: O próximo estado do ambiente depende da ação do agente. Sequencial: As ações atuais do agente influenciam nas decisões futuras. Estático: O ambiente só altera se o agente atuar nele. Discreto: O ambiente tem um número finito de estados. • Jogar uma partida de Tênis Parcialmente observável: pois o ambiente pode mudar de forma drástica, como chuva, interferência de outros objetos que não seja a bola. Agente único: agente compete com outro jogador para cumprir seu objetivo de ganhar a partida. Estocástico: não se pode prever todas as jogadas do outro jogador. Sequencial: dados como a velocidade da bola mudam de forma contínua. Dinâmico: enquanto o agente delibera o ambiente muda, o jogador adversário muda sua posição e a bola sua trajetória. Continuo: as ações do agente são deliberadas de forma contínua no tempo e as escolhas de ações anteriores influenciam nos seus estados futuros, como jogar a bola para a direita ou esquerda pode desencadear uma sequência de eventos que leve a um deslocamento para a direita futuramente. Desconhecido: por ser multiagente, o outro agente pode interagir com a bola com diferentes estratégias as quais o agente vai ter que se adaptar no momento. • Praticar tênis contra uma parede: Totalmente observável: O ambiente não sofre alteração. Único: Apenas um jogador. Determinístico: O próximo estado do ambiente depende das ações do agente. Sequencial: As ações atuais do agente influenciam nas decisões futuras. Estático: O ambiente não muda enquanto o agente está atuando nele. • Realizar um salto de altura: Totalmente: O ambiente não sofre alteração. Único: Apenas um agente. Determinístico: O próximo estado do ambiente depende das ações do agente. Episódico: O agente percebe o estado do ambiente e executa a ação de salto. Estático: O ambiente não muda enquanto o agente está atuando nele. • Licitações de um item em um leilão: Totalmente: O ambiente não sofre alteração. Único: Apenas um agente. Determinístico: O próximo estado do ambiente depende das ações do agente. Episódico: O agente percebe o estado do ambiente e executa a ação de venda. Estático: O ambiente não muda enquanto o agente está atuando nele. Agente Desempenho Ambiente Atores Sensores Jogar Futebol Fazer Gol, realizar o mínimo de faltas, Estar Concentrado Campo de Futebol Jogadores, Técnicos, Juízes, Var Câmeras, Sensores e Movimento Explorar os oceanos subterrâneos de Titã Profundidade, experiência, coleta de materiais Saturno, Lua de Saturno, Link de transmissão, Subterrâneo Cientistas, Astronautas Sondas, Câmeras, Profundidade Comprar livros usados de IA na Internet Receber livro de IA em casa Internet, Lojas Online de Livros, Transportadora e Residência Site de venda, entregador, comprador Leitor de código de barras Jogar uma partida de tênis Fazer pontos, vencer a partida, estratégia Quadra Jogadores, Juízes, Plateia, preparador físico Medidor de velocidade da bola, Câmeras, Movimento Praticar tênis contra uma parede Jogar a bola na parede, e esperar a ação dela voltar Sala Jogador, Parede Câmeras Realizar um salto de altura Altura do Santo, permanecer em pé após o salto Linha, área de aterrissagem Atleta Sensor de altura, Velocímetro, sensores de precisão Licitações de um item em um leilão Arremata o item, Bom preço de arremate Casa de Leilões, Leilões Online Compradores, e leiloeiro Sensor de lance mais alto 2.5 Defina com suas próprias palavras os termos a seguir: agente, função de agente, programa de agente, racionalidade, autonomia, agente reativo, agente baseado em modelo, agente baseado em objetivos, agente baseado em utilidade, agente com aprendizagem. Agente: O Agente é aquele que percebe o ambiente buscando a realização da ação correta adaptando-se a mudanças procurando cumprir as metas estabelecidas. Função do agente: É responsável por determinar uma ação, baseada na percepção atual, ou, o que é mais comum, numa sequência de percepções. Programa de agente: Caracteriza a função do agente que é responsável por determinar uma ação, baseada na percepção atual, ou, o que é mais comum, numa sequência de percepções. Racionalidade: capacidade de agir sempre em busca dos próprios objetivos. Autonomia: é a capacidade do agente de executar o controle sobre suas próprias ações. Agente reativo: não modelam o mundo para determinar suas ações. São agentes simples que possuem um mapeamento de situações e respostas associadas. Assim, quando um estado ambiental ocorre, o agente executa a ação correspondente. Agente baseado em modelo: o agente que o usa o modelo de mundo. Agente baseado em objetivos: o agente precisa de algum tipo de informação sobre o seu objetivo,e esses objetivos descrevem situações desejáveis. Agente baseado em utilidade: se um estado do mundo é mais desejável que outro, então ele terá maior utilidade para o agente. Agente com aprendizagem: habilidade apresentada pelo agente de acumular conhecimento baseado em experiências anteriores, e consequentemente, modificar seu comportamento em resposta às novas situações. 2.6 Este exercício explora as diferenças entre funções de agentes e programas de agentes. (a) Pode haver mais de um programa de agente que implemente uma dada função de agente? Dê um exemplo ou mostre por que não é possível. Sim. Podemos criar um programa de agente por meio da modificação de um programa de agente existente, inserindo comandos inúteis que não alterem a saída do programa. Estes dois programas implementam a mesma função de agente. (b) Existem funções de agente que não podem ser implementadas por qualquer programa de agente? Sim. O agente imprime ‘true’ caso o percept seja um programa de máquina de Turing que pare, e imprime ‘false’, caso contrário. Sendo observado que para máquinas de velocidade inferior a infinita, a função do agente faz uma jogada vencedora, se for possível, em um jogo de xadrez. (c) Dada uma arquitetura de máquina fixa, cada programa de agente implementa exatamente uma função de agente? Sim. O comportamento do agente é corrigido pela arquitetura e pelo programa. (d) Dada uma arquitetura com n bits de armazenamento, quantos programas de agentes distintos são possíveis nessa arquitetura? Existem programas de agente 2n, embora muitos destes não serão executados. Qualquer programa pode dedicar no máximo n bits para o armazenamento, podendo ser distinguidas apenas 2n histórias passadas. Como a função de agentes específicas ações com base em históricos dos percepts, haverá muitas funções de agente que não poderão ser implementadas devido à falta de memória disponível na máquina. (e) Suponha manter fixo o programa de agente, mas aumentamos a velocidade da máquina por um fator de dois. Isso muda a função de agente? Depende do programa e o meio ambiente. Se o ambiente é dinâmico, o excesso de velocidade da máquina pode significar a escolha diferente (talvez melhor) ações e / ou agir mais cedo. Se o ambiente é estático e o programa não presta atenção à passagem de tempo decorrido, a função do agente é inalterada. ⚫ 2) Todos os exercícios que estão nos slides “Representação- conhecimento.pdf”. 2.1. Tendo o ser humano como primeiro modelo de observação, descreva um processo de acúmulo do conhecimento que o possibilite agir de forma inteligente. Em seguida, identifique as propriedades desse modelo. Uma pessoa tendo contato a primeira vez com um Cubo Magico. Humano -> Sentido -> Objeto -> Conhecimento -> Interação -> Conseguir alinhar as cores rapidamente. Adequação Inferencial (Sentido), Eficiência Inferencial (Cubo Magico), Adequação Representacional (Conhecimento). 2.2. Descreva um conjunto de Regras de Produção (utilizando o português estruturado) para um Sistema Computacional, que com fatos fornecidos pelo usuário, possa ser usado na escolha de um vinho. Como fatos, considere dados de entradas. Um conjunto de regras, <condição>: determina a aplicabilidade da regra, <ação>: descreve a ação a ser realizada se a regra for aplicada. tipo_molhos = {tomate, carne, brancos, frutos do mar, pesto} preço = {<100,00, 100-200, >200} tipo = {branco, rosés, tinto, fresco} origem = {Argentina, Chile, Europa, USA, Italia} UVA = {Malbec, Cabernet, Merlot, Syrah, Carmenere} safra = {2005, 2007, 2018, 2020} Escolha = {sim, não} Se tipo_molhos = tomate então tipo=tinto Se origem = Chile então UVA = Cabernet se Safra = 2007 Se preço <100 então vinho escolhido então escolha = sim Com base na finalização do algoritmo, o usuário irá ter uma decisão e escolhe do vinho. O agente ele classifica os conjuntos de variáveis, para a decisão feita pelo usuário com base nos diferentes tipos de escolhas de cada variável. 2.3. Defina a função do agente para um recomendador de jogo. Defina a medida de desempenho para o agente. Em seguida, construa um conjunto de produção para implementar o programa do agente, considerando se tratar de um agente reativo simples. Objetivo (Função do agente): Recomendar um jogo baseado nas escolhas do usuário; Medida de desempenho: Jogo escolhido com sucesso de acordo com as escolhas do usuário; Fatos: Dados de entrada; Disponível = {Xbox, Playstation, Nintendo_Switch} Gênero = {ação, aventura, luta, atirador, esporte, estratégia} // Classificação = {todas_as_idades} Classificação_Etária = {10, 12, 14, 16, 18} Aceitar_Sugestão = {sim, não} Valor = {<50, 60-100, >200} Aceitar_Sugestão {sim, não} Se Disponível = Xbox Então Classificação_Etária = 16 Se Gênero = luta e Valor = 60-100 Então .... Então = Escolhido function Agente_Reativo_Simples (percept) return uma ação static: regras – um conjunto de regras condição-ação Estado ← Interpreta_Entrada (percept) Regra ← Acha_Regra (estado, regras) Ação ← Regra_Ação [regra] return ação ⚫ 3) Leia o texto “Árvores de Decisão”, dos prof. Fernando J. Von Zuben & Romis R. F. Attux. Em seguida, responder ao questionário. 1) Como podem ser classificados os atributos utilizados em árvores de decisão? De acordo com texto base, costuma-se especificar os atributos em três formas categóricos ordinais, categóricos não-ordinais e contínuos. Os contínuos assumem valores numéricos em intervalos no eixo dos números reais. Categóricos ordinais eles assumem um conjunto finito de valores, que podem ser ordenados. Categóricas não-ordinais assumem um conjunto finito de valores que não podem ser ordenados. 2) O que é uma classe? A classe é uma variável dependente cujo valor é definido a partir das variáveis independentes, ou seja, a partir dos atributos. 3) Qual o significado de modelagem descritiva e modelagem preditiva, por meio de árvores de decisão. Na modelagem descritiva, um modelo de classificação é utilizado como uma ferramenta para distinguir exemplos de diferentes classes. Como exemplo, um médico pode utilizar um modelo de classificação para identificar quais são as principais causas de uma determinada doença. Quando há o interesse em análise descritiva, é desejável que o modelo de classificação seja fácil de interpretar, ou seja, que fique claro ao usuário o porquê de um determinado exemplo pertencer a uma determinada classe. Na modelagem preditiva, um modelo de classificação é utilizado para classificar exemplos cujas classes são desconhecidas, ou seja, exemplos que não foram utilizados na construção do modelo. Como exemplo, um médico pode utilizar um conjunto de dados históricos de seus pacientes, em que as classes (diagnóstico) já são conhecidas, para construir um modelo de classificação a ser utilizado para diagnosticar novos pacientes. 4) O que é indução manual (top-down) e o que é indução automática (botton-up), em árvores de decisão? Top Down nada mais é que um algoritmo que gera regras ordenadas pela ordem que são induzidas enquanto o método bottom-up gera um conjunto não ordenado. Esta diferença implica que a aplicação do conjunto de regras a exemplos não classificados seja, no caso do top-down, cada exemplo é classificado pela primeira regra satisfeita, no caso bottom-up, todas as regras satisfeitas são utilizadas para classificar o exemplo, optando pela regra com melhor qualidade. 5) O que significa ganho de informação baseado em entropia? O ganho informacional é baseado na redução da entropia depois de uma divisão do conjunto de dados baseado em determinada regra. A entropia é uma forma de medir a probabilidade de obter um elemento positivo a partir de uma seleçãoaleatória do subconjunto de dados. Ou seja, construir uma árvore de decisão se trata de encontrar regras sobre as variáveis do modelo (ou pontos de corte) que retornam o maior ganho de informação, isto é, que tornam os ramos da árvore mais homogêneos, com menor entropia. 6) O que significa razão do ganho? Nada mais é do que o ganho de informação relativo (ponderado) como critério de avaliação. 7) Para que serve o índice Gini? Como é utilizado na indução de árvores de decisão? Ele serve para medir a heterogeneidade dos dados e é utilizado tanto para a seleção de atributos como também em análises econômicas e sociais para verificar a distribuição de renda em um certo país. Quando se utiliza o critério Gini na indução de árvores de decisão binárias, tende-se a isolar num ramo os registros que representam a classe mais frequente, assim, utilizando o atributo com menor valor do índice para a classificação, já, ao utilizar-se da entropia, balanceia-se o número de registros em cada ramo. Um algoritmo de indução de árvore de decisão bastante conhecido que utiliza o índice GINI para a seleção de atributos é o algoritmo CART (Classification and Regression Trees), ele realiza a indução pela abordagem top- down e constrói uma árvore de decisão binária simples e legível. 8) Descreva as cinco alternativas apresentadas para a representação dos nós para atributos categóricos. Existem cinco formas de representação dos nós para atributos categóricos são eles, um ramo para cada valor de atributo, que é a partição mais comum, na qual é criada uma aresta para cada valor do atributo usado como condição de teste. Embora esse tipo de partição permita extrair do atributo todo o seu conteúdo informativo, possui a desvantagem de tornar a árvore de decisão mais complexa outra. Uma alternativa é a solução de Hunt que é a partição utilizada pelo algoritmo ID3, sugere uma partição binária. Nesse caso, um dos valores é atribuído a uma das arestas e todos os outros valores à outra aresta. Já os tributos categóricos ordinais: Como já definido, um atributo é ordinal quando há uma relação de ordem entre os seus possíveis valores. Com atributos desse tipo, é possível realizar uma partição binária do tipo altura < 〈média〉, em que todos os exemplos cujo atributo altura tem valor 〈baixa〉 seguem por uma aresta e os outros seguem por outra aresta. Agrupamento de valores em dois conjuntos: pode ser realizada de uma forma mais complexa, onde cada um dos dois subconjuntos pode ser formado por registros com mais de um valor para o atributo utilizado como condição de teste. 9) Qual a utilidade dos métodos de poda, em árvores de decisão? Quando árvores de decisão são construídas, muitas das arestas ou sub-árvores podem refletir ruídos ou erros. Isso acarreta um problema conhecido como sobre ajuste, que significa um aprendizado muito específico do conjunto de treinamento, não permitindo ao modelo generalizar. Para detectar e excluir essas arestas e sub- árvores, são utilizados métodos de poda (pruning) da árvore, cujo objetivo é melhorar a taxa de acerto do modelo para novos exemplos, os quais não foram utilizados no conjunto de treinamento (HAN, 2001). 10) Apresente as principais características dos algoritmos ID3, C4.5 e Cart. Uma árvore de decisão é um classificador que particiona dados recursivamente para formar grupos ou classes. Este é um algoritmo de aprendizado supervisionado que pode ser usado em dados discretos ou contínuos para classificação ou regressão. O algoritmo usado nas árvores de decisão é ID3, C4.5, CART, C5.0, CHAID, QUEST, CRUISE etc. A árvore de decisão consiste em nós que formam uma árvore enraizada, o que significa que é uma árvore direcionada com um nó chamado “Raiz” que não possui arestas recebidas. Todos os outros nós têm exatamente uma borda de entrada. Um nó com arestas de saída é chamado de nó interno ou de teste. Todos os outros nós são chamados de folhas. ID3 ou Dicotomizador Iternativo, foi a primeira de três implementações da Árvore de Decisão desenvolvidas por Ross Quinlan Ele cria uma árvore de decisão para os dados fornecidos de maneira descendente, iniciando a partir de um conjunto de objetos e uma especificação de propriedades Recursos e informações. Cada nó da árvore, uma propriedade é testada com base na maximização do ganho de informações e na minimização da entropia, e os resultados são usados para dividir o conjunto de objetos. Esse processo é feito recursivamente até que o conjunto em uma subárvore seja homogêneo (ou seja, contém objetos pertencentes à mesma categoria). O algoritmo ID3 usa uma pesquisa gananciosa. Ele seleciona um teste usando o critério de ganho de informações e nunca explora a possibilidade de escolhas alternativas. C4.5: Versão aprimorada no ID 3 da Quinlan. Os novos recursos (versus ID3) são: (i) aceita recursos contínuos e discretos; (ii) lida com pontos de dados incompletos; (iii) resolve o problema de ajuste excessivo por meio da técnica bottom-up (muito inteligente), geralmente conhecida como "poda"; e (iv) pesos diferentes podem ser aplicados aos recursos que compõem os dados de treinamento. Cart: Alta capacidade de relacionar dados, Gera arvores mais simples, produz arvores binarias, utiliza agrupamento de valores em dois conjuntos, possui método de pós poda. ⚫ 4) Utilizando os dados do problema “Ir ao Café Cancun”, do arquivo “AulaID3.pdf”, encontre qual atributo deve ser escolhido como a raiz da árvore de decisão. Para isso, aplique o algoritmo ID3. No exemplo apenas existem duas classes de classificação, ou seja, vai pro café (Sim), que seria o nosso positivo. Ou não irá pro café (Não) que seria o nosso negativo. − Por essa definição aplica o conceito de Entropia e ganho. https://planetcalc.com/8421/# O atributo deve ser escolhido como a raiz da árvore de decisão é Fome, com base no site Planet Cálc. O maior ganho de informação está na coluna Fome, e como a entropia para ambas variações é 0 os nos dessas variações são folhas da arvore, portanto a nossa arvore fica: https://planetcalc.com/8443/ Primeiro, deve ser selecionado a coluna ação e feito o cálculo com a probabilidade de sim e não acontecer: 𝒑 = 𝒒𝒕𝒅/𝒕𝒐𝒕𝒂𝒍 Quantidade de sim = 7 | para sim = 7/12 Quantidade de não = 5 | para não = 5/12 Total = 12 𝑬 = − ∑ 𝒑𝒊𝒍𝒐𝒈𝟐(𝒑𝒊) Após calcular a entropia da coluna ação: Entropia ação = − [( 𝟕∗ 𝒍𝒐𝒈( 𝟕 )) + ( 𝟓∗ 𝒍𝒐𝒈( 𝟓 ))] = 𝟎, 𝟗𝟕𝟗𝟖𝟔𝟖𝟕𝟓𝟔𝟔𝟓𝟏 A coluna do sono gerar três ramos, um para cada variação da coluna. Deve ser calculado a entropia e o peso de cada mudança: Quantidade de pouco = 6 pouco sim na tabela pai = 4 pouco não na tabela pai = 2 para sim = 4/6 para não = 2/6 Entropia pouco = − [(𝟒/6 ∗ 𝒍𝒐𝒈 (𝟒/6)) + (𝟐/6 ∗ 𝒍𝒐g(𝟐))] = 𝟎, 𝟗𝟏𝟖𝟐𝟗𝟓𝟖𝟑𝟒𝟎𝟓𝟒 Peso pouco = 𝒂𝒎𝒐𝒔𝒕𝒓𝒂𝒔 𝒇𝒊𝒍𝒉𝒐/𝒂𝒎𝒐𝒔𝒕𝒓𝒂𝒔 𝒑𝒂𝒊 = 6/12 Quantidade de sim = 3 sim na tabela pai = 0 sim não na tabela pai = 3 para sim = 0/3 para não = 3/3 Entropia sim = − [(𝟎/3 ∗ 𝒍𝒐𝒈 (𝟎/3)) + (𝟑/3 ∗ 𝒍𝒐𝒈(𝟑/3))] = 𝟎 Peso sim = 𝒂𝒎𝒐𝒔𝒕𝒓𝒂𝒔 𝒇𝒊𝒍𝒉𝒐 / 𝒂𝒎𝒐𝒔𝒕𝒓𝒂𝒔 𝒑𝒂𝒊 = 𝟑/12 Quantidade de não = 3 não sim na tabela pai = 3 sim não na tabela pai = 0 para sim = 3/3 para não = 0/3 Entropia não = − [(𝟎/3 ∗ 𝒍𝒐𝒈 (𝟎/3)) + (𝟑/3 ∗ 𝒍𝒐𝒈(𝟑/3))] = 𝟎 Peso pouco = 𝒂𝒎𝒐𝒔𝒕𝒓𝒂𝒔 𝒇𝒊𝒍𝒉𝒐 / 𝒂𝒎𝒐𝒔𝒕𝒓𝒂𝒔 𝒑𝒂𝒊 = 3/12 Cálculo do ganho de informação para a coluna sono: 𝑮𝒂𝒏𝒉𝒐𝑰𝒏𝒇𝒐 = 𝒆𝒏𝒕𝒓𝒐𝒑𝒊𝒂𝒑𝒂𝒊 − ∑ 𝒑𝒆𝒔𝒐𝒇𝒊𝒍𝒉𝒐𝒆𝒏𝒕𝒓𝒐𝒑𝒊𝒂𝒇𝒊𝒍𝒉𝒐 Ganho de informação sono: = 𝟎, 𝟗𝟕𝟗𝟖𝟔𝟖𝟕𝟓𝟔𝟔𝟓𝟏 – [( 𝟔/12 ∗ 𝟎, 𝟗𝟏𝟖𝟐𝟗𝟓𝟖𝟑𝟒𝟎𝟓𝟒) + (𝟎 ∗ 𝟑/12 ) + (𝟎 ∗ 𝟑/12 )] Ganho informação sono = 𝟎. 𝟓𝟐𝟎𝟕𝟐𝟎𝟖𝟑𝟗𝟔𝟐𝟒 O mesmo processo se repete nas outras colunas: Sono TransportePUC Álcool Sair Fome Ação GI 𝟎, 𝟓𝟐𝟎𝟕𝟐 𝟎 𝟎, 𝟎𝟗𝟓𝟒𝟑𝟕 𝟎, 𝟎𝟔𝟐𝟗𝟎𝟕 𝟐𝟗𝟑 𝟎, 𝟎𝟔𝟐𝟗𝟎𝟕𝟐𝟗 𝟑 𝟎, 𝟎𝟖𝟏𝟕𝟎𝟒𝟏 𝟔 𝟎, 𝟎𝟑𝟎𝟑 𝟕𝟕𝟑𝟑 - A coluna com o maior ganho de informação será a raiz da árvore, no caso a coluna sono. Como base no sono, é gerado 3 ramos, será dividido a base de dados para os três respectivos ramos: Sono – Pouco: Sono Transporte PUC Álcool Sair Fome Ação Pouco Carro Sim Sim Não Sim Sim! Pouco Carona Não Não Sim Sim Sim! Pouco Carona Não Não Sim Não Sim! Pouco Outros Não Sim Não Sim Não Pouco Carro Sim Não Sim Sim Sim! Pouco Carona Não Não Não Sim Não Sono – Sim: Sono Transporte PUC Álcool Sair Fome Ação Sim Carro Não Sim Sim Sim Não Sim Outros Sim Sim Sim Não Não Sim Carro Não Sim Sim Não Não Sono – Não: Sono Transporte PUC Álcool Sair Fome Ação Não Outros Sim Sim Sim Sim Sim! Não Carro Não Sim Sim Não Sim! Não Carona Não Sim Sim Sim Sim! É observado para a entropia do sono - sim e do sono - não é notado que é 0. Nas tabelas que representam os ramos dessas variações, é notado que independentemente do valor das outras colunas sempre que sono – sim, não vou ao café e sempre que sono não, vou ao café. Esses nós, portanto, geram folhas da arvore. O processo vai se repetir com a tabela de dados que não gerou uma folha ainda, Sono – Pouco. Entropia da coluna ação = 𝟎. 𝟗𝟏𝟖𝟐𝟗𝟓𝟖𝟑 Ganhos de informação das colunas? Transporte Sim Não Peso Entropia Carro 2 0 2/6 0 Carona 2 1 3/6 𝟎. 𝟗𝟏𝟖𝟐𝟗𝟓𝟖𝟑 Outros 0 1 1/6 0 Ganho de informação (Transporte) = 𝟎. 𝟓𝟒𝟎𝟖𝟓𝟐𝟎𝟖 PUC Sim Não Peso Entropia Sim 2 0 2/6 0 não 2 2 4/6 1 Ganho de informação (PUC) = 𝟎. 𝟑𝟑𝟑𝟑𝟑𝟑𝟑𝟑 Álcool Sim Não Peso Entropia Sim 1 1 2/6 1 não 3 1 4/6 𝟎. 𝟖𝟏𝟏𝟐𝟕𝟖𝟏𝟐 Ganho de informação (Álcool) = 𝟎. 𝟏𝟐𝟓𝟖𝟏𝟒𝟓𝟖 Sair Sim Não Peso Entropia Sim 3 0 3/6 0 não 1 2 3/6 𝟎. 𝟗𝟏𝟖𝟐𝟗𝟓𝟖𝟑 Ganho de informação (Sair) = 𝟎. 𝟓𝟒𝟎𝟖𝟓𝟐𝟎𝟖 Fome Sim Não Peso Entropia Sim 3 2 5/6 𝟎. 𝟗𝟕𝟎𝟗𝟓𝟎𝟓𝟗 não 1 0 1/6 0 Ganho de informação (Fome) = 𝟎. 𝟏𝟗𝟎𝟖𝟕𝟒𝟓𝟎 Transporte PUC Álcool Sair Fome Ação GI 𝟎. 𝟓𝟒𝟎𝟖𝟓𝟐𝟎𝟖 𝟎. 𝟑𝟑𝟑𝟑𝟑𝟑𝟑𝟑 𝟎. 𝟏𝟐𝟓𝟖𝟏𝟒𝟓𝟖 𝟎. 𝟓𝟒𝟎𝟖𝟓𝟐𝟎𝟖 𝟎. 𝟏𝟗𝟎𝟖𝟕𝟒𝟓𝟎 - Como transporte e sair tem o mesmo ganho de informação, escolhemos o primeiro. A árvore fica dessa forma até o momento: ---------------------------------------------------------------------------------------------------------- 𝑺𝒐𝒏𝒐 === 𝒔𝒊𝒎 ===> 𝒏ã𝒐 𝑺𝒐𝒏𝒐 === 𝒏ã𝒐 ===> 𝒔𝒊𝒎 𝑺𝒐𝒏𝒐 === 𝒑𝒐𝒖𝒄𝒐 ===> 𝒕𝒓𝒂𝒏𝒔𝒑𝒐𝒓𝒕𝒆 ---------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------- 𝑻𝒓𝒂𝒏𝒔𝒑𝒐𝒓𝒕𝒆 ======= 𝒄𝒂𝒓𝒓𝒐 ========> 𝒔𝒊𝒎 𝑻𝒓𝒂𝒏𝒔𝒑𝒐𝒓𝒕𝒆 ======= 𝒐𝒖𝒕𝒓𝒐𝒔 ========> 𝒏ã𝒐 𝑻𝒓𝒂𝒏𝒔𝒑𝒐𝒓𝒕𝒆 ======= 𝒄𝒂𝒓𝒐𝒏𝒂 ========> ? ---------------------------------------------------------------------------------------------------------- Uma nova rodada será feia, considerando a base de dados com a variação carona de transporte: Sono Transporte PUC Álcool Sair Fome Ação Pouco Carona Não Não Sim Sim Sim! Pouco Carona Não Não Sim Não Sim! Pouco Carona Não Não Não Sim Não Entropia (Ação) = 𝟎. 𝟗𝟏𝟖𝟐𝟗𝟓𝟖𝟑 Cálculo do ganho de informação de cada uma das outras colunas: Puc Sim Não Peso Entropia Sim 0 0 0 0 não 2 1 3/3 𝟎. 𝟗𝟏𝟖𝟐𝟗𝟓𝟖𝟑 Ganho de informação (PUC) = 𝟎. 𝟎𝟖𝟏𝟕𝟎𝟒𝟏𝟕 Alcool Sim Não Peso Entropia Sim 0 0 0 0 não 2 1 3/3 𝟎. 𝟗𝟏𝟖𝟐𝟗𝟓𝟖𝟑 Ganho de informação (Álcool) = 𝟎. 𝟎𝟖𝟏𝟕𝟎𝟒𝟏𝟕 Sair Sim Não Peso Entropia Sim 2 0 2/3 0 não 0 1 1/3 0 Ganho de informação (Sair) = 𝟏 Fome Sim Não Peso Entropia Sim 1 1 2/3 1 não 1 0 1/3 0 Ganho de informação (Fome) = 𝟎. 𝟑𝟑𝟑𝟑𝟑𝟑𝟑𝟑 PUC Álcool Sair Fome Ação GI 𝟎. 𝟎𝟖𝟏𝟕𝟎𝟒𝟏𝟕 𝟎. 𝟎𝟖𝟏𝟕𝟎𝟒𝟏𝟕 1 𝟎. 𝟑𝟑𝟑𝟑𝟑𝟑𝟑𝟑 - O maior ganho de informação está na coluna sair, pois a entropia das duas variantes é 0, e os nós dessas variantes são as folhas da árvore, então a árvore fica desse modelo: ---------------------------------------------------------------------------------------------------------- 𝑺𝒐𝒏𝒐 === 𝒔𝒊𝒎 ===> 𝒏ã𝒐 𝑺𝒐𝒏𝒐 === 𝒏ã𝒐 ===> 𝒔𝒊𝒎 𝑺𝒐𝒏𝒐 === 𝒑𝒐𝒖𝒄𝒐 ===> 𝒕𝒓𝒂𝒏𝒔𝒑𝒐𝒓𝒕𝒆 ---------------------------------------------------------------------------------------------------------- 𝑻𝒓𝒂𝒏𝒔𝒑𝒐𝒓𝒕𝒆 ======= 𝒄𝒂𝒓𝒓𝒐 ========> 𝒔𝒊𝒎 𝑻𝒓𝒂𝒏𝒔𝒑𝒐𝒓𝒕𝒆 ======= 𝒐𝒖𝒕𝒓𝒐𝒔 ========> 𝒏ã𝒐 𝑻𝒓𝒂𝒏𝒔𝒑𝒐𝒓𝒕𝒆 ======= 𝒄𝒂𝒓𝒐𝒏𝒂 ========> 𝒔𝒂𝒊𝒓 ---------------------------------------------------------------------------------------------------------- 𝑺𝒂𝒊𝒓 ======= 𝒔𝒊𝒎 ========> 𝒔𝒊𝒎 𝑺𝒂𝒊𝒓 ======= 𝒏ã𝒐 =======> 𝒏ã𝒐 ----------------------------------------------------------------------------------------------------------
Compartilhar