So erhalten sie eine zusammenfassung des regressionsmodells von scikit-learn


Häufig möchten Sie möglicherweise eine Zusammenfassung eines Regressionsmodells extrahieren, das mit scikit-learn in Python erstellt wurde.

Leider bietet scikit-learn nicht viele integrierte Funktionen zur Analyse der Zusammenfassung eines Regressionsmodells, da es im Allgemeinen nur fürVorhersagezwecke verwendet wird.

Wenn Sie also eine Zusammenfassung eines Regressionsmodells in Python erhalten möchten, haben Sie zwei Möglichkeiten:

1. Nutzen Sie die eingeschränkten Funktionen von scikit-learn.

2. Verwenden Sie stattdessen statistische Modelle .

Die folgenden Beispiele zeigen, wie jede Methode in der Praxis mit dem folgenden Pandas DataFrame verwendet wird:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' x1 ': [1, 2, 2, 4, 2, 1, 5, 4, 2, 4, 4],
                   ' x2 ': [1, 3, 3, 5, 2, 2, 1, 1, 0, 3, 4],
                   ' y ': [76, 78, 85, 88, 72, 69, 94, 94, 88, 92, 90]})

#view first five rows of DataFrame
df. head ()

       x1 x2 y
0 1 1 76
1 2 3 78
2 2 3 85
3 4 5 88
4 2 2 72

Methode 1: Holen Sie sich die Zusammenfassung des Regressionsmodells von Scikit-Learn

Wir können den folgenden Code verwenden, um mit scikit-learn ein multiples lineares Regressionsmodell anzupassen:

 from sklearn. linear_model import LinearRegression

#initiate linear regression model
model = LinearRegression()

#define predictor and response variables
x, y = df[[' x1 ', ' x2 ']], df. y

#fit regression model
model. fit (x,y)

Anschließend können wir den folgenden Code verwenden, um die Regressionskoeffizienten aus dem Modell sowie den R-Quadrat-Wert des Modells zu extrahieren:

 #display regression coefficients and R-squared value of model
print (model. intercept_ , model. coef_ , model. score (X, y))

70.4828205704 [5.7945 -1.1576] 0.766742556527

Mit dieser Ausgabe können wir die Gleichung für das angepasste Regressionsmodell schreiben:

y = 70,48 + 5,79x 1 – 1,16x 2

Es ist auch ersichtlich, dass der R 2 -Wert des Modells 76,67 beträgt.

Dies bedeutet, dass 76,67 % der Variation der Antwortvariablen durch die beiden Prädiktorvariablen im Modell erklärt werden können.

Obwohl dieses Ergebnis nützlich ist, kennen wir immer noch nicht die Gesamt-F-Statistik des Modells, die p-Werte der einzelnen Regressionskoeffizienten und andere nützliche Maße, die uns helfen können zu verstehen, wie gut das Modell zum Modell passt. dataset.dataset.

Methode 2: Zusammenfassung des Regressionsmodells von Statsmodels abrufen

Wenn Sie eine Zusammenfassung eines Regressionsmodells in Python extrahieren möchten, verwenden Sie am besten das Paket statsmodels .

Der folgende Code zeigt, wie Sie dieses Paket verwenden, um dasselbe multiple lineare Regressionsmodell wie im vorherigen Beispiel anzupassen und die Modellzusammenfassung zu extrahieren:

 import statsmodels. api as sm

#define response variable
y = df[' y ']

#define predictor variables
x = df[[' x1 ', ' x2 ']]

#add constant to predictor variables
x = sm. add_constant (x)

#fit linear regression model
model = sm. OLS (y,x). fit ()

#view model summary
print ( model.summary ())

                            OLS Regression Results                            
==================================================== ============================
Dept. Variable: y R-squared: 0.767
Model: OLS Adj. R-squared: 0.708
Method: Least Squares F-statistic: 13.15
Date: Fri, 01 Apr 2022 Prob (F-statistic): 0.00296
Time: 11:10:16 Log-Likelihood: -31.191
No. Comments: 11 AIC: 68.38
Df Residuals: 8 BIC: 69.57
Df Model: 2                                         
Covariance Type: non-robust                                         
==================================================== ============================
                 coef std err t P>|t| [0.025 0.975]
-------------------------------------------------- ----------------------------
const 70.4828 3.749 18.803 0.000 61.839 79.127
x1 5.7945 1.132 5.120 0.001 3.185 8.404
x2 -1.1576 1.065 -1.087 0.309 -3.613 1.298
==================================================== ============================
Omnibus: 0.198 Durbin-Watson: 1.240
Prob(Omnibus): 0.906 Jarque-Bera (JB): 0.296
Skew: -0.242 Prob(JB): 0.862
Kurtosis: 2.359 Cond. No. 10.7
==================================================== ============================

Beachten Sie, dass die Regressionskoeffizienten und der R-Quadrat-Wert mit denen übereinstimmen, die von scikit-learn berechnet wurden, aber wir haben auch eine Menge anderer nützlicher Metriken für das Regressionsmodell.

Wir können beispielsweise die p-Werte für jede einzelne Prädiktorvariable sehen:

  • p-Wert für x 1 = 0,001
  • p-Wert für x 2 = 0,309

Wir können auch die Gesamt-F-Statistik des Modells, den angepassten R-Quadrat- Wert, den Modell -AIC-Wert und vieles mehr sehen.

Zusätzliche Ressourcen

In den folgenden Tutorials wird erläutert, wie Sie andere gängige Vorgänge in Python ausführen:

So führen Sie eine einfache lineare Regression in Python durch
So führen Sie eine multiple lineare Regression in Python durch
So berechnen Sie den AIC von Regressionsmodellen in Python

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert