Mineração de Dados: Classificação e Predição Victor Ströele [email protected] 05/11/2015 Business Intelligence Roteiro Conceitos e características da Classificação Qualidade do Classificador Técnicas de Classificação Árvores de Decisão Regras de Classificação Máquinas de Vetores Suporte Redes Neurais Conceito Classificação: Identificar a classe de um objeto através de um modelo classificador construído com informações de um conjunto de amostras Aprendizado Supervisionado Predição: Prever o valor de uma variável Classificação Etapa de treinamento Classificação Etapa de Classificação Problemas de Classificação Classificação de Textos Crescimento das informações disponíveis com o desenvolvimento da WEB Identificar spams no envio de e-mails Análise de Seqüências biológicas Grande quantidade de dados com o mapeamento do genoma humano Identificar seqüências protéicas homólogas Problemas de Classificação Diagnóstico de doenças Geralmente utilizado para informar se o paciente está doente ou não Diagnóstico de câncer de mama Classificador é treinado utilizando-se amostras de pessoas doentes e saudáveis A amostra de um novo paciente é aplicada ao classificador e este irá informar o diagnóstico Etapas da Classificação Aprendizado/Treinamento Exemplos conhecidos são analisados e um classificador é construído O classificador pode ter a forma de: Regras de Classificação Árvores de Decisão Máquinas de Vetores Suporte Redes Neurais Etapas da Classificação Classificação O Classificador é usado para distribuir itens em grupos pré-definidos (classes) A classificação considera informações quantitativas ou as características dos itens Treinamento Conjunto de Amostras Classes Exemplo Conjunto de Treinamento Fase de treinamento e Construção do Classificador Classificador na forma “Regras de Classificação” Exemplo Forma dos dados do conjunto de treinameno X = <x1, x2, x3> e Y = <baixo, alto> x1 Nome do cliente x2 Idade do cliente discretizada x3 Renda do Cliente também discretizada Y Risco do Empréstimo, que é o rótulo da classe a qual o cliente pertence Exemplo Clientes novos (Desconhecidos) Dados Novos aplicados Ao Classificador Resultado da Análise de Risco Para os clientes novos Características da Classificação Precisão Capacidade de prever a classe a qual um item desconhecido pertence Como medir a precisão? Usar um conjunto de dados conhecidos que não foram utilizados na etapa de treinamento Usar 10% do conjunto de treinamento Velocidade Esforço computacional exigido tanto na fase de treinamento quanto na fase de classificação Características da Classificação Robustez Habilidade de classificar corretamente mesmo em presença de dados com “ruídos” ou incompletos Escalabilidade Capacidade do classificador obter um desempenho proporcional à quantidade de dados analisada Qualidade do Classificador O modelo classificador depende diretamente da qualidade do conjunto de treinamento Dados do conjunto de treinamento devem ser cuidadosamente selecionados e rotulados Muitos dados com ruídos ou incompletos podem confundir o classificador Dados de treinamento muito genéricos diminuem a precisão para casos menos comuns Qualidade do Classificador Dados de treinamento muito específicos causam o efeito de over fitting (Erro de treinamento muito baixo ou zero e poder de classificação baixo) Sem Erro de Treinamento Com Erro de Treinamento Qualidade do Classificador Sem Erro de Treinamento Com Erro de Treinamento Com Erro na Classificação Sem Erro na Classificação Técnicas de Classificação Árvore de Decisão Regras de Classificação Máquinas de Vetores Suporte (SVM) Redes Neurais (Backpropagation) Técnicas de Classificação Árvore de Decisão Cada nó interno representa um teste em determinado atributo Cada ramo representa um possível resultado do teste Cada folha representa uma classe Cada percurso na árvore (da raiz à folha) corresponde a uma regra de classificação. Técnicas de Classificação Árvore de Decisão Exemplo Técnicas de Classificação Árvore de Decisão Estratégia: dividir para conquistar Capacidade de Discriminação Divisão do espaço definido pelos atributos em sub-espaços A cada sub-espaço é associada uma classe Técnicas de Classificação Árvore de Decisão Cada folha Corresponde a uma região A intersecção dos hiper-retângulos é vazia A união dos hiper-retângulos é o espaço completo Árvore de Decisão Técnicas de Classificação Idéia Base: Escolher um atributo Estender a árvore adicionando um ramo para cada valor do atributo Passar os exemplos para as folhas (tendo em conta o valor do atributo escolhido) Para cada folha Se todos os exemplos são da mesma classe, associar essa classe a folha Senão repetir os passos de 1 a 4 Exemplo Árvore de Decisão Atributos Binários: Atributos Classe A ^ B 0 0 0 0 1 0 1 0 0 1 1 1 Exercícios Árvore de Decisão Atributos Binários: Atributos Classe A v B 0 0 0 0 1 1 1 0 1 1 1 1 Exercícios Árvore de Decisão Atributos Binários: Atributos Classe A v B 0 0 0 0 1 1 1 0 1 1 1 1 1 A 1 1 1 0 B 0 0 Critério para escolha do Atributo Árvore de Decisão Como medir a habilidade de um atributo discriminar as classes? Dois Pontos básicos Uma divisão que mantêm as proporções de classes em todas as partições é inútil Uma divisão onde em cada partição todos os exemplos são da mesma classe tem utilidade máxima 10/10 5/5 10/10 5/5 10/0 0/10 Árvore de Decisão Critério para escolha do Atributo Tempo Temperatura Umidade Vento Joga Sol 85 85 Não Não Sol 80 90 Sim Não Nublado 83 86 Não Sim Chuva 70 96 Não Sim Chuva 68 80 Não Sim Chuva 65 70 Sim Não Nublado 64 65 Sim Sim Sol 72 95 Não Não Sol 69 70 Não Sim Chuva 75 80 Não Sim Sol 75 70 Sim Sim Nublado 72 90 Sim Sim Nublado 81 75 Não Sim Chuva 91 Sim Não 71 Critério para escolha do Atributo Vento Árvore de Decisão SIM NÃO Tempo Temp. Umidade Vento Joga Tempo Temp. Umidade Vento Joga Sol 80 90 Sim Não Sol 85 85 Não Não Chuva 65 70 Sim Não Nublado 83 86 Não Sim Nublado 64 65 Sim Sim Chuva 70 96 Não Sim Sol 75 70 Sim Sim Chuva 68 80 Não Sim Nublado 72 90 Sim Sim Sol 72 95 Não Não Chuva 71 91 Sim Não Sol 69 70 Não Sim Chuva 75 80 Não Sim Nublado 81 75 Não Sim Critério para escolha do Atributo Tempo Árvore de Decisão SOL CHUVA Tempo Temp. Umid. Vento Joga Tempo Temp. Umid. Vento Joga Sol 85 85 Não Não Chuva 70 96 Não Sim Sol 72 95 Não Não Chuva 68 80 Não Sim Sol 69 70 Não Sim Chuva 75 80 Não Sim Sol 80 90 Sim Não Chuva 65 70 Sim Não Sol 75 70 Sim Sim Chuva 71 91 Sim Não NUBLADO Tempo Temp. Umid. Vento Joga Nublado 83 86 Não Sim Nublado 81 75 Não Sim Nublado 64 65 Sim Sim Nublado 72 90 Sim Sim Critério para escolha do Atributo Tempo SOL CHUVA NUBLADO Temp. Umid. Vento Joga 70 96 Não Sim 68 80 Não Sim 75 80 Não Sim Não 65 70 Sim Não Sim 71 91 Sim Não Temp. Umid. Vento Joga 85 85 Não Não 72 95 Não Não 69 70 Não Sim 80 90 Sim 75 70 Sim SIM Umidade >= 77,5 Umidade < 77,5 Temp. Umid. Vento Joga Temp. Umid. Vento Joga 69 70 Não Sim 85 85 Não Não Sim 72 95 Não Não 80 90 Sim Não 75 70 Sim Vento: NÃO Vento: SIM Temp. Umid. Vento Joga Temp. Umid. Vento Joga 65 70 Sim Não 70 96 Não Sim 71 91 Sim Não 68 80 Não Sim 75 80 Não Sim Critério para escolha do Atributo Tempo SOL CHUVA NUBLADO Umidade < 77,5 SIM SIM Vento SIM NÃO NÃO SIM NÃO NÃO SIM Exercício Árvore de Decisão Construa a árvore de decisão e classifique os elementos que não estão rotulados Nome Escolaridade Idade Rico (Atributo Classe) Alva Mestrado >30 Sim Amanda Doutorado <=30 Sim Ana Mestrado <=30 Não Eduardo Doutorado >30 Sim Inês Graduação <=30 Não Joaquim Graduação >30 Não Maria Mestrado >30 Sim Raphael Mestrado <=30 Não Nome Escolaridade Idade José Doutorado 28 Carol Mestrado 37 Nelsa Graduação 35 João Mestrado 29 Exercício Árvore de Decisão Primeira Divisão: Escolaridade Nome Escolaridade Amanda Doutorado Eduardo Doutorado Nome Escolaridade Idade Rico (Atributo Classe) <=30 Sim >30 Sim Idade Rico (Atributo Classe) Inês Graduação <=30 Não Joaquim Graduação >30 Não Nome Escolaridade Idade Rico (Atributo Classe) Alva Mestrado >30 Sim Ana Mestrado <=30 Não Maria Mestrado >30 Sim Raphael Mestrado <=30 Não Escolaridade Doutorado Graduação Mestrado Sim Não ? Exercício Segunda Divisão: Idade Árvore de Decisão Escolaridade Nome Escolaridade Idade Rico (Atributo Classe) Alva Mestrado >30 Sim Maria Mestrado >30 Sim Nome Escolaridade Idade Rico (Atributo Classe) Ana Mestrado <=30 Não Raphael Mestrado <=30 Não Doutorado Graduação Mestrado Sim Não > 30 Sim Sim Não Não Exercício Classificação de novos elementos Árvore de Decisão Escolaridade Doutorado Graduação Mestrado Sim Não > 30 Nome Escolaridade Idade Rico? José Doutorado 28 SIM Carol Mestrado 37 SIM Nelsa Graduação 35 NÃO João Mestrado 29 NÃO Sim Sim Não Não Regras de Classificação Técnicas de Classificação Regras do tipo SE-ENTÃO SE faixa_etária = jovem ENTÃO alto risco empréstimo Condição é formada por um ou mais testes de atributos Conclusão representa uma classe Uma regra é dita ATIVA quando os atributos de um item satisfazem as condições da regra Regras de Classificação Técnicas de Classificação Item acionou apenas uma regra então esta regra é usada para classificar Se idade entre 25 e 30 e não tem carro ENTÃO alto risco empréstimo Se idade entre 25 e 30 e salário maior que 5 mil ENTÃO médio risco de empréstimo Elemento atende as duas regras Idade = 28 Carro = não Salário = 7 mil Técnicas de Classificação Regras de Classificação Duas opções de escolha de regras: Priorizar as regras mais rígidas ou mais específicas (quanto maior o número de condições mais específica é a regra) Ordenar as regras de acordo com a prioridade das mesmas Técnicas de Classificação Construção das Regras de Classificação Por árvore de decisão SE faixa_etária=jovem E estudante=não SE faixa_etária=jovem E estudante=sim SE faixa_etária=meia-idade SE faixa_etária=idoso E renda=baixa SE faixa_etária=idoso E renda=alta ENTÃO não ENTÃO sim ENTÃO sim ENTÃO não ENTÃO sim Exercícios Regras de Classificação Construa as Regras de Classificação baseando-se na árvore de decisão do exercício anterior Exercícios Se ESCOLARIDADE = Doutorado então SIM Se ESCOLARIDADE = Graduação então NÃO Se ESCOLARIDADE = Mestrado e IDADE > 30 então SIM Se ESCOLARIDADE = Mestrado e IDADE <= 30 então NÃO Regras de Classificação Técnicas de Classificação Máquina de Vetores Suporte (SVM) Resolução de problemas de classificação Separar os dados em duas classes com um hiperplano Encontrar um classificador que irá trabalhar bem com dados não conhecidos Maximizar a margem entre as duas classes Máquina de Vetores Suporte (SVM) Técnicas de Classificação Caso simples: duas classes linearmente separáveis (A e B) Dados representados pelo par (si, yi), onde si é a observação i e yi o rótulo ( yi 1) Infinitos hiperplanos, mas apenas um maximiza a margem Máxima margem aumenta o poder de generalização do classificador Hiperplanos separadores para dois conjuntos de dados Máquina de Vetores Suporte (SVM) Técnicas de Classificação Formulação Linearmente Separável u x.s g x é o vetor normal ao hiperplano separador s é o vetor do conjunto de pontos de entrada g determina o deslocamento do hiperplano em relação a origem Técnicas de Classificação Máquina de Vetores Suporte (SVM) Por definição x.si g 1si Classe1 x.s j g 1s j Classe 1 Pontos Suporte Técnicas de Classificação Máquina de Vetores Suporte (SVM) A margem é dada pela soma desses hiperplanos Margem: m x.si g x.s j g x,si g x x 2 x m x,s j g x x,si g x,s j g . Definição do Problema SVM: minimizar x,g Nos pontos suporte, tem-se: x,si g x,s j g 1 1 x 2 2 s.a yi ( x.si g ) 1,i{1,2,...,l} Máquina de Vetores Suporte Exemplo x1 x2 Classe +1 x1 x2 Classe -1 2 -1 1 3 -1 -1 1 0 1 2 0 -1 0 1 1 0 2 -1 -1 2 1 3 -1 -1 -2 1,5 1 2 2 -1 0 0 1 1 1 -1 -2 0 1 3 1 -1 -2 1 1 1 2 -1 -0,5 -0,5 1 1 3 -1 -1 0,5 1 2 1 -1 -1 1 1 1,5 1,5 -1 -1 0 1 2,5 2,5 -1 -1 1,5 1 2,5 3 -1 Exemplo Máquina de Vetores Suporte 4 3 2 1 0 -3 -2 -1 0 1 3 4 x.s – g = -1 -1 x.s – g = +1 -2 2 Exemplo Máquina de Vetores Suporte 4 3 2 1 0 -3 -2 -1 0 1 3 4 g(x) = -x + 2 -1 f(x) = -x + 1 -2 2 Máquina de Vetores Suporte Exemplo f ( x) x1 g ( x) x 2 Margem Soma de f(x) = +1 e g(x) = -1 Margem: x1 1 3 2 x 3 0h( x) x 2 x 2 1 Exemplo Máquina de Vetores Suporte 4 3 2 1 h(x) = -x + 3/2 0 -3 -2 -1 0 1 3 4 g(x) = -x + 2 -1 f(x) = -x + 1 -2 2 Exemplo Máquina de Vetores Suporte Classifique os novos pontos [-1, -1] [3, 0,5] [0, 3] [1,5, -0,5] 4 3 2 1 0 -3 -2 -1 0 -1 -2 1 2 3 4 Exemplo Máquina de Vetores Suporte Classifique os novos pontos [-1, h(x) = -x + 3/2 -1] 1 classe 1* 1,5 (1 1) 1,5 3,5 0 1 [3, Classe +1 0,5] 3 classe 1* 1,5 (3 0,5) 1,5 2 0 0,5 Classe -1 Exemplo Máquina de Vetores Suporte Classifique os novos pontos [0, h(x) = -x + 3/2 3] 0 classe 1* 1,5 (0 3) 1,5 1,5 0 3 [1,5, Classe -1 -0,5] 1,5 classe 1* 1,5 (1,5 0,5) 1,5 0,5 0 0,5 Classe +1 Problemas não linearmente separáveis Máquina de Vetores Suporte Problemas que não são separáveis por um hiperplano Problemas não linearmente separáveis Máquina de Vetores Suporte Nova formulação do problema l 1 2 minimizar x C i x,g 2 i 1 s.a yi ( x.si g ) 1i ,i{1,2,...,l} i 0 permite a classificação errada de um elemento. C penaliza o erro na classificação Exercício Máquina de Vetores Suporte Encontre o classificador para os dados 4 3 2 1 0 -1 -0,5 0 0,5 1 1,5 2 2,5 -1 X=1 -2 X=2 3 3,5 x y Classe -1 x 0,5 0,5 -1 3 -1 +1 1 0 -1 2 0 +1 0 1 -1 2,5 1 +1 0,5 1,5 -1 3 -1 +1 0,5 2,5 -1 2 2 +1 0 0 -1 2,5 0 +1 0 2 -1 3 1 +1 0,75 0,5 -1 2 1 +1 -0,5 -0,5 -1 2,5 2,5 +1 0,75 1 -1 2,5 3 +1 1 1 -1 2,1 0 +1 1 2 -1 2,3 0,5 +1 1 3 -1 2,2 1,5 +1 1 -1 -1 +1 2 y -1 Classe +1 Máquina de Vetores Suporte Exercício f ( x)x1 g ( x) x 2 Margem Soma de f(x) = -1 e g(x) = +1 Margem: x1 1 3 2 x 3 0h( x) x 2 x 2 1 Máquina de Vetores Suporte Exercício 3 h( x ) x 2 4 X=3/2 3 2 1 0 -1 -0,5 0 0,5 1 1,5 2 2,5 -1 X=1 -2 X=2 3 3,5 Exercício Máquina de Vetores Suporte 4 Classifique os pontos 2 [0,0] [3,3] X=3/2 3 1 0 -1 -0,5 0 0,5 1 1,5 2 2,5 -1 X=1 -2 X=2 3 3,5 Exemplo Máquina de Vetores Suporte Classifique os novos pontos [0, h(x) = x - 3/2 0] 0 classe 1* 1,5 (0 0) 1,5 1,5 0 0 [3, Classe -1 3] 3 classe 1* 1,5 (3 3) 1,5 1,5 0 3 Classe +1 Técnicas de Classificação Redes Neurais Redes Neurais: Simula a propagação dos sinais através dos neurônios Conjunto de unidades de entradas e saídas, nas quais cada ligação tem um peso associado a ela Backpropagation: Algoritmo de aprendizado de redes neurais Desvantagens Exigem grande período de treinamento, portanto aplicáveis apenas em problemas com essa viabilidade Vários parâmetros definidos de maneira empírica, tal como a estrutura Difícil para os seres humanos interpretarem o significado simbólico por trás dos pesos aprendidos e das unidades escondidas Redes Neurais Vantagens Redes Neurais Grande tolerância a dados ruidosos Grande capacidade de classificação para novos dados (padrões desconhecidos) Podem ser usadas quando o usuário tiver pouco conhecimento sobre as relações entre atributos e classes Bem adaptadas a valores contínuos Têm sido bem sucedidas na resolução de vários problemas do mundo real, tais como: reconhecimento de caracteres manuscritos, medicina laboratorial, etc. Backpropagation Algoritmo que realiza o aprendizado de uma rede neural feed-forward com múltiplas camadas Aprende iterativamente um conjunto de pesos para a previsão do rótulo da classe Redes Neurais Rede Neural Feed-Forward Estrutura: Redes Neurais Uma camada de Entrada Uma ou mais camadas ocultas Uma camada de Saída Feed-Forward Estrutura: Redes Neurais Cada camada é composta por unidades As entradas correspondem aos atributos calculados de cada elemento do conjunto de treinamento Cada atributo é associado a uma unidade formando a camada de entrada Feed-Forward Estrutura: Redes Neurais Cada atributo recebe um peso após passar por uma camada A saída da camada de entrada é a entrada para primeira camada oculta A saída de uma camada escondida pode ser outra camada escondida ou a camada de saída O número de camadas ocultas é arbitrário, mas geralmente se utiliza apenas uma. Número arbitrário Saída Oculta N Oculta 1 Entrada Redes Neurais Feed-Forward Estrutura: Representação do Conhecimento Redes Neurais Conhecimento representado pelas unidades de processamento que simulam a estrutura e o comportamento dos neurônios Unidade vi(l) Unidade vj(l-1) Redes Neurais Representação do Conhecimento X1(l-1) X2(l-1) Xn(l-1) Camada (l-1) Camada (l) (l ) Potencial net do neurônio vi(l): neti (t ) n( l 1) ( l ) ( l 1) ( l 1) w x ij j (t ) i (t ) j 1 Representação do Conhecimento O potencial net do neurônio é aplicado à função de ativação A função de ativação g restringe o potencial de ativação do neurônio a um intervalo pré-definido Redes Neurais Saída da camada (l): xi( l ) ( t 1) g neti( l ) ( t ) Função de Ativação Redes Neurais Funções de ativação g ,se Degrau: g ( x) g ,se g ,se x Semi-Linear: g ( x ) x,se x g ,se x Sigmoidal: g ( x) 1 1 e x T Características Redes Neurais Conhecimento do comportamento de cada neurônio individualmente Composição de várias unidades gera reações imprevisíveis A união das ativações de todas as unidades que especifica o que a rede neural está representando em um dado instante Essa incerteza do modelo que determina o interesse e a complexidade das redes neurais Estratégias de Aprendizagem Sem Treinamento Os Redes Neurais valores dos pesos sinápticos são estabelecidos explicitamente Treinamento Supervisionado A rede é treinada pela apresentação dos vetores de entrada e seus respectivos vetores de saída (pares de treinamento) Treinamento Não Supervisionado Apresentação apenas dos vetores de entrada, a partir dos quais são extraídas as características desse conjunto de padrões, agrupando-os em classes Algoritmo Backpropagation Primeiro passo: Redes Neurais Padrões de entrada e saída são apresentados à rede neural e uma saída aleatória é gerada Segundo passo: Cálculo do erro, representando a diferença entre o valor obtido e o valor desejado Terceiro passo: Retropropagação sinápticos do erro e reajuste dos pesos Algoritmo Backpropagation Propagação do Erro Saída Oculta N Oculta 1 Entrada Redes Neurais Propagação do Sinal de Entrada ERRO (Obtido - Desejado) Algoritmo Backpropagation Duas fases distintas: Redes Neurais Sinais de entradas se propagam entre as camadas da rede (camada de entrada até camada de saída) Erros são propagados na direção contrária ao fluxo de entrada (camada de saída até camada de entrada) Predição Definir um valor provável de uma variável Aplicada quando se tem dados temporais (organizados cronologicamente) Previsão de cotação de uma ação na bolsa de valores Duas técnicas principais: Regressão linear Regressão Não Linear Regressão Linear Entende-se que os dados possuem comportamento linear Podem ser aproximados por uma reta Predição Regressão Linear Fórmula da regressão linear Predição y x X variável independente (conjunto de dados) Y variável dependente (valor desejável) define a inclinação da reta define o ponto de interceptação da reta com o eixo vertical Regressão Linear Cálculo de e : | D| ( xi x )( yi y ) i 1 |D| 2 ( x x ) i i 1 y x Predição x y Média dos valores de x1 ,x2 ,...,x|D| Média dos valores de y1 , y2 ,..., y|D| Regressão Linear Exemplo Semana Clientes Vendas 1 907 11,20 2 926 11,05 3 506 6,84 4 741 9,21 5 789 9,42 6 889 10,08 7 874 9,45 8 510 6,73 9 529 7,24 10 420 6,12 11 679 7,63 12 872 9,43 13 924 9,46 14 607 7,64 15 452 6,92 16 729 8,95 17 794 9,33 18 844 10,23 19 1010 11,77 20 621 7,41 Exemplo Médias: Regressão Linear Clientes: 731,15 Vendas: 8,8055 14 12 10 8 Cálculos: = 2,423 = 0,00873 6 4 2 0 350 Reta: y = 0,00873x + 2,423 550 750 950 1150 Regressão NÃO Linear Regressão linear bastante simples, mas no mundo real a maioria dos problemas são não lineares Dados modelados por uma função que é uma combinação não-linear de parâmetros do modelo Dados ajustados por métodos de aproximações sucessivas Predição Regressão NÃO Linear Métodos: Predição Mínimos Quadrados Equações Normais Gauss-Newton Exercício Médias: Regressão Linear Variável 1: 33,88 Variável 2: 16,88 | D| ( xi x )( yi y ) i 1 |D| 2 ( x x ) i i 1 y x Variável 1 Variável 2 (x) (y) 60 50 50 30 45 18 40 20 35 10 30 15 20 6 15 3 10 0 Exercício Variável 1 Variável 2 (x) (y) Médias: Regressão Linear Variável 1: 33,88 Variável 2: 16,88 1923,363 0,85907 2238,8896 16,88 (0,85907*33,88) 12, 224 reta 0,85907 x 12, 224 60 50 50 30 45 18 40 20 35 10 30 15 20 6 15 3 10 0 Exercício Variável 1 Variável 2 60 50 50 30 45 18 40 20 20 35 10 10 30 15 20 6 -10 15 3 -20 10 0 Regressão Linear 60 50 40 30 0 0 20 40 60 80