kNN vs ANN
Duas categorias principais de algoritmos de busca vetorial são k-Nearest Neighbors (kNN) e Approximate Nearest Neighbors (ANN, não confundir com Artificial Neural Network). O kNN é preciso, mas computacionalmente intensivo, tornando-o menos adequado para grandes conjuntos de dados. A ANN, por outro lado, oferece um equilíbrio entre precisão e eficiência, tornando-a mais adequada para aplicações em larga escala.
Como funciona o kNN
- Vetorização: Cada ponto de dados no conjunto de dados é representado como um vetor em um espaço multidimensional.
- Cálculo de distância: Para classificar um novo ponto de dados (ponto de consulta), o algoritmo calcula a distância entre o ponto de consulta e todos os outros pontos no conjunto de dados usando uma função de distância.
- Encontrar vizinhos: O algoritmo identifica os k pontos de dados mais próximos (vizinhos) do ponto de consulta com base nas distâncias calculadas. O valor de k (o número de vizinhos) é crucial. Um k pequeno pode ser sensível ao ruído, enquanto um k grande pode suavizar os detalhes.
- Fazendo previsões:
- Classificação: Para tarefas de classificação, o kNN atribui o rótulo de classe ao ponto de consulta mais comum entre os vizinhos k. Essencialmente, realiza uma "votação por maioria".
- Regressão: Para tarefas de regressão, kNN prevê o valor para o ponto de consulta como a média (ou às vezes média ponderada) dos valores dos vizinhos k.
Como funciona a ANN
- Vetorização: Cada ponto de dados no conjunto de dados é representado como um vetor em um espaço multidimensional.
- Indexação e estruturas de dados: Os algoritmos ANN usam estruturas de dados avançadas (por exemplo, árvores KD, hashing sensível à localidade ou métodos baseados em gráficos) para indexar os pontos de dados, permitindo pesquisas mais rápidas.
- Cálculo de distância: Em vez de calcular a distância exata para cada ponto, os algoritmos ANN usam heurística para identificar rapidamente regiões do espaço que provavelmente conterão os vizinhos mais próximos.
- Localizando vizinhos: o algoritmo identifica um conjunto de pontos de dados que provavelmente estarão próximos ao ponto de consulta. Não é garantido que esses vizinhos sejam os pontos exatos mais próximos, mas estão próximos o suficiente para fins práticos.
- Fazendo previsões:
- Classificação: Para tarefas de classificação, a ANN atribui o rótulo de classe ao ponto de consulta mais comum entre os vizinhos identificados, semelhante ao kNN.
- Regressão: Para tarefas de regressão, a ANN prevê o valor para o ponto de consulta como a média (ou média ponderada) dos valores dos vizinhos identificados.