Zephyrnet-Logo

Was ist Ridge-Regression? [Aktualisiert]

Datum:

Inhaltsverzeichnis

Beigesteuert von: Prashanth Ashok

Grat Regression ist eine Modelloptimierungsmethode, die zur Analyse aller Daten verwendet wird, die unter Multikollinearität leiden. Diese Methode führt eine L2-Regularisierung durch. Wenn das Problem der Multikollinearität auftritt, die Methode der kleinsten Quadrate unverzerrt ist und die Varianzen groß sind, führt dies dazu, dass die vorhergesagten Werte weit von den tatsächlichen Werten abweichen. 

Die Kostenfunktion für die Ridge-Regression:

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

Lambda ist der Strafbegriff. Das hier angegebene λ wird durch einen Alpha-Parameter in der Ridge-Funktion bezeichnet. Indem wir also die Werte von Alpha ändern, kontrollieren wir den Strafterm. Je höher die Alpha-Werte sind, desto größer ist die Strafe und desto geringer ist die Größe der Koeffizienten.

  • Es verkleinert die Parameter. Daher wird es verwendet, um Multikollinearität zu verhindern
  • Es reduziert die Modellkomplexität durch Koeffizientenschrumpfung
  • Schauen Sie sich den kostenlosen Kurs an Regressionsanalyse.

Ridge-Regressionsmodelle 

Für jede Art von Regressionsmodell für maschinelles Lernen bildet die übliche Regressionsgleichung die Basis, die wie folgt geschrieben wird:

Y = XB + e

Dabei ist Y die abhängige Variable, X die unabhängigen Variablen, B die zu schätzenden Regressionskoeffizienten und e die Fehler als Residuen. 

Sobald wir die Lambda-Funktion zu dieser Gleichung hinzufügen, wird die Varianz berücksichtigt, die nicht vom allgemeinen Modell bewertet wird. Nachdem die Daten bereit sind und als Teil der L2-Regularisierung identifiziert wurden, können Schritte unternommen werden.

Standardisierung 

Bei der Ridge-Regression besteht der erste Schritt darin, die Variablen (sowohl abhängige als auch unabhängige) zu standardisieren, indem ihre Mittelwerte subtrahiert und durch ihre Standardabweichungen dividiert werden. Dies führt zu einer Herausforderung bei der Notation, da wir irgendwie angeben müssen, ob die Variablen in einer bestimmten Formel standardisiert sind oder nicht. Was die Standardisierung betrifft, basieren alle Ridge-Regressionsberechnungen auf standardisierten Variablen. Wenn die endgültigen Regressionskoeffizienten angezeigt werden, werden sie wieder an ihren ursprünglichen Maßstab angepasst. Die Gratspur liegt jedoch in einem standardisierten Maßstab.

Lesen Sie auch: Unterstützen Sie die Vektorregression beim maschinellen Lernen

Kompromiss zwischen Bias und Varianz

Der Kompromiss zwischen Bias und Varianz ist im Allgemeinen kompliziert, wenn es darum geht, Ridge-Regressionsmodelle auf einem tatsächlichen Datensatz zu erstellen. Man sollte sich jedoch den allgemeinen Trend merken:

  1. Die Vorspannung nimmt mit zunehmendem λ zu.
  2. Die Varianz nimmt mit zunehmendem λ ab.

Annahmen von Ridge-Regressionen

Die Annahmen der Ridge-Regression sind dieselben wie die der linearen Regression: Linearität, konstante Varianz und Unabhängigkeit. Da die Ridge-Regression jedoch keine Konfidenzgrenzen liefert, muss nicht davon ausgegangen werden, dass die Fehlerverteilung normal ist.

Nehmen wir nun ein Beispiel für ein lineares Regressionsproblem und sehen wir, wie die Ridge-Regression, wenn sie implementiert wird, uns hilft, den Fehler zu reduzieren.

Wir betrachten einen Datensatz über Lebensmittelrestaurants, die versuchen, die beste Kombination von Lebensmitteln zu finden, um ihre Verkäufe in einer bestimmten Region zu steigern. 

Laden Sie die erforderlichen Bibliotheken hoch

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

Nachdem wir die gesamte EDA für die Daten durchgeführt und fehlende Werte behandelt haben, werden wir nun mit der Erstellung von Dummy-Variablen fortfahren, da wir keine kategorialen Variablen im Datensatz haben können.

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

Dabei sind columns=cat alle kategorialen Variablen im Datensatz.

Danach müssen wir den Datensatz für die lineare Regressionsmethode standardisieren.

Die Skalierung der Variablen als kontinuierliche Variablen hat eine unterschiedliche Gewichtung

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

Zug-Test-Split

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

Lineares Regressionsmodell

Lesen Sie auch: Was ist lineare Regression?

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

Variablen, die einen positiven Effekt auf das Regressionsmodell zeigen, sind 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 und area_range – diese Faktoren haben großen Einfluss auf unser Modell.

Ridge-Regression versus Lasso-Regression: Die wichtigsten Unterschiede verstehen

In der Welt der linearen Regressionsmodelle stechen die Ridge- und die Lasso-Regression als zwei grundlegende Techniken hervor, die beide darauf ausgelegt sind, die Vorhersagegenauigkeit und Interpretierbarkeit der Modelle zu verbessern, insbesondere in Situationen mit komplexen und hochdimensionalen Daten. Der Hauptunterschied zwischen den beiden liegt in ihrem Ansatz zur Regularisierung, einer Methode zur Verhinderung einer Überanpassung durch Hinzufügen einer Strafe zur Verlustfunktion. Die Ridge-Regression, auch bekannt als Tikhonov-Regularisierung, fügt einen Strafterm hinzu, der proportional zum Quadrat der Größe der Koeffizienten ist. Diese Methode schrumpft die Koeffizienten gegen Null, aber nie genau auf Null, wodurch die Modellkomplexität und Multikollinearität verringert werden. Im Gegensatz dazu enthält die Lasso-Regression (Operator für kleinste absolute Schrumpfung und Auswahl) einen Strafterm, der den absoluten Wert der Größe der Koeffizienten darstellt. Dieser besondere Ansatz verkleinert nicht nur die Koeffizienten, sondern kann einige davon auch auf Null reduzieren, was eine effektive Merkmalsauswahl ermöglicht und zu einfacheren, besser interpretierbaren Modellen führt.

Die Entscheidung, die Ridge- oder Lasso-Regression zu verwenden, hängt von den spezifischen Anforderungen des Datensatzes und dem zugrunde liegenden zu lösenden Problem ab. Die Ridge-Regression wird bevorzugt, wenn davon ausgegangen wird, dass alle Merkmale relevant sind, oder wenn wir über einen Datensatz mit Multikollinearität verfügen, da sie korrelierte Eingaben effektiver verarbeiten kann, indem sie Koeffizienten unter ihnen verteilt. Die Lasso-Regression hingegen zeichnet sich in Situationen aus, in denen Sparsamkeit von Vorteil ist – wenn es von Vorteil ist, die Anzahl der zum Modell beitragenden Features zu reduzieren. Dies ist besonders nützlich bei hochdimensionalen Datensätzen, bei denen die Merkmalsauswahl von entscheidender Bedeutung ist. Allerdings kann Lasso bei stark korrelierten Merkmalen inkonsistent sein. Daher sollte die Wahl zwischen Ridge und Lasso von der Art der Daten, der gewünschten Modellkomplexität und den spezifischen Zielen der Analyse abhängen, die häufig durch Kreuzvalidierung und vergleichende Modellleistungsbewertung ermittelt werden.

Ridge-Regression im maschinellen Lernen

  • Die Ridge-Regression ist eine Schlüsseltechnik des maschinellen Lernens und unverzichtbar für die Erstellung robuster Modelle in Szenarien, die zu Überanpassung und Multikollinearität neigen. Diese Methode modifiziert die standardmäßige lineare Regression durch die Einführung eines Strafterms, der proportional zum Quadrat der Koeffizienten ist, was sich besonders bei der Arbeit mit stark korrelierten unabhängigen Variablen als nützlich erweist. Zu den Hauptvorteilen der Ridge-Regression gehört die wirksame Verringerung der Überanpassung durch zusätzliche Komplexitätseinbußen, die Bewältigung der Multikollinearität durch den Ausgleich von Effekten zwischen korrelierten Variablen und die Verbesserung der Modellverallgemeinerung, um die Leistung bei unsichtbaren Daten zu verbessern.
  • Die Implementierung der Ridge-Regression in der Praxis erfordert den entscheidenden Schritt der Auswahl des richtigen Regularisierungsparameters, allgemein bekannt als Lambda. Diese Auswahl, die normalerweise mithilfe von Kreuzvalidierungstechniken durchgeführt wird, ist von entscheidender Bedeutung für den Ausgleich des Bias-Varianz-Kompromisses, der dem Modelltraining innewohnt. Die Ridge-Regression erfreut sich in verschiedenen Bibliotheken für maschinelles Lernen, darunter auch in Python, breiter Unterstützung scikit-learn ein bemerkenswertes Beispiel sein. Hier umfasst die Implementierung die Definition des Modells, die Festlegung des Lambda-Werts und die Verwendung integrierter Funktionen für Anpassungen und Vorhersagen. Sein Nutzen ist besonders in Bereichen wie dem Finanzwesen und der Gesundheitsanalytik bemerkenswert, in denen präzise Vorhersagen und eine robuste Modellkonstruktion von größter Bedeutung sind. Letztendlich festigt die Fähigkeit der Ridge-Regression, die Genauigkeit zu verbessern und komplexe Datensätze zu verarbeiten, ihre anhaltende Bedeutung im dynamischen Bereich des maschinellen Lernens.

Lesen Sie auch: Was ist Quantilregression?

Je höher der Wert des Beta-Koeffizienten ist, desto höher ist die Auswirkung.

Gerichte wie Rice Bowl, Pizza, Desert mit einer Möglichkeit wie Lieferung nach Hause und website_homepage_mention spielen eine wichtige Rolle bei der Nachfrage oder der Anzahl der Bestellungen, die in hoher Häufigkeit aufgegeben werden.

Variablen, die einen negativen Effekt auf das Regressionsmodell zur Vorhersage von Restaurantbestellungen zeigen: Cuisine_Indian, Food_Category_Soup, Food_Category_Pasta, Food_Category_Other_Snacks.

Final_price wirkt sich erwartungsgemäß negativ auf die Bestellung aus.

Gerichte wie Suppe, Pasta, andere Snacks und indische Lebensmittelkategorien beeinträchtigen die Modellvorhersage zur Anzahl der in Restaurants aufgegebenen Bestellungen, während alle anderen Prädiktoren konstant bleiben.

Einige Variablen, die die Modellvorhersage für die Bestellhäufigkeit kaum beeinflussen, sind Wochen- und Nachtdienst.

Durch das Modell können wir erkennen, dass Objekttypen von Variablen oder kategoriale Variablen wichtiger sind als kontinuierliche Variablen.

Lesen Sie auch: Einführung in reguläre Ausdrücke in Python

[Eingebetteten Inhalt]

Regulierung

  1. Wert von Alpha, einem Hyperparameter von Ridge, was bedeutet, dass sie nicht automatisch vom Modell gelernt werden, sondern manuell eingestellt werden müssen. Wir führen eine Rastersuche nach optimalen Alphawerten durch
  2. Um das optimale Alpha für die Ridge-Regularisierung zu finden, verwenden wir 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

Das negative Vorzeichen ist auf den bekannten Fehler in der Grid Search Cross Validation-Bibliothek zurückzuführen. Ignorieren Sie daher das negative Vorzeichen.

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

Aus der obigen Analyse können wir schließen, dass das endgültige Modell wie folgt definiert werden kann:

Bestellungen = 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.6. 0.22food_category_Rice_Bowl + 0.37food_category_Salad + 1.05 food_category_Sandwich + (-0.37food_category_Soup) + (-1.13food_category_Starters) + (-0.16cuisine_Indian) + (-XNUMXcenter_type_Gurgaon)

Die fünf wichtigsten Variablen, die das Regressionsmodell beeinflussen, sind:

  1. food_category_Rice Bowl
  2. home_delivery_1.0
  3. food_category_Pizza
  4. food_category_Desert
  5. website_homepage_mention_1

Je höher der Beta-Koeffizient, desto aussagekräftiger ist der Prädiktor. Daher können wir mit einer Modelloptimierung auf bestimmten Ebenen die besten Variablen herausfinden, die ein Geschäftsproblem beeinflussen.

Wenn Sie diesen Blog hilfreich fanden und mehr über solche Konzepte erfahren möchten, können Sie beitreten Die kostenlosen Online-Kurse der Great Learning Academy heute.

Was ist Ridge-Regression?

Die Ridge-Regression ist eine lineare Regressionsmethode, die einen Bias hinzufügt, um eine Überanpassung zu reduzieren und die Vorhersagegenauigkeit zu verbessern.

Wie unterscheidet sich die Ridge-Regression von der gewöhnlichen kleinsten Quadrate?

Im Gegensatz zu gewöhnlichen kleinsten Quadraten beinhaltet die Ridge-Regression eine Strafe für die Größe der Koeffizienten, um die Komplexität des Modells zu verringern.

Wann sollten Sie die Ridge-Regression verwenden?

Verwenden Sie die Ridge-Regression, wenn es um Multikollinearität geht oder wenn es mehr Prädiktoren als Beobachtungen gibt.

Welche Rolle spielt der Regularisierungsparameter bei der Ridge-Regression?

Der Regularisierungsparameter steuert das Ausmaß der Koeffizientenverkleinerung und beeinflusst so die Einfachheit des Modells.

Kann die Ridge-Regression nichtlineare Beziehungen verarbeiten?

Während die Ridge-Regression hauptsächlich für lineare Beziehungen gilt, kann sie Polynomterme für Nichtlinearitäten umfassen.

Wie wird die Ridge-Regression in Software implementiert?

Die meisten Statistikprogramme bieten integrierte Funktionen für die Ridge-Regression, die eine Variablenspezifikation und einen Parameterwert erfordern.

Wie wählt man den besten Regularisierungsparameter aus?

Der beste Parameter wird häufig durch Kreuzvalidierung mithilfe von Techniken wie Raster- oder Zufallssuche ermittelt.

Was sind die Einschränkungen der Ridge-Regression?

Es umfasst alle Prädiktoren, was die Interpretation erschweren kann und die Auswahl des optimalen Parameters eine Herausforderung darstellen kann.

spot_img

Neueste Intelligenz

spot_img