¿Cómo funciona el k-nn en regresión?

| Última modificación: 16 de abril de 2024 | Tiempo de Lectura: 3 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

¿Sabías que puede utilizarse el k-nn en regresión? En este artículo te mostraremos cómo funcionan los k-nn en regresión por medio de un ejercicio.

Motivación del k-nn en regresión

En regresión, los modelos paramétricos no siempre resultan adecuados para resolver los diferentes problemas de regresión. Por esta razón, se recurre al uso de modelos basados en datos no paramétricos; en este caso es el algoritmo k-nn, que se traduce como k-nearest neighbors o vecinos más cercanos.

Un k-nn en regresión funciona basándonos en datos, mirando las instancias más cercanas y calculando una media. No es paramétrico, de ahí que sea tan efectivo en modelos de regresión.

Veamos esta gráfica:

k-nn en regresión

En este caso, no nos vale para nada un modelo lineal, porque tenemos una parte que es no lineal. Tampoco resulta especialmente útil un modelo que sea cuadrático, porque tenemos una parte lineal.

Podríamos ir ajustándolo, metiéndole más y más complejidad para luego regularizarlo, pero también podemos usar un modelo que se base en los datos que tiene. Entonces, el k-nn en regresión mira las instancias más cercanas, va haciendo una media y así con cada sección.

¿Cómo funciona un k-nn en regresión?

El k-nn va a ir mirando y calculando la distancia más cercana y va a hacer una media en función de cuántas instancias escojamos.

Veamos un ejemplo en el que queremos estimar el precio (y) a partir de sqm (x) en un nuevo punto x0 . ¿Qué es lo que hará un k-nn en regresión? Buscar vecinos de x0

di = llx0 – xill2

El valor estimado es la media de los vecinos:

Entonces, si tenemos un K = 1 y miramos solo el vecino más cercano, vamos a tener un buen ajuste si hay mucha densidad de puntos y bajo ruido. Este va a ser un modelo muy complejo y van a estar muy ajustados los datos, pero puede que en ocasiones nos interese.

Sin embargo, si no tenemos suficientes datos, el overfitting no va a estar bien ajustado; va a ser, en general, una mala idea. Pero si además de esto tenemos pocos datos, ni siquiera va a ser una cosa usable, ya que vamos a tener regiones sin ejemplos, mal ajustadas y muy sensibles al ruido. Por lo tanto, si no hemos eliminado los outliers correctamente y tenemos de repente un punto mal puesto, ese punto va a impactar mucho en los vecinos.

Ponderación

¿Cuál es la solución a esto? Como ya sabemos, deberíamos aumentar el K, pero esto produciría problemas de desbordamiento. Por ello, la única solución viable sería ponderar la estimación de distancia entre vecinos. Esto implicaría:

  • Dar más peso a los más cercanos.
  • Reducir el peso de los más alejados.

Veamos cómo ponderar la estimación K = 4

¿Cómo elegimos θ?

En función de la distancia:

θi = 1 / di

donde:

di = llx0 – xill2

Si di ↓ ⇒ θi

Si di ↑ ⇒ θi

Podemos utilizar otras opciones, otras medidas de similitud:

θi (σ) =

Kernel RBF

RBF: Radial Basis Function

Expresada como:

¿Quieres seguir aprendiendo?

Si quieres seguir aprendiendo sobre una de las disciplinas más demandadas y mejor pagadas en la actualidad, no solo en el sector informático, sino también en otras áreas relacionadas, tenemos para ti el Big Data, Inteligencia Artificial & Machine Learning Full Stack Bootcamp. Esta formación intensiva te permitirá adquirir todas las herramientas teóricas y prácticas para seguir escalando hacia la cima del éxito en tu proceso de formación. ¡No dudes más, sigue tu camino y solicita más información ahora!

Sandra Navarro

Business Intelligence & Big Data Advisor & Coordinadora del Bootcamp en Data Science, Big Data & Machine Learning.

Posts más leídos

¡CONVOCATORIA ABIERTA!

Big Data, IA & Machine Learning

Full Stack Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado