Ciência da Computação Aprendizado de Máquina (Machine Learning) Aula 09 Árvores de Decisão Max Pereira
Classificação É a tarefa de organizar objetos em uma entre diversas categorias pré-definidas. Exemplos incluem a detecção de mensagens de spam em e-mails, categorização de células como malignas ou benignas, classificação de galáxias, etc.
Classificação Entrada Conjunto de atributos (x) Modelo de Classificação Saída Rótulo da classe (y) Os dados de entrada, também conhecidos como instâncias ou exemplos, durante o processo de aprendizado/treinamento, são caracterizados por um dupla (x, y), onde x é o conjunto de atributos e y o atributo especial, designado como rótulo da classe (atributo alvo).
O rótulo da classe (atributo alvo) deve ser um atributo discreto. Esta é a característica chave que distingue a classificação da regressão, uma tarefa de modelagem preditiva na qual y é um atributo contínuo.
Modelo de Classificação Um modelo de classificação é útil para os seguintes propósitos: Modelagem Descritiva Modelagem Preditiva
Modelo de Classificação Preditiva Uma técnica de classificação é uma abordagem sistemática para construção de modelos de classificação a partir de um conjunto de dados de entrada. Classificadores de árvores de decisão, classificadores baseados em regras, redes neurais, máquinas de vetor de suporte e classificadores bayesianos. Cada técnica emprega um algoritmo de aprendizagem.
Modelo de Classificação Preditiva O objetivo chave de um algoritmo de aprendizagem é construir modelos com boa capacidade de generalização. Modelos que prevejam com precisão os rótulos de classes de exemplos não conhecidos previamente.
Conjunto de Treinamento Atrib1 Atrib2 Atrib3 Classe Sim Grande 125K Não Não Médio 100K Não Não Pequeno 70K Não indução Algoritmo de Aprendizagem Sim Médio 120K Não Não Grande 95K Sim Não Médio 60K Não Não Pequeno 85K Sim Não Pequeno 90K Sim Aprender Modelo Modelo Conjunto de Teste Atrib1 Atrib2 Atrib3 Classe Não Pequeno 55K? Sim Médio 80K? Sim Grande 110K? Não Pequeno 95K? dedução Aplicar Modelo
Os erros cometidos por um modelo de classificação são geralmente divididos em dois tipos: erros de treinamento e erros de generalização. Um bom modelo deve não apenas se adaptar bem aos dados de treinamento, como também deve classificar com precisão os exemplos que nunca havia visto antes.
A avaliação do desempenho de um modelo de classificação é baseada nas contagens de exemplos de testes previstos correta e incorretamente pelo modelo. Estas contagens são tabuladas em uma tabela conhecida como matriz de confusão
Matriz de confusão
Construção de uma Árvore de Decisão Cada nodo folha recebe um rótulo de classe. Os nodos não terminais, que incluem o nodo raiz e outros nodos internos, contém condições de testes de atributos. Aprendizado de Máquina
Construção de uma Árvore de Decisão A princípio, há exponencialmente muitas árvores de decisão que podem ser construídas a partir de um determinado conjunto de atributos. Embora algumas árvores sejam mais precisas que outras, encontrar a árvore ótima é computacionalmente inviável. Apesar disso, algoritmos eficientes têm sido desenvolvidos para induzir uma árvore de decisão razoavelmente precisa. Aprendizado de Máquina
Construção de uma Árvore de Decisão Algoritmo de Hunt, que é a base de muitos algoritmos de indução de árvores de decisão existentes, incluindo ID3, C4.5 e CART. A árvore cresce de forma recursiva pelo particionamento dos exemplos em sucessivos subconjuntos mais puros. Aprendizado de Máquina
Construção de uma Árvore de Decisão Suponha que D t seja um conjunto de exemplos que estão associados ao nodo t e y = {y 1,y 2,...,y n } sejam os rótulos das classes. Passo 1. Se todos os exemplos em D t pertencerem à mesma classe y t, então t é um nodo folha rotulado como y t. Passo 2. Se D t contiver exemplos que pertençam a mais de uma classe uma condição de teste de atributo é selecionada para particionar os exemplos em subconjuntos menores. Aprendizado de Máquina
Construção de uma Árvore de Decisão Passo 3. Um nodo filho é criado para cada resultado da condição de teste e os exemplos de D t são distribuídos para os filhos baseados nos resultados. O algoritmo é então aplicado recursivamente a cada nodo filho. Aprendizado de Máquina
Construção de uma Árvore de Decisão Id Casa Própria Estado Civil Renda Anual Inadimplente 1 Sim Solteiro 125K Não 2 Não Casado 100K Não 3 Não Solteiro 70K Não 4 Sim Casado 120K Não 5 Não Divorciado 95K Sim 6 Não Casado 60K Não 7 Sim Divorciado 220K Não 8 Não Solteiro 85K Sim 9 Não Casado 75K Não 10 Não Solteiro 90K Sim Aprendizado de Máquina
Construção de uma Árvore de Decisão Métricas para selecionar a melhor divisão Essas métricas são definidas em termos da distribuição da classe dos exemplos antes de depois da divisão. Suponha que p(i/t) denote a fração de exemplos que pertencem à classe i em um determinado nodo t. Aprendizado de Máquina
Construção de uma Árvore de Decisão As métricas desenvolvidas para selecionar a melhor divisão são muitas vezes baseadas no grau de impureza dos nodos filhos. Quanto menor o grau de impureza, mais distorcida é a distribuição das classes. Por exemplo, um nodo com distribuição de classe (0,1) possui impureza zero. Enquanto que um nodo com distribuição (0.5, 0.5) possui a maior impureza. Aprendizado de Máquina
Construção de uma Árvore de Decisão Aprendizado de Máquina
Construção de uma Árvore de Decisão Nodo N1 Exemplos Classe = 0 0 Classe = 1 6 Gini = 1- (0/6) 2 (6/6) 2 = 0 Entropia = -(0/6).log 2 (0/6) (6/6).log 2 (6/6) = 0 Nodo N2 Exemplos Classe = 0 1 Classe = 1 5 Nodo N3 Exemplos Classe = 0 3 Classe = 1 3 Gini = 1- (1/6) 2 (5/6) 2 = 0.278 Entropia = -(1/6).log 2 (1/6) (5/6).log 2 (5/6) = 0.650 Gini = 1- (3/6) 2 (3/6) 2 = 0.5 Entropia = -(3/6).log 2 (3/6) (3/6).log 2 (3/6) = 1 Aprendizado de Máquina
Construção de uma Árvore de Decisão Comparando o grau de impureza do nodo pai (antes da divisão) com o grau de impureza dos nodos filhos (após a divisão). Quanto maior a diferença, melhor a condição de teste. Aprendizado de Máquina
Construção de uma Árvore de Decisão O ganho é um critério que pode ser usado para determinar a qualidade da divisão: = I pai k j=1 N vj N I(v j) Aprendizado de Máquina
Modelos de Previsão Árvores de decisão ou classificação Existem vários pacotes no R que implementam as árvores de classificação, mas o mais utilizado provavelmente é o pacote rpart. Esse pacote possui a função rpart() que pode ser usada para obter árvores de classificação.
Modelos de Previsão Conjunto de dados: zoo.csv
Modelos de Previsão Conjunto de dados: zoo.csv
Modelos de Previsão Vamos excluir a primeira coluna (nome dos animais) do data frame. Os nomes dos animais não são relevantes para o modelo de classificação.
Modelos de Previsão
Modelos de Previsão Vamos obter duas amostras, uma com 70% do conjunto de dados para a criação da árvore de classificação e, uma outra com 30%, que será usada para testar a árvore, ou seja, para obter previsões usando a árvore criada.
Modelos de Previsão Treinando a árvore de classificação Primeiro é necessário carregar o pacote rpart. A função rpart() possui basicamente 2 parâmetros, a fórmula, onde devemos informar a variável dependente e as variáveis independentes, e os dados, onde será informado o data frame.
Visualizando a árvore Modelos de Previsão
Modelos de Previsão Podemos agora testar o modelo com o data frame teste. Para isso, vamos usar a função predict(). A função produz para cada exemplo de teste um conjunto de probabilidades de pertencer a cada uma das classes, que nesse caso são 7.
Modelos de Previsão
Modelos de Previsão Se quisermos unicamente a decisão para cada exemplo de teste (que é a classe mais provável), poderemos usar a função predict(), acrescentando o parâmetro type= class
Modelos de Previsão É importante analisar o modelo para determinar, por exemplo, o percentual de erro. Para isso, podemos construir a matriz de confusão.
Modelos de Previsão Determinando o percentual de erro do modelo.
Modelos de Previsão Melhorando a visualização da árvore de decisão com o pacote rpart.plot e a função prp()
Modelos de Previsão