Scikit-learn'den regresyon modeli özeti nasıl alınır?


Çoğunlukla Python’da scikit-learn kullanılarak oluşturulan bir regresyon modelinin özetini çıkarmak isteyebilirsiniz.

Ne yazık ki, scikit-learn genellikle yalnızca tahmin amaçlı kullanıldığından, bir regresyon modelinin özetini analiz etmek için pek çok yerleşik işlev sunmaz.

Dolayısıyla Python’da bir regresyon modelinin özetini almak istiyorsanız iki seçeneğiniz vardır:

1. Scikit-learn’in sınırlı işlevlerini kullanın.

2. Bunun yerine istatistiksel modelleri kullanın.

Aşağıdaki örnekler, her yöntemin pratikte aşağıdaki pandalar DataFrame ile nasıl kullanılacağını gösterir:

 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

Yöntem 1: Scikit-Learn’den Regresyon Modeli Özetini Alın

Scikit-learn’i kullanarak çoklu doğrusal regresyon modeline uyum sağlamak için aşağıdaki kodu kullanabiliriz:

 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)

Daha sonra modelden regresyon katsayılarını ve modelin R-kare değerini çıkarmak için aşağıdaki kodu kullanabiliriz:

 #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

Bu çıktıyı kullanarak uygun regresyon modelinin denklemini yazabiliriz:

y = 70,48 + 5,79×11,16×2

Ayrıca modelin R 2 değerinin de 76,67 olduğu görülmektedir.

Bu, yanıt değişkenindeki varyasyonun %76,67’sinin modeldeki iki yordayıcı değişken tarafından açıklanabileceği anlamına gelmektedir.

Bu sonuç yararlı olmasına rağmen, modelin genel F istatistiğini , bireysel regresyon katsayılarının p değerlerini ve modelin modele ne kadar iyi uyduğunu anlamamıza yardımcı olabilecek diğer yararlı önlemleri hala bilmiyoruz. veri kümesi. veri kümesi.

Yöntem 2: Statsmodels’ten regresyon modeli özetini alın

Python’da bir regresyon modelinin özetini çıkarmak istiyorsanız statsmodels paketini kullanmak en iyisidir.

Aşağıdaki kod, önceki örnekle aynı çoklu doğrusal regresyon modeline uymak ve model özetini çıkarmak için bu paketin nasıl kullanılacağını gösterir:

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

Regresyon katsayıları ve R-kare değerinin scikit-learn tarafından hesaplananlarla eşleştiğini unutmayın, ancak regresyon modeli için ayrıca bir sürü başka faydalı ölçümümüz de var.

Örneğin, her bir tahmin değişkeni için p değerlerini görebiliriz:

  • x 1 = 0,001 için p değeri
  • x 2 = 0,309 için p değeri

Ayrıca modelin genel F istatistiğini, düzeltilmiş R kare değerini, model AIC değerini ve çok daha fazlasını da görebiliriz.

Ek kaynaklar

Aşağıdaki eğitimlerde Python’da diğer yaygın işlemlerin nasıl gerçekleştirileceği açıklanmaktadır:

Python’da basit doğrusal regresyon nasıl gerçekleştirilir
Python’da çoklu doğrusal regresyon nasıl gerçekleştirilir
Python’da regresyon modellerinin AIC’si nasıl hesaplanır

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir