Hoe regressiecoëfficiënten uit het scikit-learn-model te extraheren
U kunt de volgende basissyntaxis gebruiken om regressiecoëfficiënten te extraheren uit een regressiemodel dat is gebouwd met scikit-learn in Python:
p.d. DataFrame ( zip ( X.columns , model.coef_ ))
Het volgende voorbeeld laat zien hoe u deze syntaxis in de praktijk kunt gebruiken.
Voorbeeld: extraheer regressiecoëfficiënten uit het Scikit-Learn-model
Stel dat we het volgende panda’s DataFrame hebben dat informatie bevat over de bestudeerde uren, het aantal afgelegde voorbereidende examens en het eindexamencijfer behaald door 11 studenten in een klas:
import pandas as pd
#createDataFrame
df = pd. DataFrame ({' hours ': [1, 2, 2, 4, 2, 1, 5, 4, 2, 4, 4],
' exams ': [1, 3, 3, 5, 2, 2, 1, 1, 0, 3, 4],
' score ': [76, 78, 85, 88, 72, 69, 94, 94, 88, 92, 90]})
#view DataFrame
print (df)
hours exam score
0 1 1 76
1 2 3 78
2 2 3 85
3 4 5 88
4 2 2 72
5 1 2 69
6 5 1 94
7 4 1 94
8 2 0 88
9 4 3 92
10 4 4 90
We kunnen de volgende code gebruiken om een meervoudig lineair regressiemodel in te passen, waarbij uren en examens als voorspellende variabelen en score als responsvariabele worden gebruikt:
from sklearn. linear_model import LinearRegression
#initiate linear regression model
model = LinearRegression()
#define predictor and response variables
x, y = df[[' hours ', ' exams ']], df. score
#fit regression model
model. fit (x,y)
We kunnen dan de volgende syntaxis gebruiken om de regressiecoëfficiënten van uren en examens te extraheren:
#print regression coefficients
p.d. DataFrame ( zip ( X.columns , model.coef_ ))
0 1
0 hours 5.794521
1 exams -1.157647
Uit het resultaat kunnen we de regressiecoëfficiënten voor de twee voorspellende variabelen in het model zien:
- Coëfficiënt voor uren : 5,794521
- Coëfficiënt voor examens : -1,157647
Als we willen, kunnen we ook de volgende syntaxis gebruiken om de oorspronkelijke waarde uit het regressiemodel te extraheren:
#print intercept value
print (model. intercept_ )
70.48282057040197
Met behulp van elk van deze waarden kunnen we de vergelijking voor het aangepaste regressiemodel schrijven:
Score = 70.483 + 5.795 (uren) – 1.158 (examens)
We kunnen deze vergelijking vervolgens gebruiken om het eindexamencijfer van een student te voorspellen op basis van het aantal uren dat hij heeft gestudeerd en het aantal afgelegde oefenexamens.
Een student die bijvoorbeeld 3 uur heeft gestudeerd en 2 voorbereidende examens heeft afgelegd, zou een eindcijfer van 85,55 moeten krijgen:
- Score = 70.483 + 5.795 (uren) – 1.158 (examens)
- Score = 70,483 + 5,795(3) – 1,158(2)
- Score = 85,55
Gerelateerd: Regressiecoëfficiënten interpreteren
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende bewerkingen in Python uitvoert:
Hoe eenvoudige lineaire regressie uit te voeren in Python
Hoe u meerdere lineaire regressies uitvoert in Python
Hoe AIC van regressiemodellen in Python te berekenen