Logotipo de Zephyrnet

¿Qué es la regresión de crestas? [Actualizado]

Fecha:

Tabla de contenidos.

Contribuido por: Prasanth Ashok

Cresta regresión es un método de ajuste de modelos que se utiliza para analizar cualquier dato que sufra multicolinealidad. Este método realiza la regularización L2. Cuando ocurre el problema de la multicolinealidad, los mínimos cuadrados son insesgados y las varianzas son grandes, lo que da como resultado que los valores predichos estén muy lejos de los valores reales. 

La función de costo para la regresión de crestas:

Mín(||Y – X(theta)||^2 + λ||theta||^2)

Lambda es el término de penalización. λ dada aquí se denota por un parámetro alfa en la función de cresta. Entonces, al cambiar los valores de alfa, estamos controlando el término de penalización. Cuanto mayores son los valores de alfa, mayor es la penalización y, por tanto, se reduce la magnitud de los coeficientes.

  • Reduce los parámetros. Por lo tanto, se utiliza para prevenir la multicolinealidad.
  • Reduce la complejidad del modelo por coeficiente de contracción.
  • Consulta el curso gratuito en análisis de regresión.

Modelos de regresión de crestas 

Para cualquier tipo de modelo de aprendizaje automático de regresión, la ecuación de regresión habitual forma la base que se escribe como:

Y = XB + e

Donde Y es la variable dependiente, X representa las variables independientes, B son los coeficientes de regresión que se estimarán y e representa los errores residuales. 

Una vez que agregamos la función lambda a esta ecuación, se considera la varianza que no es evaluada por el modelo general. Una vez que los datos estén listos e identificados para ser parte de la regularización L2, hay pasos que se pueden seguir.

Normalización 

En la regresión de crestas, el primer paso es estandarizar las variables (tanto dependientes como independientes) restando sus medias y dividiéndolas por sus desviaciones estándar. Esto plantea un desafío en la notación ya que de alguna manera debemos indicar si las variables en una fórmula particular están estandarizadas o no. En lo que respecta a la estandarización, todos los cálculos de regresión de crestas se basan en variables estandarizadas. Cuando se muestran los coeficientes de regresión finales, se ajustan nuevamente a su escala original. Sin embargo, el trazado de las crestas está en una escala estandarizada.

Lea también Regresión de vectores de soporte en aprendizaje automático

Compensación de sesgo y varianza

La compensación entre sesgo y varianza suele ser complicada cuando se trata de construir modelos de regresión de crestas en un conjunto de datos real. Sin embargo, siguiendo la tendencia general que conviene recordar es:

  1. El sesgo aumenta a medida que λ aumenta.
  2. La varianza disminuye a medida que λ aumenta.

Supuestos de regresiones de cresta

Los supuestos de la regresión de crestas son los mismos que los de la regresión lineal: linealidad, varianza constante e independencia. Sin embargo, como la regresión de crestas no proporciona límites de confianza, no es necesario suponer que la distribución de errores sea normal.

Ahora, tomemos un ejemplo de un problema de regresión lineal y veamos cómo la regresión de crestas, si se implementa, nos ayuda a reducir el error.

Consideraremos un conjunto de datos sobre restaurantes de comida que intentan encontrar la mejor combinación de alimentos para mejorar sus ventas en una región en particular. 

Cargar bibliotecas requeridas

import numpy as np   
import pandas as pd
import os
 
import seaborn as sns
from sklearn.linear_model import LinearRegression
import matplotlib.pyplot as plt   
import matplotlib.style
plt.style.use('classic')
 
import warnings
warnings.filterwarnings("ignore")

df = pd.read_excel("food.xlsx")

Después de realizar toda la EDA de los datos y el tratamiento de los valores faltantes, ahora continuaremos con la creación de variables ficticias, ya que no podemos tener variables categóricas en el conjunto de datos.

df =pd.get_dummies(df, columns=cat,drop_first=True)

Donde columns=cat son todas las variables categóricas del conjunto de datos.

Después de esto, necesitamos estandarizar el conjunto de datos para el método de Regresión Lineal.

Escalar las variables como variables continuas tiene un peso diferente

#Scales the data. Essentially returns the z-scores of every attribute
 
from sklearn.preprocessing import StandardScaler
std_scale = StandardScaler()
std_scale

df['week'] = std_scale.fit_transform(df[['week']])
df['final_price'] = std_scale.fit_transform(df[['final_price']])
df['area_range'] = std_scale.fit_transform(df[['area_range']])

División de tren-prueba

# Copy all the predictor variables into X dataframe
X = df.drop('orders', axis=1)
 
# Copy target into the y dataframe. Target variable is converted in to Log. 
y = np.log(df[['orders']])

# Split X and y into training and test set in 75:25 ratio
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25 , random_state=1)

Modelo de regresión lineal

Lea también ¿Qué es la regresión lineal?

# invoke the LinearRegression function and find the bestfit model on training data
 
regression_model = LinearRegression()
regression_model.fit(X_train, y_train)

# Let us explore the coefficients for each of the independent attributes
 
for idx, col_name in enumerate(X_train.columns):
    print("The coefficient for {} is {}".format(col_name, regression_model.coef_[0][idx]))

The coefficient for week is -0.0041068045722690814
The coefficient for final_price is -0.40354286519747384
The coefficient for area_range is 0.16906454326841025
The coefficient for website_homepage_mention_1.0 is 0.44689072858872664
The coefficient for food_category_Biryani is -0.10369818094671146
The coefficient for food_category_Desert is 0.5722054451619581
The coefficient for food_category_Extras is -0.22769824296095417
The coefficient for food_category_Other Snacks is -0.44682163212660775
The coefficient for food_category_Pasta is -0.7352610382529601
The coefficient for food_category_Pizza is 0.499963614474803
The coefficient for food_category_Rice Bowl is 1.640603292571774
The coefficient for food_category_Salad is 0.22723622749570868
The coefficient for food_category_Sandwich is 0.3733070983152591
The coefficient for food_category_Seafood is -0.07845778484039663
The coefficient for food_category_Soup is -1.0586633401722432
The coefficient for food_category_Starters is -0.3782239478810047
The coefficient for cuisine_Indian is -1.1335822602848094
The coefficient for cuisine_Italian is -0.03927567006223066
The coefficient for center_type_Gurgaon is -0.16528108967295807
The coefficient for center_type_Noida is 0.0501474731039986
The coefficient for home_delivery_1.0 is 1.026400462237632
The coefficient for night_service_1 is 0.0038398863634691582


#checking the magnitude of coefficients
from pandas import Series, DataFrame
predictors = X_train.columns
 
coef = Series(regression_model.coef_.flatten(), predictors).sort_values()
plt.figure(figsize=(10,8))
 
coef.plot(kind='bar', title='Model Coefficients')
plt.show()

Las variables que muestran un efecto positivo en el modelo de regresión son food_category_Rice Bowl, home_delivery_1.0, food_category_Desert, food_category_Pizza, website_homepage_mention_1.0, food_category_Sandwich, food_category_Salad y area_range; estos factores influyen mucho en nuestro modelo.

Regresión de cresta versus regresión de lazo: comprensión de las diferencias clave

En el mundo de los modelos de regresión lineal, Ridge y Lasso Regression se destacan como dos técnicas fundamentales, ambas diseñadas para mejorar la precisión de la predicción y la interpretabilidad de los modelos, particularmente en situaciones con datos complejos y de alta dimensión. La diferencia principal entre los dos radica en su enfoque de la regularización, que es un método para evitar el sobreajuste agregando una penalización a la función de pérdida. La regresión de crestas, también conocida como regularización de Tikhonov, agrega un término de penalización que es proporcional al cuadrado de la magnitud de los coeficientes. Este método reduce los coeficientes hacia cero pero nunca exactamente a cero, reduciendo así la complejidad y la multicolinealidad del modelo. Por el contrario, la regresión de Lasso (operador de selección y contracción mínima absoluta) incluye un término de penalización que es el valor absoluto de la magnitud de los coeficientes. Este enfoque distintivo no sólo reduce los coeficientes sino que también puede reducir algunos de ellos a cero, realizando de manera efectiva la selección de características y dando como resultado modelos más simples e interpretables.

La decisión de utilizar Ridge o Lasso Regression depende de los requisitos específicos del conjunto de datos y del problema subyacente a resolver. Se prefiere la regresión de crestas cuando se supone que todas las características son relevantes o cuando tenemos un conjunto de datos con multicolinealidad, ya que puede manejar entradas correlacionadas de manera más efectiva al distribuir coeficientes entre ellas. Mientras tanto, Lasso Regression sobresale en situaciones donde la parsimonia es ventajosa, cuando es beneficioso reducir la cantidad de características que contribuyen al modelo. Esto es particularmente útil en conjuntos de datos de alta dimensión donde la selección de características se vuelve esencial. Sin embargo, Lasso puede ser inconsistente en casos de características altamente correlacionadas. Por lo tanto, la elección entre Ridge y Lasso debe basarse en la naturaleza de los datos, la complejidad deseada del modelo y los objetivos específicos del análisis, a menudo determinados mediante validación cruzada y evaluación comparativa del desempeño del modelo.

Regresión de crestas en el aprendizaje automático

  • La regresión de crestas es una técnica clave en el aprendizaje automático, indispensable para crear modelos robustos en escenarios propensos al sobreajuste y la multicolinealidad. Este método modifica la regresión lineal estándar introduciendo un término de penalización proporcional al cuadrado de los coeficientes, lo que resulta particularmente útil cuando se trata de variables independientes altamente correlacionadas. Entre sus principales beneficios, la regresión de crestas reduce efectivamente el sobreajuste mediante penalizaciones de complejidad adicional, gestiona la multicolinealidad equilibrando los efectos entre variables correlacionadas y mejora la generalización del modelo para mejorar el rendimiento en datos invisibles.
  • La implementación de la regresión de crestas en entornos prácticos implica el paso crucial de seleccionar el parámetro de regularización correcto, comúnmente conocido como lambda. Esta selección, que normalmente se realiza mediante técnicas de validación cruzada, es vital para equilibrar el equilibrio entre sesgo y varianza inherente al entrenamiento de modelos. La regresión de Ridge goza de un amplio soporte en varias bibliotecas de aprendizaje automático, con Python scikit-learn siendo un ejemplo notable. Aquí, la implementación implica definir el modelo, establecer el valor lambda y emplear funciones integradas para ajustes y predicciones. Su utilidad es particularmente notable en sectores como las finanzas y el análisis de la atención médica, donde las predicciones precisas y la construcción sólida de modelos son primordiales. En última instancia, la capacidad de la regresión de crestas para mejorar la precisión y manejar conjuntos de datos complejos solidifica su importancia actual en el campo dinámico del aprendizaje automático.

Lea también ¿Qué es la regresión cuantil?

Cuanto mayor sea el valor del coeficiente beta, mayor será el impacto.

Platos como Rice Bowl, Pizza, Desert con instalaciones como entrega a domicilio y website_homepage_mention juegan un papel importante en la demanda o la cantidad de pedidos que se realizan con alta frecuencia.

Variables que muestran un efecto negativo en el modelo de regresión para predecir pedidos de restaurantes: cocina_india, categoría_comida_sopa, categoría_comida_pasta, categoría_comida_otros_refrigerios.

Final_price tiene un efecto negativo en el pedido, como se esperaba.

Platos como sopa, pasta, otros bocadillos y categorías de comida india perjudican la predicción del modelo sobre la cantidad de pedidos realizados en los restaurantes, manteniendo constantes todos los demás predictores.

Algunas variables que apenas afectan la predicción del modelo para la frecuencia de los pedidos son el servicio semanal y nocturno.

A través del modelo, podemos ver que los tipos de objetos de variables o variables categóricas son más significativas que las variables continuas.

Lea también Introducción a la expresión regular en Python

[Contenido incrustado]

Regularización

  1. Valor de alfa, que es un hiperparámetro de Ridge, lo que significa que el modelo no los aprende automáticamente, sino que deben configurarse manualmente. Realizamos una búsqueda en cuadrícula de valores alfa óptimos.
  2. Para encontrar el alfa óptimo para la regularización de Ridge, estamos aplicando GridSearchCV
from sklearn.linear_model import Ridge
from sklearn.model_selection import GridSearchCV
 
ridge=Ridge()
parameters={'alpha':[1e-15,1e-10,1e-8,1e-3,1e-2,1,5,10,20,30,35,40,45,50,55,100]}
ridge_regressor=GridSearchCV(ridge,parameters,scoring='neg_mean_squared_error',cv=5)
ridge_regressor.fit(X,y)

print(ridge_regressor.best_params_)
print(ridge_regressor.best_score_)

{'alpha': 0.01}
-0.3751867421112124

El signo negativo se debe a un error conocido en la biblioteca de validación cruzada de búsqueda de cuadrícula, así que ignore el signo negativo.

predictors = X_train.columns
 
coef = Series(ridgeReg.coef_.flatten(),predictors).sort_values()
plt.figure(figsize=(10,8))
coef.plot(kind='bar', title='Model Coefficients')
plt.show()

Del análisis anterior podemos decidir que el modelo final se puede definir como:

Pedidos = 4.65 + 1.02home_delivery_1.0 + .46 website_homepage_mention_1 0+ (-.40* precio_final) +.17area_range + 0.57food_category_Desert + (-0.22food_category_Extras) + (-0.73food_category_Pasta) + 0.49food_category_Pizza + 1.6food _categoría_Tazón_de_arroz + 0.22categoría_comida_Ensalada + 0.37 food_category_Sandwich + (-1.05food_category_Soup) + (-0.37food_category_Starters) + (-1.13cocina_india) + (-0.16center_type_Gurgaon)

Las cinco variables principales que influyen en el modelo de regresión son:

  1. food_category_Tazón de arroz
  2. entrega_a domicilio_1.0
  3. categoría_comida_pizza
  4. categoría_comida_Desierto
  5. sitio web_página_inicio_mención_1

Cuanto mayor sea el coeficiente beta, más significativo será el predictor. Por lo tanto, con un ajuste del modelo de cierto nivel, podemos descubrir las mejores variables que influyen en un problema empresarial.

Si este blog le resultó útil y desea obtener más información sobre dichos conceptos, puede unirse Cursos en línea gratuitos de Great Learning Academy .

¿Qué es la regresión de crestas?

La regresión de crestas es un método de regresión lineal que agrega un sesgo para reducir el sobreajuste y mejorar la precisión de la predicción.

¿En qué se diferencia la regresión de crestas de los mínimos cuadrados ordinarios?

A diferencia de los mínimos cuadrados ordinarios, la regresión de crestas incluye una penalización en la magnitud de los coeficientes para reducir la complejidad del modelo.

¿Cuándo debería utilizar la regresión de crestas?

Utilice la regresión de crestas cuando trabaje con multicolinealidad o cuando haya más predictores que observaciones.

¿Cuál es el papel del parámetro de regularización en la regresión de crestas?

El parámetro de regularización controla el grado de reducción del coeficiente, lo que influye en la simplicidad del modelo.

¿Puede la regresión Ridge manejar relaciones no lineales?

Aunque se utiliza principalmente para relaciones lineales, la regresión de crestas puede incluir términos polinomiales para no linealidades.

¿Cómo se implementa la regresión de crestas en el software?

La mayoría del software estadístico ofrece funciones integradas para la regresión de crestas, que requieren especificación de variables y valores de parámetros.

¿Cómo elegir el mejor parámetro de regularización?

El mejor parámetro a menudo se encuentra mediante validación cruzada, utilizando técnicas como cuadrícula o búsqueda aleatoria.

¿Cuáles son las limitaciones de la regresión de crestas?

Incluye todos los predictores, lo que puede complicar la interpretación, y elegir el parámetro óptimo puede resultar un desafío.

punto_img

Información más reciente

punto_img