/pattern-recognition-discipline

An implementation of the pattern recognition algorithm KNN based on cross-validation methodology K-fold.

Primary LanguageJavaMIT LicenseMIT

Reconhecimento de Padrões

Pequeno executável que implementa e calcula a taxa de acertos do algoritmo K-NN com a metodologia de validação cruzada K-FOLD e normalização de dados com o algoritmo Z-SCORE.

Neste arquivo você encontrará instruções para instalação e também tecnologias utilizadas nesta aplicação.

Primeiros Passos

Siga estas instruções para ter uma cópia do projeto funcionando em seu computador.

Pré-requisitos

O que você precisará:

IDE Eclipse
Maven
JDK

Instalando

Siga os passos a seguir para rodar esta aplicação em seu computador.

Caso não esteja interessado no desenvolvimento, vá para a página Releases e baixe o compilado para executar.

Obtendo uma cópia

Faça o download, use uma ferramente Git ou a própria IDE Eclipse para clonar este repositório:

No Eclipse, vá em File → Import → Git → Projects from Git → Clone URI.
Informe a URI e clique em Next → Next → Next → Import as general project → Next → Finish.
No Eclipse, com o botão direito sobre o projeto, vá em Configure → Convert to Maven Project

Executando

Execute o projeto como uma aplicação Java:

No Eclipse, com o botão direito sobre o projeto, vá em Run As → Java Application

Demonstração

Primeiro informe o Nome do arquivo com amostras:. Este deve ser um arquivo texto com o seguinte padrão:

3 4
1.0 1.4 1.3 2.0 1
4.5 1.1 0.9 2.1 2
9.9 8.0 7.0 6.0 3

A primeira linha contém apenas 2 valores: a quantidade de amostras (N) e o número de atributos (D) de cada amostra. Cada uma das N linhas seguintes representa uma amostra com seus D atributos e mais um valor numérico inteiro que representa a classificação daquela amostra.

Depois, informe o Número de partições (K-FOLD):. Seu conjunto de amostras será dividido nesta quantidade de conjuntos para aplicar a metodologia cruzada.

Informe o Número de vizinhos (K-NN): desejado para o cálculo do algoritmo de reconhecimento de padrões.

Responda com true ou false se deseja Normalizar dados (Z-SCORE): e Aleatorizar amostras:.

O programa mostrará a taxa de erro do algoritmo para os dados e opções escolhidas.

Deployment

Distribua este projeto como um arquivo *.jar para rodá-lo em um computador com JRE:

No Eclipse, com o botão direito sobre o projeto, vá em Export → Java → JAR file

Tecnologias utilizadas

  • Java - Back-end
  • Maven - Gerenciador de dependências

Conceitos teóricos aplicados

  • K-NN - Algoritmo K-Nearest Neighbors
  • K-Fold - Validação Cruzada
  • Z-Score - Padronização Estatística

Autores

Licença

Este projeto está licenciado sob a MIT License - leia LICENSE.md para mais detalhes.