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 kkk
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 kkk 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 kkk
Elegir un valor de kkk 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 kkk
Un kkk pequeño puede hacer que el modelo sea muy sensible al ruido.
Un kkk 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







