Discussão do artigo "Ciência de dados e Aprendizado de Máquina (parte 09): O algoritmo K-vizinhos mais próximos (KNN)"

 

Novo artigo Ciência de dados e Aprendizado de Máquina (parte 09): O algoritmo K-vizinhos mais próximos (KNN) foi publicado:

Este é um algoritmo preguiçoso que não aprende com o conjunto de dados de treinamento, ele armazena o conjunto de dados e age imediatamente quando ele recebe uma nova amostra. Por mais simples que ele seja, ele é usado em uma variedade de aplicações do mundo real.

O algoritmo K-vizinhos mais próximos é um classificador de aprendizado supervisionado não paramétrico que usa a proximidade para fazer classificações ou previsões sobre o agrupamento de um ponto de dados individual. Embora esse algoritmo seja usado principalmente para problemas de classificação, ele também pode ser usado para resolver um problema de regressão. Ele é frequentemente usado como um algoritmo de classificação devido à suposição de que pontos semelhantes no conjunto de dados podem ser encontrados próximos uns dos outros; O algoritmo de k-vizinhos mais próximos é um dos algoritmos mais simples em aprendizado de máquina supervisionado. Construiremos nosso algoritmo neste artigo como um classificador.


algoritmo kNN

Autor: Omega J Msigwa

 
Congratulations for the article! I'm looking back on updates.
 
Saudações!

Desculpe-me se estou errado em minha suposição, mas acho que
void CKNNNearestNeighbors::VectorRemoveIndex(vector &v, ulong index)
 {
   vector new_v(v.Size()-1);
   
   for (ulong i=0, count = 0; i<v.Size(); i++)
      if (i == index)
        {
          new_v[count] = new_v[i];
          count++;
        }
 }
é inútil. O código foi retirado do arquivo KNN_neareast_neighbors.mqh.
Acho que ele deveria remover o elemento do vetor com índice específico, mas não remove nada, porque nada acontece com o vetor original e a função não retorna nada.

Estou errado?