Engenharia Informática (ramos de Gestão e Industrial) Departamento de Sistemas e Informação Reconhecimento de Padrões Projecto Final 2004/2005 Realizado por: Prof. João Ascenso. Departamento de Sistemas e Informática Data: 29/10/2003
1 Introdução O objectivo deste trabalho consiste em realizar um sistema completo de reconhecimento de padrões utilizando dados reais. O projecto de reconhecimento de padrões consiste na aplicação dos algoritmos estudados a um problema real, como por exemplo a classificação de mensagens de e-mail. Da mesma forma que está organizada a disciplina, o vosso projecto abrange três áreas distintas: a aprendizagem supervisionada (classificação), aprendizagem não supervisionada (clustering) e a classificação com árvores de decisão. Para cada um destas áreas as bases de dados com que irão trabalhar estão disponíveis na página da disciplina. Cada base de dados corresponde a um problema de classificação ou de agrupamento distinto e para o resolverem devem utilizar os algoritmos leccionados nesta disciplina e aqui propostos (http://ltodi.est.ips.pt/jascenso/padroes/index.htm). Para os projectos de aprendizagem supervisionada e das árvores de decisão, o vosso trabalho deve ser dividido em duas fases distintas: Aprendizagem ou treino do classificador. Classificação e avaliação de desempenho do classificador. Para o projecto da aprendizagem não supervisionada, é necessário efectuar o agrupamento dos dados segundo uma medida, respectiva função de custo e algoritmo (e.g. k-médias). De seguida devem avaliar o sucesso no agrupamento de dados através de uma avaliação subjectiva ou através de um conjunto de validação. 2 Objectivos do trabalho Os objectivos do trabalho final da disciplina de reconhecimento de padrões consiste em testar os vossos conhecimentos nesta área através da resolução de um problema de aprendizagem supervisionada e um problema de aprendizagem não supervisionada ou de árvores de decisão. Assim, de todos os problemas disponíveis devem escolher dois problemas que achem interessantes: Um na área da aprendizagem supervisionada (Secção 3.1). Outro na área de aprendizagem não supervisionada (Secção 3.2) ou na área de árvores de decisão (Secção 3.3). 3 Bases de dados disponíveis Devem utilizar as seguintes bases de dados aqui referidas e disponíveis na página da disciplina. Cada base de dados é aqui descrita em conjunto com o objectivo do vosso trabalho. Estas bases de dados também estão disponíveis online em: http://www.cs.utoronto.ca/~delve/data/datasets.html. Além das bases de
dados aqui disponibilizadas, podem procurar e utilizar outras bases de dados (por exemplo em http://www.ics.uci.edu/~mlearn/mlrepository.html) e propor a resolução de qualquer outro problema. 3.1 Aprendizagem supervisionada Para o algoritmos de aprendizagem supervisionada devem escolher uma das seguintes bases de dados: Letter Recognition Dataset: Esta base de dados contêm um conjunto de atributos (17) obtidos a partir de um conjunto de imagens com as letras do alfabeto A a Z (letra grande). O objectivo deste trabalho é classificar uma imagem (com uma única letra) como uma das 26 letras do alfabeto. Image Segmentation Dataset: Esta base de dados contêm um conjunto de atributos (19) obtidos a partir de uma região de uma fotografia. As classes definidas, correspondem a tipos de regiões típicos em imagens ao ar livre: brickface, sky, foliage, cement, window, path, grass. O objectivo deste trabalho é classificar uma dada região da imagem como pertencendo a uma das 7 categorias. 3.2 Aprendizagem supervisionada No caso da classificação não supervisionada ou clustering estão disponíveis as seguintes bases de dados: Corel Image DataSet: Esta base de dados é constituída por 1000 imagens em variadas condições. O principal objectivo é agrupar imagens semelhantes através de características (ou atributos) baseados na cor. Existem várias características que podem ser utilizadas, sugere-se a utilização de um simples histograma da imagem (função Matlab imhist), ou de medidas como a cor média, cor dominante, etc. A avaliação dos resultados dos algoritmos deve ser realizada subjectivamente. Logo DataSet: Esta base de dados é constituída por várias imagens a preto e branco e o objectivo é agrupar imagens semelhantes que sofreram diversas transformações espaciais, e.g. rotações, cortes, zooms, etc. Para obterem as características (ou atributos) de cada uma das imagens devem utilizar a função imfeature do Matlab, que retorna um conjunto de características geométricas. Para avaliar o desempenho dos algoritmos devem averiguar se cada uma das imagens foi agrupada correctamente. Segmentação de imagens: O objectivo deste trabalho é segmentar uma imagem em várias regiões. A base de dados a utilizar por este trabalho pode consistir em qualquer imagem retirada
do Corel Image DataSet ou mesmo de fotografias obtidas por vocês. Os algoritmos implementados devem ser avaliados, segundo a qualidade da segmentação, i.e. se cada região corresponde um objecto com significado semântico presente na imagem. As características (ou atributos) correspondem aos valores dos pixels (R, G, B) de cada imagem. 3.3 Árvores de decisão Para o caso da classificação com árvores de decisão estão disponíveis as seguintes bases de dados: Mushrooms Dataset: Esta base de dados contêm um conjunto de atributos físicos de 23 espécies de cogumelos. Cada espécie é classificada como comestível ou venenosa. O principal objectivo é classificar um dado cogumelo (identificado através do seu conjunto de atributos físicos) que pertence a uma espécie desconhecida, como comestível ou venenoso. Titanic DataSet: Esta base de dados contêm quatro atributos para cada uma das 2201 pessoas no Titanic quando este se afundou. Os atributos são a classe social (1ª classe, 2ª classe, etc.) a idade (adulto ou criança), o sexo e se a pessoa sobreviveu ou não. O objectivo é analisar os dados, procurar um padrão (p.e. a maior parte dos sobreviventes eram do sexo masculino) e obter a probabilidade de uma dada pessoa sobreviver ou não ao acidente do Titanic. 4 Algoritmos de classificação Para resolverem qualquer um dos problemas acima descritos, devem utilizar um algoritmos estudados na disciplina de reconhecimento de padrões. Para o caso da aprendizagem supervisionada, devem implementar os seguintes algoritmos: Estimação de Máxima Verosimilhança (método paramétrico). Método dos k-vizinhos mais próximos (método não paramétrico). Para o caso da aprendizagem não supervisionada, devem escolher dois dos seguintes algoritmos: Algoritmo de k-médias ou LBG. Algoritmo ISODATA. Agrupamento hierárquico ou divisivo. Para o caso das árvores de decisão, devem implementar o algoritmo ID3.
Para qualquer algoritmo devem afinar os parâmetros existentes e experimentar diversas opções. Por exemplo, para o método dos k-vizinhos mais próximos devem verificar a influência do valor de k no desempenho e as várias medidas de distância (e.g. distância euclidiana, city block, etc.). Opcionalmente, podem utilizar o algoritmo PCA, para descorrelacionar o vector de características dos dados e averiguar se conseguem obter um desempenho superior através deste algoritmo. Para qualquer destas bases de dados devem definir um conjunto de teste e um conjunto de treino. Também devem verificar a influência da dimensão de cada conjunto de teste e de treino no desempenho dos algoritmos. Para cada base de dados existem um conjunto de ficheiros com mais informação sobre os atributos e sobre o conjunto de teste e de treino a utilizar para desenvolver e testar os algoritmos. 5 Relatório final O principal objectivo do relatório é avaliar a vossa capacidade de exposição do trabalho realizado e o domínio dos algoritmos implementados. Deste modo é fundamental que contenha pelo menos as seguintes componentes: Uma descrição concisa do problema. Descrição detalhada da vossa solução ao problema. Resultados obtidos com os algoritmos escolhidos. Um discussão sobre a validade dos vossos resultados. Um apêndice com o código MATLAB (ou outro) produzido. O relatório deve ser curto e não deve exceder mais de 8 páginas. Todos os projectos são submetidos a uma avaliação oral. Antes de realizarem o vosso trabalho é obrigatório a realização de um relatório provisório onde indicam qual é o problema que escolheram, os algoritmos que desejam implementar, bem como algumas dúvidas que tenham em relação à realização do projecto.