Algoritmo K-Nearest Neighbors em R [Guia definitivo com exemplos]

Publicados: 2020-03-20

O algoritmo KNN em R é bastante popular devido à sua versatilidade e funcionalidade. Então você deve ter ouvido falar do nome de vez em quando se estiver estudando aprendizado de máquina. E você deve ter se perguntado: “O que é KNN em R?” ou “Como funciona?”.

Neste artigo, encontraremos respostas para essas mesmas perguntas e ajudaremos você a entender completamente esse tópico. Então, sem mais delongas, vamos mergulhar.

Índice

O que é o algoritmo KNN?

KNN significa K vizinho mais próximo. É um algoritmo de aprendizado de máquina supervisionado que classifica os pontos de dados em classes de destino de acordo com os recursos dos pontos de dados adjacentes dos pontos.

Suponha que você queira que sua máquina identifique as imagens de maçãs e laranjas e as distinga. Para fazer isso, você precisará inserir um conjunto de dados de imagens de maçã e laranja. Em seguida, você terá que treinar seu modelo de dados, permitindo que ele detecte cada fruta por meio de seus recursos exclusivos. Tipo, ele poderia reconhecer maçãs por sua cor vermelha e laranjas por sua cor.

Depois de treinar seu modelo de dados, você pode testá-lo fornecendo um novo conjunto de dados com outras imagens de maçãs e laranjas. Agora, o algoritmo KNN separará maçãs e laranjas classificando-as de acordo com os recursos que ele detectou no modelo de treinamento.

Ele compararia os recursos de um ponto de dados com seus vizinhos para ver quão semelhantes eles são. E irá classificá-los de acordo com essas descobertas.

Em muitos casos, você plotará os pontos em um gráfico. E para calcular a distância entre dois pontos, você precisará usar fórmulas diferentes. O método mais comum para calcular a distância entre dois pontos de dados é a distância euclidiana. Calcula a distância independente das propriedades ou atributos presentes nos pontos.

Recursos do algoritmo KNN

A seguir estão os recursos do algoritmo KNN em R:

  • É um algoritmo de aprendizado supervisionado. Isso significa que ele usa dados de entrada rotulados para fazer previsões sobre a saída dos dados.
  • É um algoritmo de aprendizado de máquina simples
  • Você pode usar o algoritmo KNN para vários tipos de problemas
  • É um modelo não paramétrico. Isso significa que ele não faz suposições sobre os dados, o que o torna bastante útil para resolver problemas relacionados a dados reais.
  • Ele classifica os dados comparando os pontos de dados com seus vizinhos. Em palavras simples, o funcionamento do algoritmo KNN é baseado na similaridade de atributos.
  • Ele se enquadra na categoria de algoritmos preguiçosos. Um algoritmo preguiçoso memoriza os dados de treinamento em vez de aprender a função discriminativa do mesmo. Saiba mais sobre os tipos de algoritmos de aprendizado de máquina.
  • Você pode usar o KNN para resolver problemas de regressão e de classificação.

O algoritmo KNN é imparcial e, devido aos recursos discutidos acima, é a escolha preferida para muitos problemas. No entanto, tudo tem seus problemas, e KNN não é uma exceção.

Este algoritmo não é útil para resolver problemas muito complexos. Seu modelo também não possui um processo de abstração. Para um modelo adequado, você precisará de dados de alta qualidade, pois às vezes pode perder insights valiosos porque é um algoritmo preguiçoso. É rápido, mas você precisará gastar muito tempo na limpeza de dados.

Como funciona?

Para entender como o KNN em R funciona, vamos dar uma olhada em outro exemplo.

Suponha que seu conjunto de dados tenha duas classes. A classe 1 tem retângulos, enquanto a classe 2 tem círculos. Você deve atribuir o novo ponto de dados inserido a uma dessas duas classes usando este algoritmo. Para fazer isso, primeiro você terá que definir o valor de 'K' para seu algoritmo. K denota o número de pontos vizinhos mais próximos que o algoritmo irá considerar.

Considere que você insere K como 4 neste exemplo. E para K = 4, os vizinhos são três círculos e um retângulo. Nesse caso, você classificará o ponto de dados na Classe 2, pois o número de círculos ao redor do ponto é maior que o de retângulos.

Se os vizinhos fossem três retângulos e um círculo, você os classificaria na Classe 1. Já discutimos como o algoritmo KNN calcula a distância entre dois pontos para determinar quem é o vizinho mais próximo. Ele usa a fórmula da distância euclidiana para esse fim.

A fórmula da distância euclidiana é a seguinte:

d(p,q) = d(q,p) = ( q 1 p 1 ) 2 +( q 2 p 2 ) 2 … ( q n p n ) 2

Aqui, p = (p1, p2, p3, …. pn) eq = (q1, q2, q3, … qn). Nesta equação, 'd' denota a distância euclidiana entre os pontos p e q.

Como você pode ver, é bem simples. E sua simplicidade o torna altamente versátil, pelo que é um dos algoritmos mais populares. Você pode usá-lo para uma variedade de problemas.

Exemplo de KNN em R

Você pode estar se perguntando onde vemos as aplicações dos algoritmos KNN na vida real. Para isso, você tem que olhar para a Amazon.

O enorme sucesso da Amazon depende de muitos fatores, mas um deles é o uso de tecnologias avançadas. Uma dessas tecnologias é o aprendizado de máquina. Seu sistema de recomendação os ajudou a gerar centenas de milhões de receita. E este sistema de recomendação utiliza o algoritmo KNN para este fim.

Leia também: Ideias de projetos de aprendizado de máquina

Suponha que você compre um jeans Wrangler preto com uma jaqueta de couro na Amazon. Algumas semanas depois, outra pessoa compra o mesmo jeans da Amazon, mas não compra aquela jaqueta de couro. A Amazon recomendará que essa pessoa compre a jaqueta, pois ela mostrou um padrão de compra semelhante ao seu.

Assim, o sistema de recomendação da Amazon funciona com base nos padrões de compra das pessoas. E para entender essa semelhança, você pode usar o algoritmo KNN baseado nesse princípio. Agora você conhece o básico desse algoritmo, bem como sua aplicação no mundo real. Existem muitos outros exemplos de seu uso, mas por enquanto, vamos nos ater a este.

Aprenda cursos de ciência de dados das melhores universidades do mundo. Ganhe Programas PG Executivos, Programas de Certificado Avançado ou Programas de Mestrado para acelerar sua carreira.

Considerações Finais

O algoritmo KNN em R tem muitos usos. E depois de ler este artigo, temos certeza de que você está familiarizado com esse algoritmo. Se você quiser saber mais sobre esses algoritmos de aprendizado de máquina, dê uma olhada em nosso curso detalhado de aprendizado de máquina .

Você aprenderá muito sobre aprendizado de máquina e os vários algoritmos usados ​​nele, além de seus outros aspectos.

Para que serve a linguagem de programação R?

A linguagem de programação R foi criada para computações envolvendo estatísticas e visualização de dados. Hoje, o R é amplamente utilizado por estatísticos, cientistas de dados, analistas de dados e de negócios. O núcleo do R vem com muitas funcionalidades estatísticas incorporadas, portanto, bibliotecas de terceiros não são necessárias para grande parte da análise de dados principal que o R pode alcançar. Ao contrário de muitas outras linguagens de programação de computador, R não é uma linguagem de uso geral. Assim, é essencialmente empregado para alcançar funcionalidades específicas que faz excepcionalmente bem. No entanto, o R é usado extensivamente por empresas de todos os setores para obter informações úteis de grandes volumes de dados diários gerados pelos usuários.

Quais são as vantagens de programar com R?

A linguagem de programação R oferece várias vantagens para programadores iniciantes e experientes. Seus principais benefícios incluem os recursos e a facilidade que oferece para construir modelos estatísticos e computacionais. Em seguida, R é uma linguagem de programação de código aberto que suporta computação distribuída paralela. Qualquer pessoa pode usá-lo sem ter que adquirir licenças ou taxas de uso. Além disso, ele vem com uma enorme biblioteca para suportar várias funcionalidades, e sua estrutura independente de plataforma também aumenta a conveniência. O R também pode ser usado para funções eficazes de limpeza de dados, web scraping e data wrangling e é popularmente usado para desenvolver modelos de aprendizado de máquina.

Por que o KNN é chamado de Algoritmo do Aprendiz Preguiçoso?

O algoritmo K-Nearest Neighbors é um dos algoritmos mais simples usados ​​em aprendizado de máquina. No entanto, muitas vezes é chamado de aprendiz preguiçoso. A razão para isso é que quando você fornece todos os dados relacionados ao treinamento para esse algoritmo, ele não funciona para treinar a si mesmo. Em vez de aprender funções discriminativas, ele memorizou todo o conjunto de dados de treinamento. A cada adição de um novo ponto de dados, esse algoritmo procura seus vizinhos mais próximos em todo o conjunto de treinamento, o que invariavelmente aumenta o tempo necessário para fazer previsões. Isso geralmente o torna computacionalmente caro e muito demorado.