Parte 1 de uma série sobre algoritmos introdutórios de aprendizado de máquina
Se você está familiarizado com aprendizado de máquina e os algoritmos básicos que são usado no campo, então você provavelmente já ouviu falar do algoritmo de vizinhos k-mais próximos, ou KNN. Esse algoritmo é uma das técnicas mais simples usadas no aprendizado de máquina. É um método preferido por muitos na indústria devido à sua facilidade de uso e baixo tempo de cálculo.
O que é KNN? KNN é um modelo que classifica os pontos de dados com base nos pontos que são mais semelhantes a ele. Ele usa dados de teste para fazer um “palpite” sobre como um ponto não classificado deve ser classificado.
Prós:
- Fácil de usar.
- Tempo de cálculo rápido.
- Não faz suposições sobre os dados.
Contras:
- A precisão depende da qualidade do dados.
- Deve encontrar um valor k ideal (número de vizinhos mais próximos).
- Fraca na classificação de pontos de dados em um limite onde eles podem ser classificados de uma forma ou de outra.
KNN é um algoritmo considerado não paramétrico e um exemplo de preguiçoso aprendizagem. O que esses dois termos significam exatamente?
- Não paramétrico significa que não faz suposições. O modelo é composto inteiramente de dados fornecidos a ele, em vez de assumir que sua estrutura é normal.
- Aprendizado lento significa que o algoritmo não faz diferença neralizações. Isso significa que há pouco treinamento envolvido ao usar esse método. Por causa disso, todos os dados de treinamento também são usados em testes ao usar KNN.
Onde usar KNN
KNN é freqüentemente usado em sistemas de recomendação simples, imagem tecnologia de reconhecimento e modelos de tomada de decisão. São os algoritmos que empresas como Netflix ou Amazon usam para recomendar filmes diferentes para assistir ou livros para comprar. A Netflix até lançou a competição do Prêmio Netflix, concedendo US $ 1 milhão à equipe que criou o algoritmo de recomendação mais preciso!
Você deve estar se perguntando: “Mas como essas empresas fazem isso?” Bem, essas empresas aplicarão KNN em um conjunto de dados coletados sobre os filmes que você assistiu ou os livros que comprou em seus sites. Essas empresas irão inserir seus dados de cliente disponíveis e compará-los com outros clientes que assistiram filmes semelhantes ou comprou livros semelhantes. Este ponto de dados será então classificado como um determinado perfil com base no passado usando KNN. Os filmes e livros recomendados dependerão de como o algoritmo classifica esse ponto de dados.
A imagem acima mostra como KNN funciona ao tentar classificar um ponto de dados com base em um determinado conjunto de dados. É comparado com seus pontos mais próximos e classificado com base em quais pontos é mais próximo e mais semelhante. Aqui você pode ver que o ponto Xj será classificado como W1 (vermelho) ou W3 (verde) com base na distância de cada grupo de pontos.
Ma Thematics Behind KNN
Assim como quase tudo o mais, KNN funciona por causa das teorias matemáticas profundamente enraizadas que usa. Ao implementar KNN, a primeira etapa é transformar os pontos de dados em vetores de recursos ou seu valor matemático. O algoritmo então funciona encontrando a distância entre os valores matemáticos desses pontos. A maneira mais comum de encontrar essa distância é a distância euclidiana, conforme mostrado abaixo.
KNN executa esta fórmula para calcular a distância entre cada ponto de dados e os dados de teste. Em seguida, ele encontra a probabilidade de esses pontos serem semelhantes aos dados de teste e os classifica com base nos pontos que compartilham as probabilidades mais altas.
Para visualizar essa fórmula, seria mais ou menos assim:
Conclusão
Agora você conhece os fundamentos de um dos algoritmos de aprendizado de máquina mais básicos .É um ótimo lugar para começar ao aprender a construir modelos com base em diferentes conjuntos de dados. Se você tiver um conjunto de dados com muitos pontos diferentes e informações precisas, este é um ótimo lugar para começar a explorar o aprendizado de máquina com KNN.
Ao começar a usar este algoritmo, tenha em mente estes três pontos:
- Primeiro, encontre um conjunto de dados que seja fácil de trabalhar, de preferência um com muitos pontos diferentes e dados rotulados.
- Em segundo lugar, descubra qual idioma será mais fácil de usar para resolver o problema. Estou mais familiarizado com o uso de KNN em R, mas Python também é uma linguagem popular entre os profissionais de aprendizado de máquina.
- Terceiro, faça sua pesquisa. É importante aprender as práticas corretas para usar este algoritmo para que você encontre os resultados mais precisos de seu conjunto de dados.
Vários estudos foram conduzidos sobre como esse algoritmo pode ser melhorado. Esses estudos visam fazer com que você possa pesar as categorias de forma diferente, a fim de fazer uma classificação mais precisa. A ponderação dessas categorias varia dependendo de como a distância é calculada.
Em conclusão, este é um algoritmo fundamental de aprendizado de máquina que é confiável por muitos motivos, como facilidade de uso e tempo de cálculo rápido. É um bom algoritmo para começar a explorar o mundo do aprendizado de máquina, mas ainda pode ser aprimorado e modificado.