Mineração de dados

51
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)

description

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. - PowerPoint PPT Presentation

Transcript of Mineração de dados

Page 1: Mineração de dados

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)

Page 2: Mineração de dados

Naive Bayes

Abordagem estatística, baseada no teorema de Bayes . Naïve (ingênuo) porque considera que os atributos são independentes.

Page 3: Mineração de dados

Naïve Bayes – visão geral

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

Seja o exemplo de dados:

Page 4: Mineração de dados

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

Page 5: Mineração de dados

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

Naïve Bayes – visão geral

Page 6: Mineração de dados

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( H| 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)

P(E|H).P(H)

P(E)

Page 7: Mineração de dados

Exemplo:Naive Bayes

Dia Aspecto Temperatura Umidade Vento Decisão1 Sol Quente Alta Fraco N2 Sol Quente Alta Forte N3 Nublado Quente Alta Fraco S4 Chuva Agradável Alta Fraco S5 Chuva Fria Normal Fraco S6 Chuva Fria Normal Forte N7 Nublado Fria Normal Forte S8 Sol Agradável Alta Fraco N9 Sol Fria Normal Fraco S

10 Chuva Agradável Normal Fraco S11 Sol Agradável Normal Forte S12 Nublado Agradável Alta Forte S13 Nublado Quente Normal Fraco S14 Chuva Agradável Alta Forte N

7

Page 8: Mineração de dados

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) = ?

Exemplo: Naive Bayes

8

Page 9: Mineração de dados

Exemplo: Naive Bayes

P( E1 |H ).P( E2 | H)... .P(En | H).P(H )

P( E1 ).P( E2)... .P(En)P( H| E) =

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)=

Page 10: Mineração de dados

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;

Exemplo: Naive Bayes

10

Page 11: Mineração de dados

P(Aspecto = Sol ) = 5/14

P(Temperatura = Fria) = 4/14

P(Umidade = Alta ) = 7/14

P(Vento = Forte ) =  6/14

Exemplo: Naive Bayes

11

Page 12: Mineração de dados

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

Exemplo: Naive Bayes

12

= =

Page 13: Mineração de dados

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

Exemplo: Naive Bayes

13

= =

Page 14: Mineração de dados

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!

Page 15: Mineração de dados

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

Naïve Bayes

Page 16: Mineração de dados

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

Page 17: Mineração de dados

Conceitos de SVM

Qual o hiperplano ótimo para separar duas classes

– Menor erro de classificação

– Maior margemDistância entre vetores de suporte e o hiperplano

Page 18: Mineração de dados

Conceitos de SVM

Qual o hiperplano ótimo?

– Menor erro de classificação

– Maior margemDistância entre vetores de suporte e o hiperplano

Page 19: Mineração de dados

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

Page 20: Mineração de dados

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

Page 21: Mineração de dados

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

n

rjrirji xaxaxxd

1

2))()((),(

K- Nearest Neighbor (vizinho mais próximo)

Page 22: Mineração de dados

O resultado da classificação é aquele que aparecer mais vezes entre os k vizinhos mais próximos.

K- Nearest Neighbor (k-NN)

Page 23: Mineração de dados

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

Page 24: Mineração de dados

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, ???)

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

Usar k=1

Page 25: Mineração de dados

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

Page 26: Mineração de dados

Redes Neurais

Page 27: Mineração de dados

prof. Luis Otavio Alvares

Exemplo de perceptron

x2

x1

+ 1

yu

w1 = +1

w2 = +1y =

1 se u > 0

0 se u 0

+1

w0 = -1,5

Page 28: Mineração de dados

prof. Luis Otavio Alvares

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

Page 29: Mineração de dados

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.

Page 30: Mineração de dados

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

Page 31: Mineração de dados

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.

Page 32: Mineração de dados

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

Page 33: Mineração de dados

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.

Page 34: Mineração de dados

prof. Luis Otavio Alvares

Organização em camadas

Page 35: Mineração de dados

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 artificiais processam apenas

números atributos qualitativos ou imagens, por exemplo,

precisam antes ser transformados em valores numéricos

Page 36: Mineração de dados

prof. Luis Otavio Alvares

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

Page 37: Mineração de dados

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.

Page 38: Mineração de dados

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

Page 39: Mineração de dados

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.

Page 40: Mineração de dados

O número de características (variáveis, atributos)

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: correlações ou árvores de decisão.

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.

40

Page 41: Mineração de dados

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

Page 42: Mineração de dados

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

Page 43: Mineração de dados

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

Page 44: Mineração de dados

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

Page 45: Mineração de dados

Figura obtida em http://blog.peltarion.com/2006/07/10/classifier-showdown/

Page 46: Mineração de dados

Figura obtida em http://blog.peltarion.com/2006/07/10/classifier-showdown/

Page 47: Mineração de dados

Figura obtida em http://blog.peltarion.com/2006/07/10/classifier-showdown/

Page 48: Mineração de dados

Figura obtida em http://blog.peltarion.com/2006/07/10/classifier-showdown/

Page 49: Mineração de dados

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.

Page 50: Mineração de dados

Exercício

50

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

EstCivil

Rendim.

Mau Pagador

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 10

Casa Própria

Estado Civil

Rendim. Mau pagador

N Divorc. médio ? 10

P( E1 |H ).P( E2 | H)... .P(En | H). P(H)

P( E1 ).P( E2)... .P(En)P( H| E) =

Page 51: Mineração de dados

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

11 20 S

12 21 S

9 19 S

5 18 N

6 19 N

6 20 N

atrib1 atrib2 classe

8 18 ?