كيفية الحصول على ملخص نموذج الانحدار من scikit-learn
في كثير من الأحيان قد ترغب في استخراج ملخص لنموذج الانحدار الذي تم إنشاؤه باستخدام scikit-Learn في Python.
لسوء الحظ، لا يقدم scikit-learn العديد من الوظائف المضمنة لتحليل ملخص نموذج الانحدار، حيث يتم استخدامه عمومًا للأغراض التنبؤية فقط.
لذا، إذا كنت ترغب في الحصول على ملخص لنموذج الانحدار في بايثون، فلديك خياران:
1. استخدم الوظائف المحدودة لبرنامج scikit-Learn.
2. استخدم النماذج الإحصائية بدلاً من ذلك.
توضح الأمثلة التالية كيفية استخدام كل طريقة عمليًا مع الباندا DataFrame التالية:
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
الطريقة الأولى: الحصول على ملخص نموذج الانحدار من Scikit-Learn
يمكننا استخدام الكود التالي ليناسب نموذج الانحدار الخطي المتعدد باستخدام 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)
يمكننا بعد ذلك استخدام الكود التالي لاستخراج معاملات الانحدار من النموذج بالإضافة إلى قيمة R-squared للنموذج:
#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
باستخدام هذا الناتج يمكننا كتابة معادلة نموذج الانحدار الملائم:
ص = 70.48 + 5.79×1 – 1.16×2
ويمكن أيضًا ملاحظة أن قيمة R2 للنموذج هي 76.67.
وهذا يعني أن 76.67% من التباين في متغير الاستجابة يمكن تفسيره من خلال المتغيرين المتنبئين في النموذج.
على الرغم من أن هذه النتيجة مفيدة، إلا أننا ما زلنا لا نعرف إحصائية F الإجمالية للنموذج، والقيم p لمعاملات الانحدار الفردية، وغيرها من التدابير المفيدة التي يمكن أن تساعدنا في فهم مدى ملاءمة النموذج للنموذج. dataset.dataset.
الطريقة الثانية: الحصول على ملخص نموذج الانحدار من Statsmodels
إذا كنت ترغب في استخراج ملخص لنموذج الانحدار في بايثون، فمن الأفضل استخدام حزمة statsmodels .
يوضح الكود التالي كيفية استخدام هذه الحزمة لتناسب نفس نموذج الانحدار الخطي المتعدد مثل المثال السابق واستخراج ملخص النموذج:
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
==================================================== ============================
لاحظ أن معاملات الانحدار وقيمة R-squared تتطابق مع تلك المحسوبة بواسطة scikit-learn، ولكن لدينا أيضًا الكثير من المقاييس المفيدة الأخرى لنموذج الانحدار.
على سبيل المثال، يمكننا رؤية القيم الاحتمالية لكل متغير متنبئ فردي:
- القيمة p لـ x 1 = 0.001
- القيمة p لـ x 2 = 0.309
يمكننا أيضًا رؤية إحصائية F الإجمالية للنموذج، وقيمة R-squared المعدلة ، وقيمة AIC للنموذج، وغير ذلك الكثير.
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية تنفيذ العمليات الشائعة الأخرى في بايثون:
كيفية إجراء الانحدار الخطي البسيط في بايثون
كيفية إجراء الانحدار الخطي المتعدد في بايثون
كيفية حساب AIC لنماذج الانحدار في بايثون