O Algorítmo k-Nearest Neighbors (kNN) em Machine Learning

knn

Compartilhe esse post

Neste post você descobrirá sobre o algoritmo k-Nearest Neighbors (KNN), ou método dos vizinhos mais próximos, para classificação e regressão. Depois de ler este post você saberá:

  • A representação do modelo usada pelo KNN.
  • Como um modelo é aprendido usando KNN (dica, não é).
  • Como fazer previsões usando o KNN
  • Os muitos nomes para o KNN, incluindo como diferentes campos se referem a ele.
  • Como preparar seus dados para aproveitar ao máximo o KNN.
  • Onde procurar para aprender mais sobre o algoritmo KNN.

Este post foi escrito para desenvolvedores e não assume nenhum histórico em estatística ou matemática. O foco está em como o algoritmo funciona e como usá-lo para problemas de modelagem preditiva. Se você tiver alguma dúvida, deixe um comentário e eu farei o meu melhor para responder.

Vamos começar.

Representação do Modelo KNN

A representação do modelo para o KNN é o conjunto de dados completo do treinamento.

É tão simples quanto isso.

O KNN não possui outro modelo além de armazenar o conjunto de dados inteiro, portanto, não é necessário aprender.

Implementações eficientes podem armazenar os dados usando estruturas de dados complexas, como árvores kd, para fazer a pesquisa e a correspondência de novos padrões durante a previsão eficiente.

Como todo o conjunto de dados de treinamento é armazenado, convém pensar cuidadosamente sobre a consistência de seus dados de treinamento. Pode ser uma boa ideia organizá-lo, atualizá-lo com frequência à medida que novos dados forem disponibilizados e remover dados errôneos e discrepantes.

Fazendo previsões com o KNN

A KNN faz previsões usando o conjunto de dados de treinamento diretamente.

As previsões são feitas para uma nova instância (x) pesquisando todo o conjunto de treinamento para as K instâncias mais semelhantes (os vizinhos) e resumindo a variável de saída para essas instâncias de K. Para a regressão, essa pode ser a variável de saída média; na classificação, esse pode ser o valor de classe do modo (ou mais comum).

Para determinar quais das instâncias do K no conjunto de dados de treinamento são mais semelhantes a uma nova entrada, uma medida de distância é usada. Para variáveis ​​de entrada de valor real, a medida de distância mais popular é a distância euclidiana .

A distância euclidiana é calculada como a raiz quadrada da soma das diferenças quadráticas entre um novo ponto (x) e um ponto existente (xi) em todos os atributos de entrada j.

Distância Euclidiana (x, xi) = sqrt (soma ((xj – xij) ^ 2))

Outras medidas populares de distância incluem:

  • Distância de Hamming: Calcula a distância entre os vetores binários ( mais ).
  • Manhattan Distance: Calcula a distância entre vetores reais usando a soma de sua diferença absoluta. Também chamado de City Block Distance ( mais ).
  • Distância Minkowski: Generalização da distância Euclidiana e Manhattan ( mais ).

Existem muitas outras medidas de distância que podem ser usadas, como a distância de Tanimoto, Jaccard , Mahalanobis e cosseno. Você pode escolher a melhor métrica de distância com base nas propriedades de seus dados. Se não tiver certeza, você pode experimentar diferentes métricas de distância e valores diferentes de K juntos e ver qual mistura resulta nos modelos mais precisos.

Euclidean é uma boa medida de distância para usar se as variáveis ​​de entrada forem semelhantes em tipo (por exemplo, todas as larguras e alturas medidas). A distância de Manhattan é uma boa medida para usar se as variáveis ​​de entrada não forem semelhantes em tipo (como idade, sexo, altura, etc.).

O valor para K pode ser encontrado por ajuste de algoritmo. É uma boa ideia tentar vários valores diferentes para K (por exemplo, valores de 1 a 21) e ver o que funciona melhor para o seu problema.

A complexidade computacional do KNN aumenta com o tamanho do conjunto de dados de treinamento. Para conjuntos de treinamento muito grandes, o KNN pode ser estocástico tomando uma amostra do conjunto de dados de treinamento a partir do qual calcular as instâncias mais semelhantes.

Diferentes nomes para kNN

KNN existe há muito tempo e tem sido muito bem estudado. Como tal, disciplinas diferentes têm nomes diferentes para isso, por exemplo:

  • Aprendizado Baseado em Instância: As instâncias de treinamento brutas são usadas para fazer previsões. Como tal, o KNN é geralmente chamado de aprendizado baseado em instância ou de aprendizado baseado em casos (onde cada instância de treinamento é um caso do domínio do problema).
  • Aprendizado Preguiçoso: Nenhum aprendizado do modelo é necessário e todo o trabalho acontece no momento em que uma previsão é solicitada. Como tal, o KNN é frequentemente referido como um algoritmo de aprendizado lento .
  • Não paramétrica: a KNN não faz suposições sobre a forma funcional do problema a ser resolvido. Como tal, o KNN é referido como um algoritmo de aprendizagem de máquina não paramétrico .

O KNN pode ser usado para problemas de regressão e classificação.

KNN para regressão

Quando o KNN é usado para problemas de regressão, a previsão é baseada na média ou na mediana das instâncias mais semelhantes.

KNN para classificação

Quando o KNN é usado para classificação, a saída pode ser calculada como a classe com a maior frequência das instâncias mais semelhantes do K. Cada instância, em essência, vota em sua classe e a classe com o maior número de votos é considerada a predição.

As probabilidades de classe podem ser calculadas como a frequência normalizada de amostras que pertencem a cada classe no conjunto de K instâncias mais semelhantes para uma nova instância de dados. Por exemplo, em um problema de classificação binária (a classe é 0 ou 1):

p (classe = 0) = contagem (classe = 0) / (contagem (classe = 0) + contagem (classe = 1))

Se você está usando K e você tem um número par de classes (por exemplo, 2), é uma boa idéia escolher um valor K com um número ímpar para evitar empate. E o inverso, use um número par para K quando você tiver um número ímpar de classes.

Os empates podem ser quebrados consistentemente expandindo K por 1 e observando a classe da próxima instância mais semelhante no conjunto de dados de treinamento.

Maldição da Dimensionalidade

O KNN funciona bem com um pequeno número de variáveis ​​de entrada (p), mas luta quando o número de entradas é muito grande.

Cada variável de entrada pode ser considerada uma dimensão de um espaço de entrada p-dimensional. Por exemplo, se você tivesse duas variáveis ​​de entrada x1 e x2, o espaço de entrada seria bidimensional.

À medida que o número de dimensões aumenta, o volume do espaço de entrada aumenta a uma taxa exponencial.

Em altas dimensões, pontos que podem ser semelhantes podem ter distâncias muito grandes. Todos os pontos estarão distantes um do outro e nossa intuição para distâncias em espaços simples de 2 e 3 dimensões se rompe. Isso pode parecer não intuitivo no começo, mas esse problema geral é chamado de “ Maldição da Dimensionalidade ”.

Melhor preparação dos dados para KNN

  • Rescale Data: O KNN funciona muito melhor se todos os dados tiverem a mesma escala. Normalizar seus dados para o intervalo [0, 1] é uma boa ideia. Também pode ser uma boa ideia padronizar seus dados se tiver uma distribuição gaussiana.
  • Endereço de dados ausentesDados ausentes significam que a distância entre as amostras não pode ser calculada. Essas amostras podem ser excluídas ou os valores ausentes podem ser imputados.
  • Dimensionalidade inferior: o KNN é adequado para dados dimensionais inferiores. Você pode experimentá-lo em dados de alta dimensão (centenas ou milhares de variáveis ​​de entrada), mas esteja ciente de que ele pode não funcionar tão bem quanto outras técnicas. O KNN pode se beneficiar da seleção de recursos que reduz a dimensionalidade do espaço do recurso de entrada.

Cursos:

Quer aprender mais sobre? Conheça nossos cursos!

Resumo

Neste post você descobriu o algoritmo de aprendizado de máquina KNN. Você aprendeu isso:

  • O KNN armazena todo o conjunto de dados de treinamento que ele usa como sua representação.
  • KNN não aprende nenhum modelo.
  • A KNN faz predições just-in-time calculando a similaridade entre uma amostra de entrada e cada instância de treinamento.
  • Existem muitas medidas de distância para escolher para corresponder à estrutura dos dados de entrada.
  • É uma boa ideia redimensionar seus dados, como usar a normalização, ao usar o KNN.

Se você tiver alguma dúvida sobre este post ou o algoritmo KNN, pergunte nos comentários e eu farei o meu melhor para responder.

 

 

Inscreva-se

Seja atualizado e aprenda com os melhores

Mais para explorar

100 perguntas htm eng

Master the data science interview 100 MOST COMMON QUESTIONS AND ANSWERS ASKED IN INTERVIEWS – A COMPLETE GUIDE TO BOOST YOUR CAREER Yes, I want! BECOME A DATA SCIENTIST Data Science is revolutionizing the world of business and technology. With our eBook “Master Data Science: A Complete Guide to Boost Your Career,” you will have access to comprehensive content that will help you enter and thrive in this promising field.   WHAT WILL YOU LEARN? Fundamentals of Statistics and Probability Databases and SQL Python for Data Analysis Machine Learning and its Algorithms Natural Language Processing and its Applications Data Visualization and Design Big Data and Related Tools Feature Engineering and Model Selection Purchase the eBook now and receive Over 200 pages of high-quality content Explanations and examples Tips to improve your skills and increase your chances in interviews INVEST IN YOUR FUTURE Don’t miss this opportunity to deepen your knowledge and stand out in the job market. Purchase the eBook “Master Data Science: A Complete Guide to Boost Your Career” right now and start your journey towards success in the field of Data Science! TAKE ADVANTAGE OF THE PROMOTION ONLY $ 9,99 Yes, i want

100 perguntas htm

domine a entrevista de ciencia de dados 100 perguntas e respostas mais frequentes feitas em entrevistas – um guia completo para impulsionar sua carreira Eu quero seja um cientista de dados   A Ciência de Dados está revolucionando o mundo dos negócios e da tecnologia. Com nosso eBook “Domine a Ciência de Dados: Um Guia Completo para Impulsionar sua Carreira”, você terá acesso a um conteúdo abrangente que o ajudará a ingressar e prosperar nesta área promissora. o que você vai aprender? Fundamentos da Estatística e Probabilidade Bancos de Dados e SQL Python para Análise de Dados Aprendizado de Máquina e seus Algoritmos Processamento de Linguagem Natural e suas Aplicações Visualização de Dados e Design Big Data e Ferramentas Relacionadas Engenharia de Recursos e Seleção de Modelos Adquira o eBook agora e receba   Mias de 200 páginas de conteúdo de alta qualidade   Explicações e exemplos   Dicas para aprimorar suas habilidades e aumentar suas chances em entrevistas invista no seu futuro   Não perca esta oportunidade de aprofundar seus conhecimentos e se destacar no mercado de trabalho. Adquira o eBook “Domine a Ciência de Dados: Um Guia Completo para Impulsionar sua Carreira” agora mesmo e comece sua jornada rumo ao sucesso na área de Ciência de Dados! aproveite a promoção Condições parceladas APENAS R$ 27,90 EU QUERO