Cara mendapatkan ringkasan model regresi dari scikit-learn


Seringkali Anda mungkin ingin mengekstrak ringkasan model regresi yang dibuat menggunakan scikit-learn dengan Python.

Sayangnya, scikit-learn tidak menawarkan banyak fungsi bawaan untuk menganalisis ringkasan model regresi, karena umumnya hanya digunakan untuk tujuan prediksi .

Jadi, jika Anda ingin mendapatkan ringkasan model regresi dengan Python, Anda memiliki dua opsi:

1. Gunakan fungsi terbatas scikit-learn.

2. Gunakan model statistik saja.

Contoh berikut menunjukkan cara menggunakan setiap metode dalam praktik dengan pandas DataFrame berikut:

 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

Metode 1: Dapatkan Ringkasan Model Regresi dari Scikit-Learn

Kita dapat menggunakan kode berikut untuk menyesuaikan model regresi linier berganda menggunakan scikit-learn:

 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)

Kita kemudian dapat menggunakan kode berikut untuk mengekstrak koefisien regresi dari model serta nilai R-kuadrat model:

 #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

Dengan menggunakan keluaran ini, kita dapat menulis persamaan untuk model regresi yang sesuai:

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

Terlihat juga nilai R 2 model sebesar 76,67.

Artinya 76,67% variasi variabel respon dapat dijelaskan oleh kedua variabel prediktor dalam model.

Meskipun hasil ini berguna, kita masih belum mengetahui statistik F keseluruhan model, nilai p dari koefisien regresi individual, dan ukuran berguna lainnya yang dapat membantu kita memahami seberapa cocok model tersebut dengan model. kumpulan data.kumpulan data.

Metode 2: Dapatkan ringkasan model regresi dari Statsmodels

Jika Anda ingin mengekstrak ringkasan model regresi dengan Python, yang terbaik adalah menggunakan paket statsmodels .

Kode berikut menunjukkan cara menggunakan paket ini agar sesuai dengan model regresi linier berganda yang sama seperti contoh sebelumnya dan mengekstrak ringkasan model:

 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
==================================================== ============================

Perhatikan bahwa koefisien regresi dan nilai R-kuadrat cocok dengan yang dihitung oleh scikit-learn, tetapi kami juga memiliki banyak metrik lain yang berguna untuk model regresi.

Misalnya, kita dapat melihat nilai p untuk setiap variabel prediktor:

  • nilai p untuk x 1 = 0,001
  • nilai p untuk x 2 = 0,309

Kita juga dapat melihat statistik F keseluruhan model, nilai R-kuadrat yang disesuaikan , nilai AIC model, dan masih banyak lagi.

Sumber daya tambahan

Tutorial berikut menjelaskan cara melakukan operasi umum lainnya dengan Python:

Cara melakukan regresi linier sederhana dengan Python
Cara melakukan regresi linier berganda dengan Python
Cara menghitung AIC model regresi dengan Python

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *