¿Qué es el Kernel Ridge Regression?

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

Algunos de nuestros reconocimientos:

Premios KeepCoding

Si has estado inmerso en el mundo del Big Data y el machine learning, seguro que has escuchado el término Kernel Ridge Regression. En este post te contaremos qué es y en qué consiste por medio de un ejercicio simple.

¿Qué es el Kernel Ridge Regression?

El KRR combina la regresión y la clasificación ridge con un truco del kernel. La forma del modelo aprendido por el KernelRidge es similar a la Support Vector Regression (SVR).

Kernel Ridge Regression: ejercicio

Veamos un ejemplo sencillo de Kernel Ridge Regression. En este caso, no es necesario que utilicemos un modelo de datos de alta dimensionalidad, basta con elegir adecuadamente los parámetros libres.

Vamos a trabajar con un ejemplo sintético:

#Ejercicio de Kernel Ridge Regression
N_train = 10
N_test = 100

#función verdadera g (x)
x = np.linspace (0, 1, N_test)
g_x = np.cos (1.5 * np.pi * x)

#proceso y
np.random.seed (0) #para asegurar reproducibilidad
epsilon = np.random.randn (N_test) * 0.2
y=g_x + epsilon

# Datos: D = {x_i, y_i}, obtenemos una muestra
idx = np.random.randint (0, N_test, N_train)
x_i = x [idx]
y_i = y [idx]

#dibuje la función g (x) y el conjunto de datos x_i, y_i
plt.legend ()
plt.show ()
Kernel Ridge Regression

El modelo se llama KernelRidge con un kernel rfb. No hacemos cross validation ni nada por el estilo, sino que hacemos el fit directamente, a ver qué pasa:

#Ejercicio de Kernel Ridge Regression
from sklearn.kernel ridge import KernelRidge

#datos
x_train = x_i.reshape (-1, 1)
y_train = y_i
X_test = x.reshape (-1, 1)

#definimos modelo
kRidge = KernelRidge (kernel = 'rbf', gamma = 10, alpha = 0.1)
kRidge.fit (x_train, y_train)

#predicción
y_hat = kRidge.predict (x_test)

#error test
error_test = np.mean (np.power (y - y_hat, 2))

#representamos
plt.plot (x, g_x, 'r', label= '$y$')
plt.plot (x_i, y_i, 'b.', label = '$y_i$')
plt.plot (x, y_hat, 'g', label = '$\hat {y} $')
plt.title ('MSE: %.2f'% error_test)
plt.legend ()
plt.xlim ((0, 1))
plt.ylim((-2, 2))
plt.show ()

Igual que siempre, si variamos el gamma y el alpha, las cosas cambian:

#definimos modelo
kRidge = KernelRidge (kernel = 'rbf', gamma = 1, alpha = 1)
kRidge.fit (x_train, y_train)

¿Qué sigue?

El Big Data es una de las áreas en las que más trabajos se ofertan. Si quieres ser uno de los afortunados que pueda acceder a este tipo de opciones laborales, tenemos para ti el Big Data, Inteligencia Artificial & Machine Learning Full Stack Bootcamp, una formación intensiva en la que adquirirás todos los conocimientos teóricos y prácticos que te permitirán obtener el trabajo de tus sueños. ¡No esperes más para seguir tu camino hacia el éxito y solicita 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