Regresión no lineal con isotonia

Beginner

This tutorial is from open-source community. Access the source code

Introducción

En este laboratorio, exploraremos la regresión isotónica utilizando scikit-learn. La regresión isotónica es una técnica que ajusta una función no decreciente a datos unidimensionales. Es útil cuando tienes datos que no satisfacen la suposición de linealidad en un modelo de regresión.

Consejos sobre la VM

Una vez que se haya iniciado la VM, haga clic en la esquina superior izquierda para cambiar a la pestaña Cuaderno y acceder a Jupyter Notebook para practicar.

A veces, es posible que tenga que esperar unos segundos a que Jupyter Notebook termine de cargarse. La validación de operaciones no se puede automatizar debido a las limitaciones de Jupyter Notebook.

Si tiene problemas durante el aprendizaje, no dude en preguntar a Labby. Deje comentarios después de la sesión y lo resolveremos rápidamente para usted.

Importar las bibliotecas necesarias

Comencemos importando la clase IsotonicRegression del módulo sklearn.isotonic.

from sklearn.isotonic import IsotonicRegression

Crear datos de muestra

A continuación, necesitamos crear algunos datos de muestra para ajustar nuestro modelo de regresión isotónica. En este ejemplo, generaremos dos matrices, X e y, que representan los datos de entrada y los valores objetivo, respectivamente.

import numpy as np

## Generate random input data
np.random.seed(0)
X = np.random.rand(100)
y = 4 * X + np.random.randn(100)

Ajustar el modelo de regresión isotónica

Ahora, podemos ajustar el modelo de regresión isotónica a nuestros datos. Creamos una instancia de la clase IsotonicRegression y llamamos al método fit con nuestros datos de entrada y valores objetivo.

## Fit isotonic regression model
ir = IsotonicRegression()
ir.fit(X, y)

Hacer predicciones con el modelo

Después de ajustar el modelo, podemos utilizarlo para hacer predicciones en nuevos datos. Vamos a crear una nueva matriz X_new y predecir los valores objetivo correspondientes.

## Create new data for prediction
X_new = np.linspace(0, 1, 100)
y_pred = ir.predict(X_new)

Visualizar los resultados

Finalmente, visualicemos los resultados de nuestro modelo de regresión isotónica. Podemos graficar los puntos de datos originales como puntos de dispersión y los valores predichos como una línea.

import matplotlib.pyplot as plt

## Plot the original data and predicted values
plt.scatter(X, y, c='b', label='Original Data')
plt.plot(X_new, y_pred, c='r', label='Isotonic Regression')
plt.xlabel('X')
plt.ylabel('y')
plt.legend()
plt.show()

Resumen

La regresión isotónica es una técnica útil cuando tienes datos no lineales que no cumplen las suposiciones de un modelo de regresión lineal. Al ajustar una función no decreciente a los datos, la regresión isotónica proporciona una aproximación lineal por segmentos que captura la tendencia subyacente en los datos. En este laboratorio, aprendimos cómo usar la clase IsotonicRegression de scikit-learn para ajustar un modelo de regresión isotónica, hacer predicciones y visualizar los resultados.