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
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:
Abra el archivo
knn_regression.pyen su editor de código preferido.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.El parámetro
train_dataes los datos de características de las muestras conocidas,train_labelsson los valores objetivos de las muestras conocidas,test_dataes los datos de características de una sola muestra desconocida ykrepresenta el número de vecinos más cercanos utilizado en K-nearest neighbors.Dentro de la función
knn(), empiece calculando las distancias euclidianas entretest_datay todas las muestras de entrenamiento. Puede utilizar las funcionesnumpy.sqrt()ynumpy.sum()para calcular las distancias euclidianas.
distances = np.sqrt(np.sum((train_data - test_data) ** 2, axis=1))
- A continuación, obtenga los índices de los
kvecinos más cercanos ordenando las distancias y tomando los primeroskíndices.
nearest_indices = np.argsort(distances)[:k]
- Recupere las etiquetas de los
kvecinos más cercanos utilizando losnearest_indices.
nearest_labels = train_labels[nearest_indices]
- Calcule la media de las etiquetas de los
kvecinos más cercanos para obtener el valor objetivo predicho para la sola muestra desconocidatest_data.
predicted_label = np.mean(nearest_labels)
- Redondee la etiqueta predicha a como máximo 2 decimales utilizando la función
round().
predicted_label = round(predicted_label, 2)
- Finalmente, devuelva el valor objetivo predicho para la sola muestra desconocida
test_data.
return predicted_label
- Guarde el archivo
knn_regression.py.
Probar 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.
Resumen
¡Felicitaciones! Has completado este proyecto. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.



