Oi Nathalia, tudo bem?
É importtante destacar que a linguagem C não possui bibliotecas prontas para aprendizado de máquina como o Python, então você precisará implementar a lógica do KNN do zero. Python é amplamente utilizado em machine learning devido à vasta disponibilidade de bibliotecas otimizada. Então, a tarefa vai ser desafiadora, mas ela é possível.
Primeiro, para carregar os dados do arquivo CSV, você pode utilizar funções da biblioteca padrão de C, como fopen
e fgets
, para ler e processar cada linha. Após carregar os dados, como você mencionou que precisa usar 80% para treinamento e 20% para validação, será necessário dividir o conjunto de dados. Para isso, uma abordagem comum é embaralhar os dados antes de separá-los em dois arrays distintos.
Depois de ler e separar os dados, você poderá armazenar as amostras e suas classificações em uma struct
. Em seguida, construir o modelo KNN e as métricas para avaliação. Caso queira um exemplo, encontrei um artigo K-NN Classification in C++
que implementa KNN em C++, neste caso, você terá que adaptar o código para C, fazendo algumas modificações.
Abaixo deixo outros links que poderá te ajudar nessa tarefa:
Espero ter ajudado.
Qualquer dúvida, não hesite em compartilhar no fórum.
Abraços!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado