Implementação do Algoritmo de Regressão K-Vizinhos Mais Próximos

PythonBeginner
Pratique Agora

Introdução

Neste projeto, você aprenderá como implementar o algoritmo de regressão K-Vizinhos Mais Próximos (KNN) usando Python. KNN é um método de aprendizado de máquina amplamente utilizado, comumente empregado para problemas de classificação. No entanto, ele também pode ser aplicado a tarefas de regressão, onde o objetivo é prever um valor alvo contínuo.

🎯 Tarefas

Neste projeto, você aprenderá:

  • Como entender o algoritmo de regressão KNN e seu princípio de funcionamento
  • Como implementar o algoritmo de regressão KNN em Python
  • Como calcular as distâncias euclidianas (Euclidean distances) entre os dados de teste e os dados de treinamento
  • Como identificar os k vizinhos mais próximos e recuperar seus valores alvo
  • Como calcular a média dos valores alvo dos k vizinhos mais próximos para prever a saída para os dados de teste

🏆 Conquistas

Após concluir este projeto, você será capaz de:

  • Implementar o algoritmo de regressão KNN do zero usando Python
  • Usar a distância euclidiana (Euclidean distance) como uma medida de distância no algoritmo KNN
  • Aplicar o algoritmo de regressão KNN para prever valores alvo contínuos
  • Demonstrar habilidades práticas na implementação de algoritmos de aprendizado de máquina

Implementar o Algoritmo de Regressão KNN

Nesta etapa, você aprenderá como implementar o algoritmo de regressão K-Vizinhos Mais Próximos (KNN) usando Python. Siga as etapas abaixo para concluir esta etapa:

  1. Abra o arquivo knn_regression.py no seu editor de código preferido.

  2. Localize a função knn(train_data, train_labels, test_data, k). Esta função será a principal implementação do algoritmo de regressão KNN.

  3. O parâmetro train_data são os dados de características (feature data) de amostras conhecidas, train_labels são os valores alvo (target values) de amostras conhecidas, test_data são os dados de características de uma única amostra desconhecida, e k representa o número de vizinhos mais próximos usados em K-vizinhos mais próximos.

  4. Dentro da função knn(), comece calculando as distâncias euclidianas (Euclidean distances) entre test_data e todas as amostras de treinamento. Você pode usar as funções numpy.sqrt() e numpy.sum() para calcular as distâncias euclidianas.

distances = np.sqrt(np.sum((train_data - test_data) ** 2, axis=1))
  1. Em seguida, obtenha os índices dos k vizinhos mais próximos, ordenando as distâncias e pegando os primeiros k índices.
nearest_indices = np.argsort(distances)[:k]
  1. Recupere os rótulos (labels) dos k vizinhos mais próximos usando nearest_indices.
nearest_labels = train_labels[nearest_indices]
  1. Calcule a média dos rótulos dos k vizinhos mais próximos para obter o valor alvo previsto para a única amostra desconhecida test_data.
predicted_label = np.mean(nearest_labels)
  1. Arredonde o rótulo previsto para no máximo 2 casas decimais usando a função round().
predicted_label = round(predicted_label, 2)
  1. Finalmente, retorne o valor alvo previsto para a única amostra desconhecida test_data.
return predicted_label
  1. Salve o arquivo knn_regression.py.
✨ Verificar Solução e Praticar

Testar o Algoritmo de Regressão KNN

Nesta etapa, você testará a implementação do algoritmo de regressão KNN executando o exemplo fornecido.

Abra o arquivo knn_regression.py no seu editor de código.

Adicione os seguintes casos de teste no final do arquivo:

if __name__ == "__main__":
    train_data = np.array(
        [[1, 1], [2, 2], [3, 3], [4, 4], [5, 5], [6, 6], [7, 7], [8, 8], [9, 9], [10, 10]]
    )
    train_labels = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
    test_data = np.array([[1.2, 1.3]])

    result = knn(train_data, train_labels, test_data, k=3)
    print(result)

Execute o seguinte comando para executar o exemplo:

python3 knn_regression.py

A saída deve ser o valor alvo previsto para a única amostra desconhecida, arredondado para no máximo 2 casas decimais.

2.0

Parabéns! Você implementou com sucesso o algoritmo de regressão KNN e o testou com o exemplo fornecido.

✨ Verificar Solução e Praticar

Resumo

Parabéns! Você concluiu este projeto. Você pode praticar mais laboratórios no LabEx para aprimorar suas habilidades.