Splines de regresión adaptativa multivariante en Python

Actualizado por ultima vez el 9 de mayo de 2022, por Luis Benites.

Las splines de regresión adaptativa multivariante (MARS) se pueden utilizar para modelar relaciones no lineales entre un conjunto de variables predictoras y una variable de respuesta .

Este método funciona de la siguiente manera:

1. Divida un conjunto de datos en k piezas.

2. Ajuste un modelo de regresión a cada pieza.

3. Utilice la validación cruzada de k-veces para elegir un valor para k .

Este tutorial proporciona un ejemplo paso a paso de cómo ajustar un modelo MARS a un conjunto de datos en Python.

Paso 1: importar los paquetes necesarios

Para ajustar un modelo MARS en Python, usaremos la función Earth () de sklearn-contrib-py-earth . Comenzaremos instalando este paquete:

pip install sklearn-contrib-py-earth

A continuación, instalaremos algunos otros paquetes necesarios:

import pandas as pd
from numpy import mean
from sklearn. model_selection  import cross_val_score
from sklearn. model_selection  import RepeatedKFold
from sklearn. conjuntos de datos  import make_regression
from pyearth import Earth

Paso 2: crear un conjunto de datos

Para este ejemplo, usaremos la función make_regression () para crear un conjunto de datos falso con 5,000 observaciones y 15 variables predictoras:

# crear datos de regresión falsos 
X, y = make_regression (n_samples = 5000 , n_features = 15 , n_informative = 10 ,
                       ruido = 0.5 , estado_aleatorio = 5 )

Paso 3: construir y optimizar el modelo MARS

A continuación, usaremos la función Earth () para construir un modelo MARS y la función RepeatedKFold () para realizar k-veces una validación cruzada para evaluar el rendimiento del modelo.

Para este ejemplo, realizaremos una validación cruzada de 10 veces, repetida 3 veces.

# definir el modelo
 model = Earth ()

#especifique el método de validación cruzada que se utilizará para evaluar el modelo
 cv = RepeatedKFold (n_splits = 10 , n_repeats = 3 , random_state = 1 )

#evaluar puntajes de desempeño del modelo
 = cross_val_score (modelo, X, y, scoring = ' neg_mean_absolute_error ',
                         cv = cv, n_jobs = -1)

#print resultados
 significan (puntuaciones)

-1,745345918289

De la salida podemos ver que el error absoluto medio (ignorar el signo negativo) para este tipo de modelo es 1.7453 .

En la práctica, podemos ajustar una variedad de modelos diferentes a un conjunto de datos dado (como Ridge, Lasso, Regresión lineal múltiple, Mínimos cuadrados parciales, Regresión polinomial, etc.) y comparar el error absoluto medio entre todos los modelos para determinar el que produce el MAE más bajo.

Tenga en cuenta que también podríamos usar otras métricas para medir el error, como el R-cuadrado ajustado o el error cuadrático medio.

Puede encontrar el código Python completo utilizado en este ejemplo aquí .

  • https://r-project.org
  • https://www.python.org/
  • https://www.stata.com/

I’m a Bachelor of Economics gratuaded from the National University of San Agustin. I have experience in Python, R and other languages with aplications in Finance or Econometrics, I also have knowledge of statistics and econometrics. If you need help on some issues you can write to me.

Deja un comentario

La regresión lineal se utiliza para encontrar la línea que mejor se "ajusta" a un conjunto de datos. A menudo…
statologos comunidad-2

Compartimos información EXCLUSIVA y GRATUITA solo para suscriptores (cursos privados, programas, consejos y mucho más)

You have Successfully Subscribed!