Mineração de dados
-
Upload
harrison-lopez -
Category
Documents
-
view
25 -
download
0
description
Transcript of 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)
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
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:
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
Naïve Bayes – visão geral
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)
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
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
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)=
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
P(Aspecto = Sol ) = 5/14
P(Temperatura = Fria) = 4/14
P(Umidade = Alta ) = 7/14
P(Vento = Forte ) = 6/14
Exemplo: Naive Bayes
11
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
= =
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
= =
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!
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
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 margemDistância entre vetores de suporte e o hiperplano
Conceitos de SVM
Qual o hiperplano ótimo?
– Menor erro de classificação
– Maior margemDistâ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
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)
O resultado da classificação é aquele que aparecer mais vezes entre os k vizinhos mais próximos.
K- Nearest Neighbor (k-NN)
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, ???)
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
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
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
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
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 artificiais processam apenas
números atributos qualitativos ou imagens, por exemplo,
precisam antes ser transformados em valores numéricos
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
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.
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
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
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) =
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 ?