Cos'è la regressione della cresta? [Aggiornato]

Cos'è la regressione della cresta? [Aggiornato]

Nodo di origine: 2450913

Sommario

Contribuito da: Prashanth Ashok

Cresta regressione è un metodo di ottimizzazione del modello utilizzato per analizzare tutti i dati che soffrono di multicollinearità. Questo metodo esegue la regolarizzazione L2. Quando si verifica il problema della multicollinearità, i minimi quadrati sono imparziali e le varianze sono ampie, il risultato è che i valori previsti sono lontani dai valori effettivi. 

La funzione di costo per la regressione della cresta:

Min(||Y – X(theta)||^2 + λ||theta||^2)

Lambda è il termine di penalità. λ qui indicato è indicato da un parametro alfa nella funzione di cresta. Quindi, modificando i valori di alfa, stiamo controllando il termine di penalità. Più alti sono i valori di alfa, maggiore è la penalità e quindi si riduce l'entità dei coefficienti.

  • Riduce i parametri. Pertanto, viene utilizzato per prevenire la multicollinearità
  • Riduce la complessità del modello per contrazione del coefficiente
  • Scopri il corso gratuito su analisi di regressione.

Modelli di regressione della cresta 

Per qualsiasi tipo di modello di machine learning di regressione, la consueta equazione di regressione costituisce la base che viene scritta come:

Y = XB + e

Dove Y è la variabile dipendente, X rappresenta le variabili indipendenti, B sono i coefficienti di regressione da stimare ed e rappresenta gli errori residui. 

Una volta aggiunta la funzione lambda a questa equazione, viene considerata la varianza che non viene valutata dal modello generale. Dopo che i dati sono pronti e identificati per far parte della regolarizzazione L2, è possibile intraprendere alcuni passaggi.

Standardizzazione 

Nella regressione ridge, il primo passo è standardizzare le variabili (sia dipendenti che indipendenti) sottraendo le loro medie e dividendo per le loro deviazioni standard. Ciò causa una sfida nella notazione poiché dobbiamo in qualche modo indicare se le variabili in una particolare formula sono standardizzate o meno. Per quanto riguarda la standardizzazione, tutti i calcoli di regressione della cresta si basano su variabili standardizzate. Quando vengono visualizzati i coefficienti di regressione finali, vengono riportati alla loro scala originale. Tuttavia, la traccia della cresta è su scala standardizzata.

Leggi anche: Supporta la regressione vettoriale nell'apprendimento automatico

Compromesso tra bias e varianza

Il compromesso tra bias e varianza è generalmente complicato quando si tratta di costruire modelli di regressione ridge su un set di dati reale. Tuttavia, seguendo la tendenza generale che bisogna ricordare è:

  1. La distorsione aumenta all’aumentare di λ.
  2. La varianza diminuisce all'aumentare di λ.

Ipotesi di regressione della cresta

I presupposti della regressione ridge sono gli stessi della regressione lineare: linearità, varianza costante e indipendenza. Tuttavia, poiché la regressione della cresta non fornisce limiti di confidenza, non è necessario presupporre che la distribuzione degli errori sia normale.

Ora, prendiamo un esempio di un problema di regressione lineare e vediamo come la regressione di cresta, se implementata, ci aiuta a ridurre l'errore.

Considereremo un set di dati sui ristoranti alimentari cercando di trovare la migliore combinazione di prodotti alimentari per migliorare le loro vendite in una particolare regione. 

Carica le librerie richieste

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")

Dopo aver condotto tutta l'EDA sui dati e aver trattato i valori mancanti, procederemo ora con la creazione di variabili fittizie, poiché non possiamo avere variabili categoriali nel set di dati.

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

Dove columns=cat rappresenta tutte le variabili categoriali nel set di dati.

Successivamente, dobbiamo standardizzare il set di dati per il metodo di regressione lineare.

Ridimensionare le variabili come variabili continue ha un peso diverso

#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']])

Divisione treno-prova

# 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)

Modello di regressione lineare

Leggi anche: Che cos'è la regressione lineare?

# 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() 

Le variabili che mostrano un effetto positivo sul modello di regressione sono 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 e area_range: questi fattori influenzano fortemente il nostro modello.

Regressione della cresta e regressione del lazo: comprendere le differenze chiave

Nel mondo dei modelli di regressione lineare, Ridge e Lasso Regression si distinguono come due tecniche fondamentali, entrambe progettate per migliorare l'accuratezza della previsione e l'interpretabilità dei modelli, in particolare in situazioni con dati complessi e ad alta dimensionalità. La differenza fondamentale tra i due sta nel loro approccio alla regolarizzazione, che è un metodo per prevenire l’overfitting aggiungendo una penalità alla funzione di perdita. La regressione della cresta, nota anche come regolarizzazione di Tikhonov, aggiunge un termine di penalità proporzionale al quadrato della grandezza dei coefficienti. Questo metodo riduce i coefficienti verso lo zero ma mai esattamente allo zero, riducendo così la complessità e la multicollinearità del modello. Al contrario, la regressione lazo (operatore di restringimento e selezione minimo assoluto) include un termine di penalità che rappresenta il valore assoluto della grandezza dei coefficienti. Questo approccio distintivo non solo riduce i coefficienti, ma può anche ridurne alcuni a zero, eseguendo in modo efficace la selezione delle caratteristiche e producendo modelli più semplici e più interpretabili.

La decisione di utilizzare la regressione Ridge o Lasso dipende dai requisiti specifici del set di dati e dal problema sottostante da risolvere. La regressione della cresta è preferibile quando si presuppone che tutte le caratteristiche siano rilevanti o quando si dispone di un set di dati con multicollinearità, poiché può gestire input correlati in modo più efficace distribuendo i coefficienti tra di essi. La regressione lazo, invece, eccelle nelle situazioni in cui la parsimonia è vantaggiosa, ovvero quando è utile ridurre il numero di funzionalità che contribuiscono al modello. Ciò è particolarmente utile nei set di dati ad alta dimensione in cui la selezione delle caratteristiche diventa essenziale. Tuttavia, Lazo può essere incoerente in caso di funzionalità altamente correlate. Pertanto, la scelta tra Ridge e Lasso dovrebbe essere determinata dalla natura dei dati, dalla complessità del modello desiderata e dagli obiettivi specifici dell'analisi, spesso determinati attraverso la convalida incrociata e la valutazione comparativa delle prestazioni del modello.

Regressione della cresta nell'apprendimento automatico

  • La regressione della cresta è una tecnica chiave nell'apprendimento automatico, indispensabile per creare modelli robusti in scenari soggetti a overfitting e multicollinearità. Questo metodo modifica la regressione lineare standard introducendo un termine di penalità proporzionale al quadrato dei coefficienti, che si rivela particolarmente utile quando si ha a che fare con variabili indipendenti altamente correlate. Tra i suoi principali vantaggi, la regressione della cresta riduce efficacemente l'overfitting attraverso ulteriori penalità di complessità, gestisce la multicollinearità bilanciando gli effetti tra variabili correlate e migliora la generalizzazione del modello per migliorare le prestazioni sui dati invisibili.
  • L'implementazione della regressione della cresta in contesti pratici comporta il passaggio cruciale della selezione del giusto parametro di regolarizzazione, comunemente noto come lambda. Questa selezione, in genere eseguita utilizzando tecniche di convalida incrociata, è vitale per bilanciare il compromesso bias-varianza inerente all'addestramento del modello. La regressione Ridge gode di un supporto diffuso in varie librerie di machine learning, con Python scikit-learn essendo un esempio notevole. In questo caso, l'implementazione implica la definizione del modello, l'impostazione del valore lambda e l'utilizzo di funzioni integrate per l'adattamento e le previsioni. La sua utilità è particolarmente notevole in settori come la finanza e l’analisi sanitaria, dove previsioni precise e solida costruzione di modelli sono fondamentali. In definitiva, la capacità della regressione ridge di migliorare la precisione e gestire set di dati complessi consolida la sua continua importanza nel campo dinamico dell’apprendimento automatico.

Leggi anche: Cos'è la regressione quantilica?

Maggiore è il valore del coefficiente beta, maggiore è l’impatto.

Piatti come Rice Bowl, Pizza, Desert con servizi come la consegna a domicilio e website_homepage_mention svolgono un ruolo importante nella domanda o nel numero di ordini effettuati con alta frequenza.

Variabili che mostrano un effetto negativo sul modello di regressione per la previsione degli ordini al ristorante: kitchen_Indian,food_category_Soup , food_category_Pasta , food_category_Other_Snacks.

Final_price ha un effetto negativo sull'ordine, come previsto.

Piatti come zuppe, pasta, altri snack e categorie di cibo indiano influiscono sulla previsione del modello sul numero di ordini effettuati nei ristoranti, mantenendo costanti tutti gli altri predittori.

Alcune variabili che difficilmente influenzano la previsione del modello per la frequenza degli ordini sono week e night_service.

Attraverso il modello, siamo in grado di vedere che i tipi di oggetto delle variabili o le variabili categoriali sono più significative delle variabili continue.

Leggi anche: Introduzione alle espressioni regolari in Python

[Contenuto incorporato]

regolarizzazione

  1. Valore di alpha, che è un iperparametro di Ridge, il che significa che non vengono appresi automaticamente dal modello ma devono essere impostati manualmente. Eseguiamo una ricerca su griglia per valori alfa ottimali
  2. Per trovare l'alfa ottimale per la regolarizzazione della cresta stiamo applicando 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

Il segno negativo è dovuto all'errore noto nella libreria di convalida incrociata della ricerca nella griglia, quindi ignora il segno 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() 

Dall'analisi di cui sopra possiamo decidere che il modello finale può essere definito come:

Ordini = 4.65 + 1.02home_delivery_1.0 + ,46 website_homepage_mention_1 0+ (-,40* final_price) +,17area_range + 0.57food_category_Desert + (-0.22food_category_Extras) + (-0.73food_category_Pasta) + 0.49food_category_Pizza + 1.6food _categoria_Ciotola_di_riso + 0.22categoria_cibo_Insalata + 0.37 categoria_cibo_Panino + (-1.05categoria_cibo_Zuppa) + (-0.37categoria_cibo_Antipasti) + (-1.13cucina_Indiana) + (-0.16center_type_Gurgaon)

Le 5 principali variabili che influenzano il modello di regressione sono:

  1. food_category_Ciotola di riso
  2. consegna_a_casa_1.0
  3. food_category_Pizza
  4. food_category_Desert
  5. website_homepage_mention_1

Più alto è il coefficiente beta, più significativo è il predittore. Pertanto, con una certa messa a punto del modello di livello, possiamo scoprire le migliori variabili che influenzano un problema aziendale.

Se hai trovato utile questo blog e desideri saperne di più su questi concetti, puoi iscriverti I corsi online gratuiti di Great Learning Academy oggi.

Cos'è la regressione della cresta?

La regressione della cresta è un metodo di regressione lineare che aggiunge una distorsione per ridurre l'overfitting e migliorare l'accuratezza della previsione.

In che modo la regressione della cresta differisce dai minimi quadrati ordinari?

A differenza dei minimi quadrati ordinari, la regressione ridge include una penalità sulla grandezza dei coefficienti per ridurre la complessità del modello.

Quando dovresti usare la regressione della cresta?

Utilizzare la regressione della cresta quando si ha a che fare con la multicollinearità o quando sono presenti più predittori che osservazioni.

Qual è il ruolo del parametro di regolarizzazione nella regressione della cresta?

Il parametro di regolarizzazione controlla l'entità della contrazione del coefficiente, influenzando la semplicità del modello.

La regressione della cresta può gestire relazioni non lineari?

Anche se principalmente per le relazioni lineari, la regressione di cresta può includere termini polinomiali per le non linearità.

Come viene implementata la regressione Ridge nel software?

La maggior parte dei software statistici offre funzioni integrate per la regressione della cresta, che richiedono la specificazione di variabili e il valore del parametro.

Come scegliere il miglior parametro di regolarizzazione?

Il parametro migliore viene spesso trovato tramite la convalida incrociata, utilizzando tecniche come la griglia o la ricerca casuale.

Quali sono i limiti della regressione della cresta?

Include tutti i predittori, il che può complicare l'interpretazione, e la scelta del parametro ottimale può essere impegnativa.

Timestamp:

Di più da Il mio grande apprendimento