Escolar Documentos
Profissional Documentos
Cultura Documentos
Trabalho 05 - KNN
Descrição do Trabalho:
O trabalho consiste na implementação do algoritmo de classificação K-Nearest–Neighbors (KNN)
O algoritmo KNN:
O algoritmo KNN (K-Nearest Neighbors) é um método simples e ao mesmo tempo muito popular e poderoso
de Aprendizado de Máquina. O nome "K-Nearest Neighbors" refere-se ao fato de que o algoritmo toma como base os
K vizinhos mais próximos de um determinado ponto para realizar a classificação de um elemento novo e
desconhecido. A ideia central é que pontos semelhantes tendem a pertencer à mesma classe. Portanto, ao classificar
um novo ponto, o algoritmo identifica os K vizinhos mais próximos e atribui a ele a classe mais frequente entre esses
vizinhos.
Na Figura 1 é apresentado um exemplo. Os pontos marcados como estrela representam uma classe A e os
triângulos uma classe B, ou seja, para todos esses pontos tem-se a classe associada. Imagine, então, que se tenha um
novo elemento (marcado em amarelo com um símbolo de interrogação). O algoritmo do KNN recebe do usuário um
valor K (normalmente ímpar) e classifica o novo elemento de acordo com as classes dos K elementos mais próximos.
No exemplo da Figura, se K é igual a 3, o novo exemplo seria classificado como um triângulo, enquanto se K é igual a
7, ele seria classificado como uma estrela. Existem várias métricas de distância que podem ser utilizadas, sendo a
distância Euclidiana a mais comum.
Proposta:
Você deverá fazer um programa que recebe um nome de arquivo com os dados do conjunto iris.data. o
programa deve ler esse arquivo e armazenar na memória. Após isso, seu programa deve ler dois valores: um número
inteiro K; e o nome de outro arquivo que contém registros sem classificação, ou seja, sem a informação do atributo
species. Por fim, para cada registro sem classificação o programa deve imprimir em qual classe tal registro foi
classificado. Para medir a distância entre os pontos deve ser utilizada a distância euclidiana.
Observações importantes:
● Este trabalho tem peso 3
● O trabalho deve ser feito em grupos de no máximo duas pessoas.
○ Coloque como comentários nas primeiras linhas do código o nome completo dos membros do grupo
● A data de entrega estará informada no moodle
● Para entregar o trabalho, submeta o código fonte no moodle
○ A submissão deve ser feita por apenas um integrante do grupo
● Neste trabalho é permitido utilizar qualquer função padrão do python. Não é permitido o uso de bibliotecas
como numpy, pandas, scikit learn, etc. Se necessário, é permitido utilizar apenas as bibliotecas math e os.
○ A nota será atribuída pela análise do código (que deverão estar corretos, seguirem boas práticas de
programação, e possuírem lógica clara) e execução correta.
○ Plágios terão nota zero.