Implementación del algoritmo de regresión K-Nearest Neighbors

PythonPythonBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este proyecto, aprenderás a implementar el algoritmo de regresión K-Nearest Neighbors (KNN) utilizando Python. KNN es un método de aprendizaje automático ampliamente utilizado, comúnmente utilizado para problemas de clasificación. Sin embargo, también se puede aplicar a tareas de regresión, donde el objetivo es predecir un valor objetivo continuo.

🎯 Tareas

En este proyecto, aprenderás:

  • Cómo entender el algoritmo de regresión KNN y su principio de funcionamiento
  • Cómo implementar el algoritmo de regresión KNN en Python
  • Cómo calcular las distancias euclidianas entre los datos de prueba y los datos de entrenamiento
  • Cómo identificar los k vecinos más cercanos y recuperar sus valores objetivos
  • Cómo calcular el promedio de los valores objetivos de los k vecinos más cercanos para predecir la salida para los datos de prueba

🏆 Logros

Después de completar este proyecto, serás capaz de:

  • Implementar el algoritmo de regresión KNN desde cero utilizando Python
  • Utilizar la distancia euclidiana como medida de distancia en el algoritmo KNN
  • Aplicar el algoritmo de regresión KNN para predecir valores objetivos continuos
  • Demostrar habilidades prácticas en la implementación de algoritmos de aprendizaje automático

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/DataStructuresGroup(["Data Structures"]) python(("Python")) -.-> python/FunctionsGroup(["Functions"]) python(("Python")) -.-> python/ModulesandPackagesGroup(["Modules and Packages"]) python(("Python")) -.-> python/DataScienceandMachineLearningGroup(["Data Science and Machine Learning"]) python/DataStructuresGroup -.-> python/lists("Lists") python/FunctionsGroup -.-> python/function_definition("Function Definition") python/ModulesandPackagesGroup -.-> python/using_packages("Using Packages") python/DataScienceandMachineLearningGroup -.-> python/numerical_computing("Numerical Computing") python/DataScienceandMachineLearningGroup -.-> python/machine_learning("Machine Learning") subgraph Lab Skills python/lists -.-> lab-300234{{"Implementación del algoritmo de regresión K-Nearest Neighbors"}} python/function_definition -.-> lab-300234{{"Implementación del algoritmo de regresión K-Nearest Neighbors"}} python/using_packages -.-> lab-300234{{"Implementación del algoritmo de regresión K-Nearest Neighbors"}} python/numerical_computing -.-> lab-300234{{"Implementación del algoritmo de regresión K-Nearest Neighbors"}} python/machine_learning -.-> lab-300234{{"Implementación del algoritmo de regresión K-Nearest Neighbors"}} end

Implementar el algoritmo de regresión KNN

En este paso, aprenderás a implementar el algoritmo de regresión K-Nearest Neighbors (KNN) utilizando Python. Siga los pasos siguientes para completar este paso:

  1. Abra el archivo knn_regression.py en su editor de código preferido.

  2. Localice la función knn(train_data, train_labels, test_data, k). Esta función será la principal implementación del algoritmo de regresión KNN.

  3. El parámetro train_data es los datos de características de las muestras conocidas, train_labels son los valores objetivos de las muestras conocidas, test_data es los datos de características de una sola muestra desconocida y k representa el número de vecinos más cercanos utilizado en K-nearest neighbors.

  4. Dentro de la función knn(), empiece calculando las distancias euclidianas entre test_data y todas las muestras de entrenamiento. Puede utilizar las funciones numpy.sqrt() y numpy.sum() para calcular las distancias euclidianas.

distances = np.sqrt(np.sum((train_data - test_data) ** 2, axis=1))
  1. A continuación, obtenga los índices de los k vecinos más cercanos ordenando las distancias y tomando los primeros k índices.
nearest_indices = np.argsort(distances)[:k]
  1. Recupere las etiquetas de los k vecinos más cercanos utilizando los nearest_indices.
nearest_labels = train_labels[nearest_indices]
  1. Calcule la media de las etiquetas de los k vecinos más cercanos para obtener el valor objetivo predicho para la sola muestra desconocida test_data.
predicted_label = np.mean(nearest_labels)
  1. Redondee la etiqueta predicha a como máximo 2 decimales utilizando la función round().
predicted_label = round(predicted_label, 2)
  1. Finalmente, devuelva el valor objetivo predicho para la sola muestra desconocida test_data.
return predicted_label
  1. Guarde el archivo knn_regression.py.
✨ Revisar Solución y Practicar

Prueba el algoritmo de regresión KNN

En este paso, probarás la implementación del algoritmo de regresión KNN ejecutando el ejemplo proporcionado.

Abre el archivo knn_regression.py en tu editor de código.

Agrega los siguientes casos de prueba al final del archivo:

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)

Ejecuta el siguiente comando para ejecutar el ejemplo:

python3 knn_regression.py

La salida debe ser el valor objetivo predicho para la sola muestra desconocida, redondeado a como máximo 2 decimales.

2.0

¡Felicitaciones! Has implementado con éxito el algoritmo de regresión KNN y lo has probado con el ejemplo proporcionado.

✨ Revisar Solución y Practicar

Resumen

¡Felicitaciones! Has completado este proyecto. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.