Mineração de dados Classificação: outros algoritmos Apresentação baseada: no livro Introduction to Data Mining (Tan, Steinbach, Kumar) e em apresentações do prof. José Todesco (UFSC) Naive Bayes Abordagem estatística, baseada no teorema de Bayes . Naïve (ingênuo) porque considera que os atributos são independentes. Naïve Bayes – visão geral Seja o exemplo de dados: Os objetos podem ser classificados em vermelho ou verde Como há mais objetos verdes que vermelhos, a probabilidade a priori é que um novo objeto seja verde Probabilidade a priori de verde = número de objetos verdes/ número total de objetos = 40/60 = 4/6 Probabilidade a priori de vermelho = número de objetos vermelhos / número total de objetos = 20/60 = 2/6 Naïve Bayes – visão geral Queremos classificar um novo objeto X (ponto branco) Como os objetos estão agrupados, é razoável considerar que quanto mais objetos de uma classe houver “parecidos” com X, maior a chance de X ser daquela classe. Vamos considerar o “parecido” pelo círculo na figura (estar dentro do círculo) e calcular a probabilidade: Probabilidade de “parecido” dado que é verde = número de objetos verdes no círculo/ número total de verdes= 1/40 Probabilidade de “parecido” dado que é vermelho = número de objetos vermelhos no círculo/ número total de vermelhos= 3/20 Naïve Bayes – visão geral Na análise Bayesiana, a classificação final é realizada considerando estas duas informações usando a probabilidade condicional do Teorema de Bayes: A probabilidade condicional de X ser verde dado que é “parecido” = probabilidade a priori de verde vezes Probabilidade de “parecido” dado que é verde = 4/6 . 1/40 = 1/60 Analogamente, A probabilidade condicional de X ser vermelho dado que é “parecido” = 2/6 . 3/20 = 1/20 Portanto, a classe predita de X seria vermelho, pois é a maior probabilidade Mais tecnicamente…. Aprendizagem da classificação: qual é a probabilidade da classe dado um exemplo? – Evidência E = exemplo (registro, com os valores dos atributos) – Hipótese H = valor da classe para o exemplo Teorema de Bayes (1763): P(E|H).P(H) P( H| E) = P(E) Suposição do classificador bayesiano ingênuo: evidência pode ser separada em partes independentes (os atributos do exemplo) P(E1 ,E2 ,...,En | H) =P(E1 |H ).P( E2|H)... .P(En |H ) P( H| E) = P( E1 |H ).P( E2 | H)... .P(En | H).P(H ) P( E1 ).P( E2)... .P(En) Exemplo:Naive Bayes Dia 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Aspecto Temperatura Umidade Sol Quente Alta Sol Quente Alta Nublado Quente Alta Chuva Agradável Alta Chuva Fria Normal Chuva Fria Normal Nublado Fria Normal Sol Agradável Alta Sol Fria Normal Chuva Agradável Normal Sol Agradável Normal Nublado Agradável Alta Nublado Quente Normal Chuva Agradável Alta Vento Fraco Forte Fraco Fraco Fraco Forte Forte Fraco Fraco Fraco Forte Forte Fraco Forte 7 Decisão N N S S S N S N S S S S S N Exemplo: Naive Bayes Qual será a decisão (valor da classe), se o dia estiver com sol, a temperatura fria, a umidade alta e o vento forte ? P(Jogar = S | Aspecto = Sol, Temperatura = Fria, Umidade = Alta e Vento = Forte) = ? P(Jogar = N | Aspecto = Sol, Temperatura = Fria, Umidade = Alta e Vento = Forte) = ? 8 Exemplo: Naive Bayes P( H| E) = P( E1 |H ).P( E2 | H)... .P(En | H).P(H ) P( E1 ).P( E2)... .P(En) P(Jogar = S | Aspecto = Sol, Temperatura = Fria, Umidade = Alta e Vento = Forte) = P( Sol|S) * P( Fria|S) * P(Alta|S) * P(Forte|S) * P(S) = P( Sol) * P( Fria) * P(Alta)* P(Forte) Exemplo: Naive Bayes P(Jogar = S) = 9/14; P(Jogar = N) = 5/14; P(Aspecto = Sol | Jogar = S) = 2/9; P(Aspecto = Sol | Jogar = N) = 3/5; P(Temperatura = Fria | Jogar = S) = 3/9; P(Temperatura = Fria | Jogar = N) = 1/5; P(Umidade = Alta | Jogar = S) = 3/9; P(Umidade = Alta | Jogar = N) = 4/5; P(Vento = Forte | Jogar = S) = 3/9; P(Vento = Forte | Jogar = N) = 3/5; 10 Exemplo: Naive Bayes P(Aspecto = Sol ) = 5/14 P(Temperatura = Fria) = 4/14 P(Umidade = Alta ) = 7/14 P(Vento = Forte ) = 6/14 11 Exemplo: Naive Bayes P(Jogar = S | Aspecto = Sol, Temperatura = Fria, Umidade = Alta e Vento = Forte) = = P( Sol|S) * P( Fria|S) * P(Alta|S) * P(Forte|S) * P(S) P( Sol) * P( Fria) * P(Alta)* P(Forte) = = (2/9 * 3/9 * 3/9 * 3/9 * 9/14) / (5/14 * 4/14 * 7/14 * 6/14) = = 0,0053 / 0,02186 = 0,242 12 Exemplo: Naive Bayes P(Jogar = N | Aspecto = Sol, Temperatura = Fria, Umidade = Alta e Vento = Forte) = P( Sol|N) * P( Fria|N) * P(Alta|N) * P(Forte|N) * P(N) = = P( Sol) * P( Fria) * P(Alta)* P(Forte) = (3/5 * 1/5 * 4/5 * 3/5 * 5/14) / (5/14 * 4/14 * 7/14 * 6/14) = = 0,0206 / 0,02186 = 0,942 Como (J=N) 0,942 > (J=S) 0,242 Então Jogar = Não 13 O problema da frequência zero • Se um valor de atributo nunca ocorrer para uma classe (como por exemplo Aspecto=nublado para a classe N) – A probabilidade será zero! P(nublado | N) = 0 – A probabilidade a posteriori será zero, independentemente dos outros valores! P(N | E) = 0 • Solução: Estimador de Laplace ⇒ somar 1 à contagem de todas as combinações de classe e valor de atributo. • Resultado: as probabilidades nunca serão zero! Naïve Bayes Vantagens: – rápido – Bons resultados em dados reais Desvantagens: – Resultados não tão bons em problemas complexos Mozilla Thunderbird e Microsoft Outlook usam classificadores naive bayes para filtrar (marcar) emails que seriam spam Máquina de Vetores de Suporte [Vapnik et al, 1998] Em inglês: Support Vector Machine (SVM) Método matemático, baseado no Teorema de Lagrange Conceitos de SVM Qual o hiperplano ótimo para separar duas classes – Menor erro de classificação – Maior margem Distância entre vetores de suporte e o hiperplano Conceitos de SVM Qual o hiperplano ótimo? – Menor erro de classificação – Maior margem Distância entre vetores de suporte e o hiperplano SVM Vantagens: – Classificador não-linear poderoso Desvantagens: – Demorado para gerar o modelo e para executar – sensível a ruídos – a escolha dos parâmetros influencia muito o resultado kNN: k - Nearest Neighbor k vizinhos mais próximos Método simples que consiste em procurar o (para k=1) ou os (para k>1) registros mais próximos (parecidos) com aquele para o qual se deseja saber a classe K- Nearest Neighbor (vizinho mais próximo) Método antigo [Cover 1967] e muito difundido Instâncias são representadas por pontos num espaço n dimensional n instância x = <a1(x), a2(x), a3(x), ..., an(x)> Onde ar(x) representa o valor do r-ésimo atributo A distância entre as instâncias pode ser calculada pela distância euclidiana ou outras d ( xi , x j ) n 2 ( a ( x ) a ( x )) r i r j r 1 K- Nearest Neighbor (k-NN) O resultado da classificação é aquele que aparecer mais vezes entre os k vizinhos mais próximos. K- Nearest Neighbor (k-NN) Exemplo: A classificação de ?, (F(?)), será a classificação de Xi (F(Xi)), onde Xi é a instancia mais próxima de ?. Se k=1, na figura, ? seria classificado como Se k=7, na figura, ? seria classificado como K-NN: Exemplo x = (idade(x), altura(x), peso(x), classe(x)), onde a classe pode ser “S” ou “N” Dados classificados: josé = (30, 1.78, 72, S) maria = (25, 1.65, 60, S) anastácia = (28, 1.60, 68, N) Dado a classificar: joão = (36, 1.80, 76, ???) Usar k=1 Cálculo das distâncias: d(joão,josé) = [(36-30)2 + (1.80-1.78)2 + (76-72)2]1/2 = (36+0.0004+16)1/2 = 7,21 d(joão,maria) = (121+0.0225+256)1/2 = 19,41 d(joão, anastácia) = (64+0.04+64)1/2 = 11,32 Portanto a classe de João é S, pois é a classe de José, que é o mais “próximo” de João K-NN Problema da dimensionalidade (muitos atributos) Para calcular a distância entre os pontos, o método utiliza todos os atributos da instância Conseqüências: pode custar caro atributos irrelevantes podem deturpar a classificação Como não gera um modelo e sim compara sempre com todos os registros, pode ser lento Redes Neurais Exemplo de perceptron +1 w0 = -1,5 x1 w1 = +1 S x2 +1 u w2 = +1 y= prof. Luis Otavio Alvares 1 se u > 0 0 se u 0 y Perceptron (cont.) perceptron computa uma função binária de suas entradas vários perceptrons podem ser combinados para computar funções mais complexas o perceptron pode aprender a computar tudo o que ele computa prof. Luis Otavio Alvares Perceptron (cont.) pode-se descrever um algoritmo de aprendizagem como: – se o perceptron dispara quando não deve disparar, diminua cada wi de um número proporcional a xi; – se o perceptron deixa de disparar quando deveria, aumente cada wi de um número proporcional a xi. prof. Luis Otavio Alvares Regra de aprendizagem do perceptron W(n+1) = W(n) + η * (D(n)-Y(n)).X(n) – – – – – onde: η é a constante de correção do erro D é a saída desejada Y é a saída fornecida X é o vetor de entrada W é o vetor de pesos prof. Luis Otavio Alvares Características das RNA grande número de elementos de processamento muito simples, inspirados nos neurônios biológicos um grande número de conexões ponderadas entre os elementos (neurônios artificiais) os pesos das conexões codificam o conhecimento de uma rede neural; controle altamente distribuído e paralelo; ênfase na aprendizagem automática. prof. Luis Otavio Alvares Elementos de processamento (neurônios) Os elementos de processamento das redes neurais artificiais são os neurônios artificiais Cada neurônio recebe um padrão de entrada e produz um único valor de saída (necessita apenas de informações locais) A saída é função apenas das entradas e dos pesos das conexões prof. Luis Otavio Alvares Organização em camadas As redes neurais são formadas por um conjunto de neurônios organizados em três camadas: – camada de entrada - onde os padrões são apresentados à rede (dados de entrada da rede) – camadas intermediárias ou escondidas - onde é realizada a maior parte do processamento. – camada de saída - onde o resultado final é concluído e apresentado. prof. Luis Otavio Alvares Organização em camadas prof. Luis Otavio Alvares Processamento da informação: entrada cada entrada corresponde a um atributo simples o valor de um atributo é a entrada na rede. redes neurais números atributos qualitativos ou imagens, por exemplo, precisam antes ser transformados em valores numéricos artificiais processam prof. Luis Otavio Alvares apenas Processamento da informação: saída a saída da rede é a solução do problema por exemplo, se o resultado deve ser “sim” ou “não”, a rede atribui valores numéricos, por exemplo 1 para sim e 0 para não prof. Luis Otavio Alvares Processamento da informação: conexão liga dois neurônios e possui um peso o peso expressa a importância relativa dada à entrada antes do processamento: Se o peso for positivo a conexão é dita excitatória se for negativo é dita inibitória Se o peso for zero é como se a conexão não existisse. prof. Luis Otavio Alvares Processamento da informação: função de limiar é a responsável pela determinação da forma e da intensidade de alteração dos valores de saída prof. Luis Otavio Alvares Aprendizagem Uma das principais características das redes neurais é a capacidade de aprendizagem automática processo de aprendizagem = treinamento da rede função de aprendizado: modelo matemático utilizado no treinamento da rede separação dos dados existentes sobre o problema em dois conjuntos. – um para treinar a rede (ajustar os seus pesos) – outro para validação. prof. Luis Otavio Alvares O número de características (variáveis, atributos) Quanto maior o número de variáveis de entrada, maior deverá ser a rede neural, aumentando o risco de supertreinamento da rede e necessidade de maior número de registros de treinamento. O tempo necessário para treinar uma rede está diretamente relacionado com o número de variáveis de entrada usadas na mesma; quanto mais características (variáveis) são usadas, maior é o tempo para a rede convergir. Um grande problema é que quanto mais aumenta o número de variáveis de entrada, a chance da rede convergir para uma solução de qualidade inferior aumenta. Descartar características que não tenham poder preditivo ajuda a aumentar o poder preditivo da rede neural. Tente outras variáveis e verifique quais delas melhora a rede. Em muitos casos é necessário calcular novas variáveis que representam aspectos particulares do problema. Por exemplo, R$/m2. Pode-se usar outras técnicas para determinar quais características são importantes para o propósito de predição. Pode-se usar, por exemplo: 40 correlações ou árvores de decisão. O número de exemplos de treinamento Geralmente, quanto mais características há na rede neural, mais exemplos de treinamento são necessários para abranger os padrões nos dados. Geralmente um mínimo de poucas centenas de exemplos são necessários para cada característica. Quando o tamanho do arquivo de treinamento não é grande o suficiente, a rede tende a decorar os dados. 41 O número de saídas Por exemplo, se a rede neural vai ser usada para detectar eventos (saídas) raros e caros, tais como: falhas de turbinas de avião, uso fraudulento do cartão de crédito; então é preciso ter certeza que o arquivo de treinamento tem um número suficiente de exemplos desses eventos raros. Uma amostra aleatória dos dados disponíveis não é suficiente, pois os exemplos não raros (comuns) vão “afundar” os exemplos raros. Para contornar este problema, o arquivo de teste precisa ter muitos exemplos raros. Por exemplo, tomar 10.000 “bons” exemplos e 10.000 “maus” exemplos. 42 Preparando os dados Preparar os dados de entrada é freqüentemente a parte mais complicada do uso de uma rede neural. Uma parte do problema é a transformação das variáveis de tal forma que os seus valores fiquem normalizados. 43 Rede Neural Backpropagation (MLP) Este classificador é uma rede neural que realiza a aprendizagem (determinação dos pesos dos neurônios) com o algoritmo backpropagation Algumas características: – – – – – Todas as entradas devem ser numéricas Tempo de geração do modelo longo Rápido para classificar uma instância Tolerante a ruídos Método não linear poderoso Figura obtida em http://blog.peltarion.com/2006/07/10/classifier-showdown/ Figura obtida em http://blog.peltarion.com/2006/07/10/classifier-showdown/ Figura obtida em http://blog.peltarion.com/2006/07/10/classifier-showdown/ Figura obtida em http://blog.peltarion.com/2006/07/10/classifier-showdown/ Referências Tan,P-N;Steimbach, M; Kumar,V. Introduction to Data Mining. Boston: Addison Wesley, 2006. 769p. Vapnik, V. Statistical LearningTheory. Wiley, 1998. George H. John and Pat Langley. Estimating Continuous Distributions in Bayesian Classifiers. Proceedings of the Eleventh Conference on Uncertainty in Artificial Intelligence. pp. 338-345. Morgan Kaufmann, San Mateo, 1995. Cover T.M., Hart P.E. Nearest neighbor pattern classification. IEEE Transactions on Information Theory. 13 (1): 21–27, 1967. Exercício Considerando os dados de treinamento abaixo, realizar os cálculos de probabilidade e aplicar o classificador Naive-Bayes, para atribuir a classe para o registro: Id Casa própria 1 S Solteiro alto NÃO 2 N Casado médio NÃO 3 N Solteiro baixo NÃO 4 S Casado alto NÃO 5 N Divorc. médio SIM 6 N Casado baixo NÃO 7 S Divorc. alto NÃO 8 N Solteiro médio SIM 9 N Casado baixo NÃO 10 N Solteiro médio SIM Mau EstCivil Rendim. Pagador Casa Própria Estado Civil Rendim. Mau pagador N Divorc. médio ? 10 P( H| E) = P( E1 |H ).P( E2 | H)... .P(En | H). P(H) P( E1 ).P( E2)... .P(En) 10 50 Exercício Considerando os dados de treinamento abaixo, realizar os cálculos e aplicar o classificador k-NN, para atribuir a classe para o registro, considerando k=1 e k=3: atrib1 atrib2 classe atrib1 atrib2 classe 11 20 S 8 18 ? 12 21 S 9 19 S 5 18 N 6 19 N 6 20 N