Nos dias de hoje, é impossível não ouvir falar sobre inteligência artificial e aprendizado de máquina. Esses conceitos se referem a modelos matemáticos, como o KNN, que usam conjunto de dados para tomar decisões e fazer classificações, isso tudo com as mais variadas aplicações.
O primeiro algoritmo de aprendizado de máquina geralmente estudado, também o mais simples, é o KNN (do inglês K Nearest Neighbors, ou K vizinhos mais próximos). Neste artigo, falaremos um pouco sobre esse algoritmo e como ele é bastante simples de ser implementado.
KNN: Para que serve?
O KNN serve para classificar amostras. Vamos elucidar com um exemplo, vamos supor que tenhamos um conjunto de dados com várias amostras de alturas de pessoas. Cada amostra tem uma altura e um rótulo, que a própria pessoa definiu, como “alto” ou “baixo”.
Um classificador tentará utilizar esse conjunto de dados para dizer se uma pessoa, que não está incluída neste conjunto de dados, seja alta ou não, a partir da altura dela.
Posto isso, iremos utilizar um modelo matemático, que vai extrair informações do conjunto de dados, ou seja, vai realizar um “treinamento”. A partir das informações extraídas, ela será capaz de classificar se uma pessoa é “baixa” ou “alta”.
Note que o KNN “aprendeu” sobre a altura de pessoas, olhando para os dados que ele foi alimentado. Isso é aprendizado de máquina, no geral, usar dados para ensinar coisas aos computadores.
KNN: Funcionamento
Para implementamos o KNN, precisamos de 3 coisas:
- Conjunto de dados
- Métrica de distância
- Uma amostra para classificar
O conjunto de dados vai depender da aplicação que queremos. Esse conjunto deve conter as classes. Voltando para o exemplo da altura, esse conjunto tem que ter os rótulos de altura, para que o KNN consiga ser implementado.
Funcionamento do algoritmo
Com a amostra e o conjunto de dados nas mãos, vamos começar. Primeiro, devemos calcular a distância da amostra que queremos classificar para todas as amostras do conjunto de dados. Devemos armazenar as distâncias obtidas, por que elas são fundamentais. Você pode querer ler sobre 3 tipos de distâncias bem úteis.
Com todas as distâncias em mãos, vamos classificar nossa amostra levando em consideração as K amostras do conjunto de dados mais próximas da nossa amostra que queremos classificar. É daí que vem o “K” do KNN.
Por fim, basta classificar nossa amostra com a classe que mais se repete nas K amostras mais próximas. Vamos elucidar com uma imagem:
Supondo que queremos classificar o quadrado amarelo em triângulo ou estrela. O conjunto de dados está representado pelos triângulos e estrelas, eles estão rotulados. Se nós utilizarmos K=3, estaremos levando em consideração as 3 amostras mais próximas para classificar nosso quadrado.
Logo, das 3 amostras mais próximas, vemos que a maioria, ou seja, 2, são triângulos. Então podemos classificar nosso quadrado como triângulo.
Escolha do K
Note que se mudarmos o K, podemos alterar o resultado. Pois, considerarmos K=7, ou seja, considerar os 7 mais próximos, a classe mais repetitiva é a estrela. Então, nesse caso, para K=7, nosso quadrado é classificado como uma estrela.
Não existe uma regra para a escolha do K, e vale testamos isso nos conjuntos de dados. Só não é indicado escolher valores muito grandes de K. Valores de K menores que 10% do número total de amostras do conjunto de dados são indicados para testes. Em posts futuros, discutiremos sobre otimizações.
KNN: Resumo
Para aplicar o KNN, você deve:
- Calcular a distância da sua amostra a ser classificada entre todas as amostras do conjunto de dados
- Observar as K amostras mais próximas a ela
- Verificar qual classe mais se repetiu
- Classificar sua amostra com essa classe
Conclusão
Em suma, conhecemos um algoritmo bem simples de aprendizagem de máquina. Embora ele seja simples, é bastante poderoso e pode chegar a valores de acurácia bem próximos aos de algoritmos mais sofisticados, como redes neurais. Contudo, eu não indico o KNN para conjunto de dados muito grandes, pois o custo computacional para calcular todas as distâncias pode ser muito alto. Até a próxima!
Referências
https://didatica.tech/o-que-e-e-como-funciona-o-algoritmo-knn/
https://miro.medium.com/max/810/1*0Pqqx6wGDfFm_7GLebg2Hw.png