K-Nearest Neighbors (KNN)

 

K-Nearest Neighbors (KNN) – Algoritmo de Vecinos Más Cercanos

 

El K-Nearest Neighbors (KNN) es un algoritmo supervisado de aprendizaje automático.

 

Utilizado para resolver problemas de clasificación y regresión.

 

Es conocido por su simplicidad y efectividad.

 

En aplicaciones donde las relaciones entre los datos.

 

Se basan en medidas de similitud o proximidad.

 

¿Cómo funciona el KNN?

 

El KNN opera de la siguiente manera.

 

Definición del parámetro kk

 

Se selecciona un número entero k.

 

Representa la cantidad de vecinos más cercanos.

 

Se considerarán para tomar una decisión.

 

Medición de la distancia

 

Se calcula la distancia entre el punto que se desea clasificar.

 

Predecir dato objetivo.

 

Todos los puntos del conjunto de entrenamiento.

 

Las métricas más comunes incluyen;

 

Distancia Euclidiana

 

Ideal para datos continuos.

 

Distancia Manhattan

 

Útil para datos en rejillas o trayectorias.

 

Distancia de Minkowski

 

Una generalización de las anteriores.

 

Distancia Coseno

 

Común en datos textuales o vectores de alta dimensionalidad.

 

Identificación de los vecinos más cercanos

 

Los k puntos más cercanos al dato objetivo.

 

Se seleccionan como los vecinos más cercanos.

 

Toma de decisión

 

Para clasificación

 

Se asigna la clase más frecuente.

 

Entre los k vecinos votación por mayoría.

 

Para regresión

 

Se calcula el promedio o media ponderada.

 

De los valores asociados a los kk vecinos.

 

Ventajas del KNN

 

Simplicidad

 

Es fácil de entender e implementar.

 

Versatilidad

 

Funciona bien tanto para tareas de clasificación como de regresión.

 

Efectividad con datos no lineales

 

Puede manejar conjuntos de datos.

 

Donde no se puede trazar un límite lineal entre las clases.

 

Sin modelo explícito

 

Es un algoritmo perezoso porque no realiza un proceso de entrenamiento en sí.

 

Significa que almacena todos los datos de entrenamiento.

 

Usa directamente en la fase de predicción.

 

Desventajas del KNN

 

Sensibilidad al ruido

 

Es vulnerable a valores atípicos y ruido en los datos.

 

Cuando k es pequeño.

 

Coste computacional

 

Requiere calcular la distancia de un punto objetivo.

 

Con todos los datos de entrenamiento.

 

Puede ser ineficiente para conjuntos de datos grandes.

 

Dependencia del parámetro kk

 

Elegir un valor de kk inadecuado puede afectar.

 

Significativamente el rendimiento.

 

Impacto de la escala de los datos

 

Si los datos tienen diferentes escalas.

 

Las características con valores más grandes.

 

Dominarán las medidas de distancia.

 

Requiere normalización o estandarización.

 

Aplicaciones del KNN

 

Clasificación de textos

 

En sistemas de clasificación de documentos.

 

La detección de spam.

 

Reconocimiento de patrones

 

Reconocimiento facial, clasificación de imágenes.

 

Análisis biométrico.

 

Análisis de datos médicos

 

Diagnóstico de enfermedades basándose en síntomas.

 

Características de pacientes.

 

Sistemas de recomendación

 

En motores de recomendación.

 

Sugerir productos similares basados en usuarios.

 

Con intereses comunes.

 

Ejemplo de Código: Clasificación con KNN

 

Ejemplo básico usando scikit-learn en Python.

 

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import accuracy_score

# Cargar datos de ejemplo (Iris dataset)
data = load_iris()
X, y = data.data, data.target

# Dividir los datos en conjuntos de entrenamiento y prueba
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

# Normalizar los datos
scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)

# Crear el modelo KNN con k=3
knn = KNeighborsClassifier(n_neighbors=3)

# Entrenar el modelo
knn.fit(X_train, y_train)

# Hacer predicciones
y_pred = knn.predict(X_test)

# Evaluar el modelo
print(«Precisión del modelo:», accuracy_score(y_test, y_pred))

 

Consideraciones Clave

 

Elección de kk

 

Un kk pequeño puede hacer que el modelo sea muy sensible al ruido.

 

Un kk grande puede diluir la influencia.

 

De los vecinos más cercanos.

 

Normalización de los datos

 

Es crucial cuando las características tienen rangos de valores diferentes.

 

Estrategias avanzadas

 

Ponderación por distancia

 

Dar más peso a los vecinos más cercanos.

 

Búsqueda de vecinos eficiente

 

Usar estructuras como KD-Trees o Ball Trees

 

Mejorar la velocidad en grandes conjuntos de datos.

 

Aunque el KNN es simple y efectivo.

 

En aplicaciones se combina con otras técnicas.

 

Para superar sus limitaciones.

 

Incorporación de modelos híbridos que usan KNN.

 

Como un paso preliminar para reducir la dimensionalidad.

 

Adaptaciones en big data para manejar grandes volúmenes de datos.

 

Utilizando técnicas de indexación avanzada.

 

El KNN sigue siendo una herramienta básica y útil en muchas áreas.

 

Gracias a su naturaleza intuitiva y capacidad de adaptación.

 

Te puede interesar;

Curso de ChatGPT: Todo lo que debes saber

 

Manu Duque
Resumen de privacidad

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.

Nunca almacenamos información personal.

Puedes revisar nuestra política en la página de Política de Privacidad, Condiciones de Uso y Cookies.