Atlasingeniería

Aprendizaje automáticoAprendizaje supervisadoTema 5

Vecinos más cercanos y Naive Bayes

Dos modelos casi sin entrenamiento: uno guarda todos los datos y compara, el otro cuenta frecuencias y supone independencia. Los dos siguen siendo útiles y por motivos opuestos.

Para este tema conviene tener claro:Teorema de Bayes y por qué la intuición falla

Dos algoritmos que parecen demasiado simples para funcionar. Uno no entrena nada: guarda los datos y, ante un caso nuevo, mira a los parecidos. El otro supone algo que casi nunca es cierto y aun así clasifica texto bastante bien. Conviene entender por qué cada uno sobrevive.

Vecinos cercanos: sin entrenamiento

El clasificador de kk vecinos más cercanos no tiene fase de entrenamiento: almacena los ejemplos. Para predecir, busca los kk más parecidos según una distancia y vota entre sus etiquetas.

Es un método no paramétrico: no supone ninguna forma para la frontera de decisión, y puede representar cualquiera si hay datos suficientes. Todo el costo está en la predicción, que es lo opuesto a la mayoría de los modelos.

Antes de seguir, predecí

Vecinos cercanos con mil dimensiones. ¿Qué pasa con las distancias?

Las tres decisiones que hay que tomar

Hay tres decisiones. El valor de kk: chico da fronteras irregulares que siguen el ruido, grande las suaviza hasta perder detalle; es el balance sesgo-varianza en su forma más visible.

Una grilla con dos clases, A y B, y un caso nuevo marcado con «?». Alrededor hay un bolsón de B.

1 / 5
El mismo punto, los mismos datos, dos respuestas distintas. k no es un detalle de afinado: es la decisión de cuánto ruido local dejar entrar.

La distancia, que exige escalar los atributos —sin eso, la variable de mayor rango domina el cálculo—. Y la eficiencia: comparar contra todos los ejemplos es lineal en el tamaño del conjunto, y para acelerarlo hacen falta estructuras espaciales o búsqueda aproximada.

La maldición de la dimensión

Su límite tiene nombre: la maldición de la dimensión. Al crecer la cantidad de atributos, el volumen del espacio crece exponencialmente y los datos quedan dispersos.

La consecuencia es que las distancias entre puntos se vuelven todas parecidas: el vecino más cercano deja de estar significativamente más cerca que el más lejano, y “parecido” pierde sentido. Con muchas dimensiones, este método deja de funcionar, y por eso conviene reducir la dimensión antes.

Naive Bayes viene del otro lado

Naive Bayes viene del otro lado: aplica el teorema de Bayes para calcular la probabilidad de cada clase dados los atributos, combinando qué tan frecuente es la clase con qué tan probables son esos atributos dentro de ella.

El problema es estimar la probabilidad conjunta de todos los atributos juntos, que necesitaría una cantidad imposible de datos. El supuesto ingenuo lo resuelve: asumir que los atributos son independientes entre sí dada la clase, y multiplicar sus probabilidades individuales.

Funciona pese a que el supuesto es falso

Ese supuesto es falso casi siempre —en un texto, las palabras claramente no son independientes— y sin embargo el clasificador funciona. La razón es que para decidir no hace falta que las probabilidades sean correctas, sólo que la clase correcta quede primera en el orden.

Entrena contando frecuencias, así que es rapidísimo y necesita pocos datos. Dos detalles obligados: el suavizado, para que una palabra nunca vista no anule todo el producto con un cero; y trabajar con logaritmos, para no perder precisión multiplicando muchas probabilidades chicas.

Dónde sigue siendo una buena línea de base

Naive Bayes sigue siendo una línea de base excelente para clasificación de texto —spam, categorías de documentos— donde los atributos son miles y los datos escasos. Es tan barato que no probarlo antes de algo complejo no tiene justificación.

Vecinos cercanos rinde en pocas dimensiones con fronteras irregulares, y su idea reaparece en todos lados: los sistemas de recomendación y la búsqueda semántica sobre embeddings son búsqueda de vecinos cercanos, con estructuras aproximadas para escalarla.

Dos modelos que se usan por motivos opuestos

k vecinosNaive Bayes
Entrenamientonada: guarda los ejemploscontar frecuencias: rapidísimo
Prediccióncara: compara contra todoscasi instantánea
Con muchas dimensionesse rompeaguanta bien
Con pocos datosmalosorprendentemente bueno
Supuestoninguno sobre la formaindependencia entre atributos, que es falsa
Dónde vive hoybúsqueda por similitudclasificación de texto, línea de base
La última fila es la más interesante: k vecinos casi no se usa como clasificador y está más vivo que nunca como búsqueda por similitud, que es la misma operación con otro nombre.

Cierre

Vecinos cercanos no entrena y paga en la predicción; exige escalar y colapsa en alta dimensión. Naive Bayes cuenta frecuencias y supone independencia: el supuesto es falso pero alcanza para ordenar bien las clases, con suavizado y logaritmos. Los dos son líneas de base baratas que conviene correr primero.

Autoevaluación

¿Lo entendiste?

¿Dónde está el costo en k vecinos más cercanos?
¿Por qué hay que escalar los atributos antes de usar k vecinos?
El valor de k, ¿qué controla?
Naive Bayes supone que los atributos son independientes dada la clase. ¿Por qué funciona igual en texto?