Skip to content

Implementação do algoritmo K Vizinhos Mais Próximos (KNN) em C

Notifications You must be signed in to change notification settings

InfiniteMarcus/K-Vizinhos

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 

Repository files navigation

Algoritmo de K Vizinhos em C - Classificação com ML

Sobre o projeto

Este código foi desenvolvido para fins de estudo sobre Inteligência Artificial e técnicas de Aprendizado de Máquina dentro da comunidade estudantil HackoonSpace.

Sobre o algoritmo

O algoritmo aqui implementado é chamado de K Vizinhos mais próximos (KNN, em inglês). É uma das técnicas mais simples e utilizadas na classificação de amostras com Machine Learning, bem como em sistemas de recomendação.

Para melhor compreensão de como o algoritmo funciona, é recomendado visitar os links presentes na seção de referências deste README.

O código-fonte do projeto foi escrito na linguagem C, e algumas adaptações foram feitas para melhor didática. É recomendado ler os comentários fornecidos no próprio código para compreender quais modificações são necessárias para utilizar o projeto em uma aplicação real.

Em geral, este KNN utiliza dois atributos diferentes (X e Y) de uma nova amostra para realizar uma classificação binária (classes 0 e 1) baseada em 10 dados já classificados gerados pelo próprio algoritmo. O cálculo da distância entre os dados é feito utilizando distância euclidiana.

Compilação e execução

Para compilar o código, utilize o comando (com GCC) ou compile com o seu compilador de C de preferência:

    gcc kVizinhos.c -o kVizinhos

Posteriormente, execute o executável gerado no diretório da forma apropriada ao seu sistema operacional.

Ao executar, o programa irá pedir para que você informe:

  • Um valor para K (use de preferência valores impares)
  • Valor da amostra no eixo X
  • Valor da amostra no eixo Y

É importante ressaltar que, para este algoritmo, K não pode ser maior do que 10 apenas porquê o tamanho da base de dados usada para a classificação é 10. Em uma aplicação real, com uma base bem maior, não haveria este tipo de limitação.

Após informar os dados de entrada, o algoritmo irá mostrar duas listas:

  • Lista total de vizinhos
  • Lista dos K vizinhos mais próximos da amostra

Para ambas, ele irá mostrar os valores dos atributos em X e Y e as respectivas classes de cada vizinho. Por fim, ele irá realizar a classificação utilizando os dados da segunda lista.

Referências e materiais

Para o desenvolvimento deste código, foram usados os seguintes materiais de apoio:

About

Implementação do algoritmo K Vizinhos Mais Próximos (KNN) em C

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages