Reconhecimento de
Padrões
Métodos, Técnicas e Ferramentas para Aprendizado e
Classificação de Dados
Prof. Dr. rer.nat. Aldo von Wangenheim
Antonio da Luz Jr. (estag. docência)
The Cyclops Project
German-Brazilian Cooperation Programme on IT
CNPq GMD DLR
Noções de Conjuntos de Dados,
Métricas de Distância,
Normalização e Técnicas de
Classificação
The Cyclops Project
German-Brazilian Cooperation Programme on IT
CNPq GMD DLR
The Cyclops Project
German-Brazilian Cooperation Programme on IT
CNPq GMD DLR
Disciplina Reconhecimento de Padrões
Curso de Ciência da Computação
INE/CTC/UFSC
Características: Reconhecimento de Padrões
• Geralmente dados sob a forma de pares atributo-valor
– atributo é definido pela posição do valor em um vetor de dados,
– ex.: (1 2 4 11.01 1), representando: (num_imóveis, num_carros,
num_filhos, idade_media_filhos, bom/mau pagador)
• Dados numéricos ou representações numéricas de dados simbólicos
– ex: 1=fumante, 2=não fumante, 3=fumante eventual.
• Se os padrões são pré-classificados em classes, essas
geralmente são resultado da experiência de usuários humanos
no domínio de aplicação.
• Objetivo quase sempre será o de reconhecer padrões
– classificá-los, porém sem gerar explicações complexas sobre o porquê
desta classificação.
The Cyclops Project
Disciplina Reconhecimento de Padrões
German-Brazilian Cooperation Programme on IT
CNPq GMD DLR
Curso de Ciência da Computação
INE/CTC/UFSC
Como classificamos padrões ?
• Se já sabemos quantas categorias possuímos e temos
exemplos de instâncias de cada categoria: queremos
criar um classificador
– Vai utilizar nossos exemplos para classificar novos dados.
• Se temos dados mas não sabemos como se
organizam, temos de minerá-los: queremos criar um
agrupador
– O resultado desse agrupamento pode ser utilizado para
classificações futuras.
Disciplina Reconhecimento de Padrões
The Cyclops Project
Curso de Ciência da Computação
INE/CTC/UFSC
German-Brazilian Cooperation Programme on IT
CNPq GMD DLR
Conjuntos de Dados
• Conjuntos de dados 2D
(10
2000)
• Conjuntos de dados n-D
(40
(20
4
5
100
1)
4
1)
The Cyclops Project
German-Brazilian Cooperation Programme on IT
CNPq GMD DLR
Disciplina Reconhecimento de Padrões
Curso de Ciência da Computação
INE/CTC/UFSC
Conjunto de Dados em Espiral
• Conjunto de dados 2D distribuídos em um
Sistema de Coordenadas Polares (r, θ)
• Os conjuntos de dados em espiral podem ser
utilizados para testes de performance em
algoritmos de classificação de dados
– podem ser gerados automaticamente com
variados graus de detalhes e ruído.
The Cyclops Project
German-Brazilian Cooperation Programme on IT
CNPq GMD DLR
Disciplina Reconhecimento de Padrões
Curso de Ciência da Computação
INE/CTC/UFSC
Espiral simples
• Temos dados distribuídos em espiral
– Cada ponto representa o protótipo de uma categoria
ou classe.
• A tarefa de reconhecimento de padrões é
classificá-los adequadamente, de forma a associar
outros dados aleatórios a uma das classes
existente na espiral
The Cyclops Project
German-Brazilian Cooperation Programme on IT
CNPq GMD DLR
Disciplina Reconhecimento de Padrões
Curso de Ciência da Computação
INE/CTC/UFSC
The Cyclops Project
German-Brazilian Cooperation Programme on IT
CNPq GMD DLR
Disciplina Reconhecimento de Padrões
Curso de Ciência da Computação
INE/CTC/UFSC
Espiral dupla
• As espirais duplas constituem um problema
diferente da espiral simples.
– Em uma espiral dupla, cada braço da espiral
representa uma categoria ou classe.
– Cada classe é representada por muitos pontos, que
são organizados sob forma de espiral.
• A tarefa aqui é classificar um ponto aleatório
como pertencente a uma determinada classe,
representada através de um braço da espiral.
The Cyclops Project
German-Brazilian Cooperation Programme on IT
CNPq GMD DLR
Disciplina Reconhecimento de Padrões
Curso de Ciência da Computação
INE/CTC/UFSC
• Na espiral dupla, cada classe é representada por
um conjunto de pontos, organizados em espiral
– os dois conjuntos de dados não são linearmente
separáveis.
The Cyclops Project
German-Brazilian Cooperation Programme on IT
CNPq GMD DLR
Disciplina Reconhecimento de Padrões
Curso de Ciência da Computação
INE/CTC/UFSC
The Cyclops Project
German-Brazilian Cooperation Programme on IT
CNPq GMD DLR
Espiral dupla sem ruído
Disciplina Reconhecimento de Padrões
Curso de Ciência da Computação
INE/CTC/UFSC
The Cyclops Project
Disciplina Reconhecimento de Padrões
German-Brazilian Cooperation Programme on IT
CNPq GMD DLR
Espiral dupla com pouco ruído
Curso de Ciência da Computação
INE/CTC/UFSC
The Cyclops Project
Disciplina Reconhecimento de Padrões
German-Brazilian Cooperation Programme on IT
CNPq GMD DLR
Espiral dupla com bastante ruído
Curso de Ciência da Computação
INE/CTC/UFSC
The Cyclops Project
German-Brazilian Cooperation Programme on IT
CNPq GMD DLR
Disciplina Reconhecimento de Padrões
Curso de Ciência da Computação
INE/CTC/UFSC
Métricas de Distância
• O que são métricas de distância?!
– São funções utilizadas para se determinar o grau de
dissimilaridade entre dois ou mais valores
• Onde se aplicam?!
– Avaliação de dissimilaridade entre objetos durante o
processo de classificação ou agrupamento de padrões
– Podem ser utilizados em qualquer situação em que se
queira determinar a quão distante um objeto está do
outro
Disciplina Reconhecimento de Padrões
The Cyclops Project
German-Brazilian Cooperation Programme on IT
CNPq GMD DLR
Curso de Ciência da Computação
INE/CTC/UFSC
Distância de Hamming
• Originalmente criada para vetores binários:
– media distância entre vetores contando o número de
bits diferentes: mismatch count.
dH(1011101 , 1001001) = 2
dH(pato , mata) = 2
The Cyclops Project
Disciplina Reconhecimento de Padrões
German-Brazilian Cooperation Programme on IT
CNPq GMD DLR
Curso de Ciência da Computação
INE/CTC/UFSC
Distância de Hamming Extendida
• Mais útil em RP que a original
– Cálculo extremamente rápido
Disciplina Reconhecimento de Padrões
The Cyclops Project
Curso de Ciência da Computação
INE/CTC/UFSC
German-Brazilian Cooperation Programme on IT
CNPq GMD DLR
Distância de Hamming Extendida
dH+ ( (10
2000
20
4
0
0
0)
(2
3000
40
5
100
4
1) )
= 8 + 1000 + 20 + 1 + 100 + 4 + 1
= 1134
The Cyclops Project
German-Brazilian Cooperation Programme on IT
CNPq GMD DLR
Disciplina Reconhecimento de Padrões
Curso de Ciência da Computação
INE/CTC/UFSC
Distância Euclidiana
• Provê a real distância entre dois pontos em um espaço
n-dimensional qualquer.
– Cálculo demorado para dimensões elevadas
Disciplina Reconhecimento de Padrões
The Cyclops Project
Curso de Ciência da Computação
INE/CTC/UFSC
German-Brazilian Cooperation Programme on IT
CNPq GMD DLR
Distância Euclidiana
dE ( (10
2000
20
4
0
0
0)
(2
3000
40
5
100
4
1) )
= 1.005,23
The Cyclops Project
Disciplina Reconhecimento de Padrões
German-Brazilian Cooperation Programme on IT
CNPq GMD DLR
Curso de Ciência da Computação
INE/CTC/UFSC
Normalização de Valores
• Por que normalizar?!
– Aproximar valores com escalas muito diferentes
– Facilitar a manipulação e interpretação dos dados
• Como normalizar?!
– Um valor normalizado é obtido pela divisão desse valor
pelo resultado da soma de todos os valores existentes
no conjunto
The Cyclops Project
German-Brazilian Cooperation Programme on IT
CNPq GMD DLR
Disciplina Reconhecimento de Padrões
Curso de Ciência da Computação
INE/CTC/UFSC
Técnicas de Classificação de Dados
• É um conjunto de regras que devem ser seguidas
durante o processo de classificação de novos conjuntos
de dados (padrões) dentro de um determinado domínio
• Servem para identificar a qual classe de dados
existente o novo conjunto deve ser associado
• Muitas vezes se utilizam das Métricas de Distância para
determinar o grau de dissimilaridade entre o novo
padrão e os já existentes no domínio
The Cyclops Project
Disciplina Reconhecimento de Padrões
German-Brazilian Cooperation Programme on IT
CNPq GMD DLR
Curso de Ciência da Computação
INE/CTC/UFSC
Nearest Neighbour - NN
• Classifica um novo padrão calculando a
distância deste a todos os outros em alguma
métrica predefinida e escolhe como classe para
ele a classe daquele mais próximo nesta
métrica.
Disciplina Reconhecimento de Padrões
The Cyclops Project
German-Brazilian Cooperation Programme on IT
CNPq GMD DLR
?
Curso de Ciência da Computação
INE/CTC/UFSC
The Cyclops Project
German-Brazilian Cooperation Programme on IT
CNPq GMD DLR
Disciplina Reconhecimento de Padrões
Curso de Ciência da Computação
INE/CTC/UFSC
k-Nearest Neighbour
• k-NN utiliza um critério de votação:
– observa os k padrões mais próximos ao novo padrão a
ser classificado.
• Classifica o padrão com a classe mais freqüente
na lista dos k padrões analisados.
Disciplina Reconhecimento de Padrões
The Cyclops Project
German-Brazilian Cooperation Programme on IT
CNPq GMD DLR
?
Curso de Ciência da Computação
INE/CTC/UFSC
Tesselação:
Triangulação de Delaunay e
Diagrama de Voronoi
The Cyclops Project
German-Brazilian Cooperation Programme on IT
CNPq GMD DLR
The Cyclops Project
German-Brazilian Cooperation Programme on IT
CNPq GMD DLR
Disciplina Reconhecimento de Padrões
Curso de Ciência da Computação
INE/CTC/UFSC
Tesselação
• Uma outra forma de gerarmos um classificador
para padrões é dividirmos o espaço de dados em
regiões através de algum método geométrico.
• Cada região representa então uma categoria ou
classe. Classificamos padrões observando em que
região caem.
• A forma mais tradicional de Tesselação é o
Diagrama de Voronoi.
The Cyclops Project
German-Brazilian Cooperation Programme on IT
CNPq GMD DLR
Disciplina Reconhecimento de Padrões
Curso de Ciência da Computação
INE/CTC/UFSC
O que é um Diagrama de Voronoi ?
• Foi inventado para resolver um problema
simples:
– Como dividir uma cidade em áreas irregulares de
forma a que a área coberta por um carteiro
vinculado a uma determinada agência de correio
seja otimizada ?
The Cyclops Project
German-Brazilian Cooperation Programme on IT
CNPq GMD DLR
Disciplina Reconhecimento de Padrões
Curso de Ciência da Computação
INE/CTC/UFSC
O que é um Diagrama de Voronoi ?
• G. F. Voronoi, em sua tese de doutorado intitulada Ob
odnom obobshchenii algorifma nepreryvnykh drobei
(Sobre uma generalização do algoritmo de quebra de
cadeias.), publicada em Varsóvia, Polônia, em 1896,
desenvolveu um método onde,
– com base em uma triangulação pré-existente de pontos que
representam os centros de alguma coisa (no caso da
primeira aplicação, agências de correio),
– se determina qual a área de influência de cada um destes
centros em função da posição dos outros centros,
delimitando de forma geométrica cada área de influência.
The Cyclops Project
German-Brazilian Cooperation Programme on IT
CNPq GMD DLR
Disciplina Reconhecimento de Padrões
Curso de Ciência da Computação
INE/CTC/UFSC
O que é um Diagrama de Voronoi ?
The Cyclops Project
German-Brazilian Cooperation Programme on IT
CNPq GMD DLR
Disciplina Reconhecimento de Padrões
Curso de Ciência da Computação
INE/CTC/UFSC
O que é um Diagrama de Voronoi ?
• Chamamos estes "centros" de centróides.
– Se nós temos um conjunto de padrões constituído de um elemento
típico para cada categoria que queremos representar (protótipo),
podemos nos utilizar do diagrama de Voronoi para determinar a
extensão de cada uma das categorias, simplesmente utilizando
cada um dos protótipos como um centróide e gerando um
diagrama de Voronoi sobre estes.
• Para podermos gerar um diagrama de Voronoi partimos do
conjunto de protótipos e geramos primeiramente uma
triangulação.
– Para isto utilizamos o método da Triangulação de Delaunay
The Cyclops Project
German-Brazilian Cooperation Programme on IT
CNPq GMD DLR
Disciplina Reconhecimento de Padrões
Curso de Ciência da Computação
INE/CTC/UFSC
The Cyclops Project
German-Brazilian Cooperation Programme on IT
CNPq GMD DLR
Disciplina Reconhecimento de Padrões
Curso de Ciência da Computação
INE/CTC/UFSC
The Cyclops Project
German-Brazilian Cooperation Programme on IT
CNPq GMD DLR
Disciplina Reconhecimento de Padrões
Curso de Ciência da Computação
INE/CTC/UFSC
The Cyclops Project
German-Brazilian Cooperation Programme on IT
CNPq GMD DLR
Disciplina Reconhecimento de Padrões
Curso de Ciência da Computação
INE/CTC/UFSC
The Cyclops Project
German-Brazilian Cooperation Programme on IT
CNPq GMD DLR
Disciplina Reconhecimento de Padrões
Curso de Ciência da Computação
INE/CTC/UFSC
The Cyclops Project
German-Brazilian Cooperation Programme on IT
CNPq GMD DLR
Disciplina Reconhecimento de Padrões
Curso de Ciência da Computação
INE/CTC/UFSC
The Cyclops Project
German-Brazilian Cooperation Programme on IT
CNPq GMD DLR
Disciplina Reconhecimento de Padrões
Curso de Ciência da Computação
INE/CTC/UFSC
The Cyclops Project
German-Brazilian Cooperation Programme on IT
CNPq GMD DLR
Disciplina Reconhecimento de Padrões
Curso de Ciência da Computação
INE/CTC/UFSC
The Cyclops Project
German-Brazilian Cooperation Programme on IT
CNPq GMD DLR
Disciplina Reconhecimento de Padrões
Curso de Ciência da Computação
INE/CTC/UFSC
Exercícios (entregar 25/09/2006)
• Definir 4 conjuntos de dados: 2 qquer (2D e nD) e 2 espirais
– Ex.: dos sites sugeridos
– Espiral: Gerar com e sem ruído e com número variável de elementos
de dados.
• Implementar Hamming+, DE, NN e kNN
– Gerar dados aleatórios e testar com todos os 4 conjuntos.
– Mostrar pela cor com qual categoria foram classificados os dados
aleatórios (interface gráfica).
• Implementar diagrama de Voronoi
– Gerar dados aleatórios e testar no conj. 2D e nas duas espirais
– Apresentar os resultados com interface gráfica
The Cyclops Project
Disciplina Reconhecimento de Padrões
German-Brazilian Cooperation Programme on IT
CNPq GMD DLR
Curso de Ciência da Computação
INE/CTC/UFSC
Sugestões
• http://www.voronoi.com/
• http://www.ics.uci.edu/~eppstein/gina/scot.drysdale.html
• http://www.cs.cornell.edu/Info/People/chew/Delaunay.html
• http://mathworld.wolfram.com/VoronoiDiagram.html
• http://www.msi.umn.edu/~schaudt/voronoi/voronoi.html
• http://www.diku.dk/hjemmesider/studerende/duff/Fortune/
• http://www.cs.unc.edu/~geom/voronoi/
• http://www.csie.ntu.edu.tw/~b5506061/voronoi/Voronoi.html
• http://www.ifor.math.ethz.ch/~fukuda/polyfaq/node27.html
• http://www.dr-mikes-maths.com/DotPlacer.html
• http://wwwp.fc.unesp.br/~mauri/Down/Polares.pdf
Download

The Cyclops Project